目录
一. Gauss求积公式
1.1 数学理论
1.2 例题与MATLAB代码
例题1
二. 双重积分问题的数值解
2.1 数学理论
2.2 MATLAB代码与例题
例题2
例题3
例题4
例题5
例题6
三. 小结
一. Gauss求积公式
1.1 数学理论
我们知道数值的方法求解积分往往精度会差一点。这个时候Gauss求积公式可以让数值求解积分有较高的代数精度。举例对[-1,1]区间内的Gauss积分:
n取不同值时,Guass求积公式也会不同:
类推到任意的求积区间[a,b],通过变换可得如下:
1.2 例题与MATLAB代码
例题1
取n=2,利用Gauss求积公式计算。
解:
(1)原函数文件
function y=gaussf(x)
y=cos(x);
(2)主运行文件
clc;clear;
gauss2('gaussf',0,1)
function g=gauss2(fun,a,b)
h=(b-a)/2;
c=(a+b)/2;
x=[h*(-0.7745967)+c, c, h*0.7745967+c];
g=h*(0.55555556*(gaussf(x(1))+gaussf(x(3)))+0.88888889*gaussf(x(2)));
end
运行结果:
ans = 0.841471418069758
二. 双重积分问题的数值解
2.1 数学理论
矩形区域上的二重积分的数值计算形式:
在MATLAB中调用的格式为:
限定精度的双重积分调用格式为:
2.2 MATLAB代码与例题
例题2
求解
解:
MATLAB代码:
clc;clear;
f=inline('exp(-x.^2/2).*sin(x.^2+y)','x','y');
y=dblquad(f,-2,2,-1,1)
运行结果:
y =1.574493189744943
在MATLAB中,利用tiled方法也可以计算二重数值积分,调用的函数为quad2d。格式如下:
q=quad2d(fun,a,b,c,d)
此函数可看成近似计算平面区域和上,的积分。fun是函数句柄,c和d可以是标量或者是函数句柄。如果增加计算精度,调用格式如下:
例题3
求积分
。
解:
MATLAB代码:
clc;clear;
%s数值方法
fh=@(x)sqrt(1-x.^2/2);
fl=@(x)-sqrt(1-x.^2/2);
f=@(x,y)exp(-x.^2/2).*sin(x.^2+y);
I1=quad2d(f,-1/2,1,fl,fh) % MATLAB自带函数求解一般区域的二重积分
%解析解方法
syms x y
i2=int(exp(-x^2/2)*sin(x^2+y),y,-sqrt(1-x^2/2),sqrt(1-x^2/2));
I2=int(i2,x,-1/2,1);
I2=vpa(I2)
运行结果:
I1 =0.411929546211955
I2 =0.41192954617629511965175994017601
例题4
计算单位圆域上的积分:
解:
先把二重积分转化为常见的形式如下:
MATLAB代码如下:
clc;clear;
%s数值方法
fl=@(y)-sqrt(1-y.^2);
fh=@(y)sqrt(1-y.^2);
f=@(x,y)exp(-x.^2/2).*sin(x.^2+y);
I1=quad2d(f,-1,1,fl,fh)
%解析解方法
syms x y;
i2=int(exp(-x^2/2)*sin(x^2+y), x, -sqrt(1-y.^2), sqrt(1-y.^2));
I2=int(i2,y,-1,1);
I2=vpa(I2)
运行结果:
I1 =0.536860382211891
I2 =0.5368603826988078755775938492913
最后再介绍一个二重积分进行数值计算的另一个函数Integral2。在MATLAB中调用的格式为如下:
q=integral2(fun,xmin,xmax,ymin,ymax)
如果增加参数限制的话,调用格式如下:
q=integral2(fun,xmin,xmax,ymin,ymax,Name,Value)
例题5
求函数在和三角形区域的积分。
解:
MATLAB代码:
clc;clear;
fun =@(x,y)1./(sqrt(x+y).*(1+x+y).^2);
ymax=@(x)1-x;
q=integral2(fun,0,1,0,ymax)
运行结果:
q =0.285398175390866
例题6
求函数在区域和的积分。其中参数。
解:
MATLAB代码:
clc;clear;
a=3;
b=5;
fun=@(x,y)a*x.^2+b*y.^2;
q=integral2(fun,0,5,-5,0,'Method','iterated',...
'AbsTol',0,'RelTol',1e-10)
运行结果:q = 1.666666666666667e+03文章来源:https://www.toymoban.com/news/detail-426224.html
三. 小结
MATLAB是矩阵和实验室的结合,即矩阵工厂( matrix laboratory),是美国mathworks公司在互联网快速发展的时代下开发的,它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,将原本极其复杂的问题简单化。文章来源地址https://www.toymoban.com/news/detail-426224.html
到了这里,关于基于MATLAB的双重积分的数值求解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!