基于MATLAB的三重积分与曲线积分 | 您所在的位置:网站首页 › matlab用符号方法求积分 › 基于MATLAB的三重积分与曲线积分 |
目录 一. 三重定积分的数值求解 例题1 例题2 例题3 二. 第一类曲线积分:对弧长的曲线积分 例题4 例题5 三. 第二类积分:对坐标的曲线积分 例题6 例题7 一. 三重定积分的数值求解三重定积分的数学表达形式为: 在MATLAB中调用的格式为如下: 在调用时,最后一个@quadl为具体求解一元积分的数值函数,当然也可以修改为@quad或者自己编写的函数,只要调用格式同上式子就行。 计算三重积分 解: MATLAB代码: clc;clear; triplequad(inline('4*x.*z.*exp(-x.*x.*y-z.*z)',... 'x','y','z'), 0, 1, 0, pi, 0, pi,1e-7,@quadl)运行结果: ans =1.732762284542535 integral3也可以对三重积分进行数值计算。正常的调用格式为: q=integral3(fun,xmin,xmax,ymin,ymax,zmin,zmax) 如果增加相关的参数限制,调用格式为: q=integral3(fun,xmin,xmax,ymin,ymax,zmin,zmax,Name,Value) 例题2在笛卡尔坐标系中对单位球面计算积分,要求在MATLAB代码中使用到匿名函数 解: MATLAB代码: clc;clear; fun=@(x,y,z)x.*cos(y)+x.^2.*cos(z); xmin=-1; xmax=1; ymin=@(x)-sqrt(1-x.^2); ymax=@(x)sqrt(1-x.^2); zmin=@(x,y)-sqrt(1-x.^2-y.^2); zmax=@(x,y)sqrt(1-x.^2-y.^2); q=integral3(fun,xmin,xmax,ymin,ymax,zmin,zmax,'Method','tiled') %使用 'tiled' 方法计算定积分运行结果: q =0.779555454656150 例题3求函数 解: MATLAB代码: clc;clear; a=2; f=@(x,y,z)10./(x.^2+y.^2+z.^2+a); q1=integral3(f,-Inf,0,-100,0,-100,0) q2=integral3(f,-Inf,0,-100,0,-100,0,'AbsTol',0,'RelTol',1e-9)运行结果: q1 =2.734244598320928e+03 q2 =2.734244599944285e+03 MATLAB工具箱中已经拥有了很多计算数值积分的函数,包含integral,integral2,integral3,这些函数都可以计算积分限为无穷大的积分。由于精度限制的原因quad,quadl,quadv,dblquad,triplequad这几个函数可能后续会被MATLAB删除。 二. 第一类曲线积分:对弧长的曲线积分第一类曲线积分起源于对不均匀分布的空间函数曲线总质量的求取。设空间曲线L的密度函数为f(x,y,z),则其总质量可以利用积分求解如下: 积分中s为曲线上某点的弧长,所以第一类积分又称之为对弧长的曲线积分。 在数学中 求解 解: MATLAB代码: clc;clear; syms t; syms a positive; x=a*cos(t); y=a*sin(t); z=a*t; I=int(z^2/(x^2+y^2)*sqrt(diff(x,t)^2+diff(y,t)^2+ diff(z,t)^2),t,0,2*pi); pretty(I)运行结果: 数学形式结果: 求 解: MATLAB代码: clc;clear; X=0:.001:1.2; Y1=X; Y2=X.^2; %绘图 plot(X,Y1,X,Y2) %观察图形决定积分的正负 syms x; y1=x; y2=x^2; I1=int((x^2+y2^2)*sqrt(1+diff(y2,x)^2),x,0,1); I2=int((x^2+y1^2)*sqrt(1+diff(y1,x)^2),x,1,0); %注意I1和I2的积分自变量顺序 I=I2+I1运行结果: I =(349*5^(1/2))/768 - (2*2^(1/2))/3 - (7*log(5^(1/2) + 2))/512 三. 第二类积分:对坐标的曲线积分第二类积分起源于变力f(x,y,z)沿曲线l移动时做功的研究,如下: 向量 向量 到此,利用此两个向量的点乘可以求解此类积分。 例题6求曲线积分 解: MATLAB积分: clc;clear; syms t; syms a positive; x=a*cos(t); y=a*sin(t); F=[(x+y)/(x^2+y^2),-(x-y)/(x^2+y^2)]; ds=[diff(x,t);diff(y,t)]; I=int(F*ds,t,2*pi,0) % 正向圆周运行结果:I =2*pi 例题7计算 解: MATLAB代码: clc;clear; syms x; y=x^2; F=[x^2-2*x*y,y^2-2*x*y]; ds=[1; diff(y,x)]; I=int(F*ds,x,-1,1)运行结果:I =-14/15 |
CopyRight 2018-2019 实验室设备网 版权所有 |