||
实际应用中在MATLAB里面都有开发好的命令可以使用,如 quad(), quadl(),quad2d(),triplequad() 。需要掌握这些命令的用法。
1. 定积分 trapz(),quad(),quadl()
trapz() 函数采用复化梯形公式求积分,其使用格式为
I = trapz(x,y)
参数x为自变量,y为节点处的值,返回值为积分的近似值。
quad() 函数采用自适应步长是Simpson 求积法,其格式为
I = quad(fun,a,b,tol)
参数 fun 为被积函数 $f(x)$;a,b 分别为变量~$x$ 的积分下限和上限; tol 为积分精度要求,默认为1e-6($10^{-6}$)
计算定积分 $\displaystyle{\int_0^1\dfrac{d x}{1+x^2}}.$
>> I = quad(@(x)1./(1+x.^2),0,1)
I =
0.7854
精确解为 $\dfrac{\,\pi\,}{4}$.
计算二重积分
$$\iint\limits_D\sqrt{|y-x^2|}dxdy,D =\{(x,y)|-1\leqslant x \leqslant 1, 0\leqslant y\leqslant 2\}.$$
>> fun = @(x,y)(sqrt(abs(y-x.^2)))
>> I = dblquad(fun,-1,1,0,2)
I =
3.2375
精确解为 $\dfrac{\,5\,}{3}+\dfrac{\,\pi\,}{2}$.
对于非矩形积分区域,也可以用矩形区域积分来处理,但是需要令超出边界的部分函数值为0.
计算二重积分
$\iint\limits_D\sqrt{1-x^2-y^2}dxdy,D =\{(x,y)|x^2+y^2\leqslant 1\}.$
$$\iint\limits_D\sqrt{1-x^2-y^2}dxdy,D =\{(x,y)|x^2+y^2\leqslant 1\}.$$
>> fun = @(x,y)(sqrt(1-x.^2-y.^2).*(x.^2+y.^2<=1));% 或 fun = @(x,y)(sqrt(max(1-x.^2-y.^2,0)));
>> I = dblquad(fun,-1,1,-1,1)
I =
2.0944
精确解为 $\dfrac{\,2\,}{3}\pi$.
3. 三重积分 triplequad
triplequad() 是在立方体区域上求三重积分的函数,其格式为
I = triplequad(fun,a,b,c,d,e,f,tol,method)
参数 fun 为三元被积函数 $f(x,y,z)$;a,b 分别为变量 $x$ 的积分下限和上限; c,d 分别为变量 $y$ 的积分下限和上限;e,f 分别为变量~$z$ 的积分下限和上限;tol 为积分精度要求,默认为1e-6($10^{-6}$);method 为求积分的方法,有两种,一种是@quad,另一种是@quadl,默认是@quadl。
计算三重积分$$\iiint\limits_\Omega \bigg[y\sin x + z\cos x\bigg] d v,\Omega=\{(x,y,z)|0\leqslant x \leqslant\pi, 0\leqslant y\leqslant 1,-1\leqslant z\leqslant 1\}.$$
>> fun = @(x,y,z)(y.*sin(x)+z.*cos(x));
>> I = triplequad(fun,0,pi,0,1,-1,1)
I =
2.0000
对于非立方体的积分区域,可以采用令边界外的函数值为 0 的方法。
计算三重积分$$\iiint\limits_\Omega \bigg|\sqrt{x^2+y^2+z^2-1} \bigg|d v,\quad \Omega=\{(x,y,z)|\sqrt{x^2+y^2}\leqslant z\leqslant 1\}.$$
>> fun = @(x,y,z)(abs(sqrt(x.^2+y.^2+z.^2)-1).*((z<=1)&(z>=sqrt(x.^2+y.^2))));
>> I = triplequad(fun,-1,1,-1,1,0,1)
I =
0.2169
精确解是 $\dfrac{\pi(\sqrt{2}-1)}{6}$,计算误差为 $4.5220\times 10^{-6}$.
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-12-22 22:46
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社