基于MATLAB的双重积分的数值求解(附完整代码与例题) |
您所在的位置:网站首页 › 二重积分dxdy表示什么 › 基于MATLAB的双重积分的数值求解(附完整代码与例题) |
目录 一. 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],通过变换 取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中调用的格式为: 限定精度的双重积分调用格式为: 求解 解: 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)此函数可看成近似计算平面区域 求积分
解: 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 三. 小结MATLAB是矩阵和实验室的结合,即矩阵工厂( matrix laboratory),是美国mathworks公司在互联网快速发展的时代下开发的,它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,将原本极其复杂的问题简单化。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |