基于MATLAB的双重积分的数值求解

这篇具有很好参考价值的文章主要介绍了基于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],通过变换基于MATLAB的双重积分的数值求解可得如下:

基于MATLAB的双重积分的数值求解

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的双重积分的数值求解

解:

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的双重积分的数值求解

解:

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的双重积分的数值求解

解: 

先把二重积分转化为常见的形式如下:

基于MATLAB的双重积分的数值求解

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的双重积分的数值求解在和三角形区域的积分。

解:

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的双重积分的数值求解在区域和的积分。其中参数。

解:

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公司在互联网快速发展的时代下开发的,它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,将原本极其复杂的问题简单化。文章来源地址https://www.toymoban.com/news/detail-426224.html

到了这里,关于基于MATLAB的双重积分的数值求解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【matlab】数值积分公式的程序实现

    ( 一 )专题实验(Newton-Cotes积分公式) 1、编写[a,b]上梯形积分公式、Simpson积分公式。 2、利用自己编写的程序计算定积分,计算一下数值解和精确解之间差的绝对值。 梯形积分: function  T=TX_int(f,a,b) T=(b-a)/2*(f(a)+f(b)); TX_int(@(x)cos(x),0,pi/4) ans = 0.6704 function  T=TX_int(f,a,b) T=(b-

    2024年02月05日
    浏览(40)
  • MATLAB 之 数值积分和离散傅里叶变换

    数值积分时研究定积分的数值求解方法,即借助于计算机,用数值逼近的方法近似计算定积分。 我们假设 I 1 = ∫ a b f ( x ) d x I_{1}=int_{a}^{b}f(x)mathrm{d}x I 1 ​ = ∫ a b ​ f ( x ) d x I 2 = ∫ a b p ( x ) d x I_{2}=int_{a}^{b}p(x)mathrm{d}x I 2 ​ = ∫ a b ​ p ( x ) d x 从高等数学中知道,当 ∣

    2024年02月08日
    浏览(42)
  • MATLAB 之 非线性方程数值求解、最优化问题求解和常微分方程初值问题的数值求解

    非线性方程的求根方法很多,常用的有牛顿迭代法,但该方法需要求原方程的导数,而在实际运算中这一条件有时 是不能满足的,所以又出现了弦截法、二分法等其他方法。 在 MATLAB 中,非线性方程的求解和最优化问题往往需要调用最优化工具箱来解决。优化工具箱提供了一

    2024年02月08日
    浏览(54)
  • 9、MATLAB程序设计与应用刘卫国(第三版)课后实验九:数值微分与积分

    目录  一、  二、  三、  四、  五、 产生具有10个元素的向量x,其元素是两位随机整数,求x的1~3阶差分。 --------------------------------------- 示例代码 --------------------------------------------- --------------------------------------- 运行结果 --------------------------------------------- 求矩阵在指定点

    2024年02月06日
    浏览(37)
  • 10、MATLAB程序设计与应用刘卫国(第三版)课后实验十:方程数值求解

    目录  一、  二、  三、  四、  五、 分别用 3种不同的数值方法解线性方程组。   --------------------------------------- 示例代码 - -------------------------------------------- -------------------------------------- - 运行结果 --------------------------------------------- 求代数方程的数值解。 (1)3x +sin x-e

    2024年02月16日
    浏览(44)
  • MATLAB数值分析学习笔记:线性代数方程组的求解和高斯消元法

    工程和科学计算的许多基本方程都是建立在守恒定律的基础之上的,比如质量守恒等,在数学上,可以建立起形如 [A]{x}={b} 的平衡方程。其中{x}表示各个分量在平衡时的取值,它们表示系统的 状态 或 响应; 右端向量{b}由无关系统性态的常数组成通常表示为 外部激励。 矩阵

    2023年04月15日
    浏览(61)
  • MATLAB数值分析学习笔记:线性代数方程组的求解和高斯-赛德尔方法

    迭代法是前面介绍的消元法的有效替代,线性代数方程组常用的迭代法有 高斯-赛德尔方法 和 雅克比迭代法, 下面会讲到二者的不同之处,大家会发现两者的实现原理其实类似,只是方法不同,本篇只重点介绍高斯-赛德尔方法。 看了我之前的笔记的同学应该已经对迭代法不

    2024年02月05日
    浏览(58)
  • 【数值计算方法】Gauss消元法及其Python/C实现

       Gauss消元法 ,也称为高斯消元法或高斯-约当消元法,是一种用于 求解线性方程组的数值方法 。它是由德国数学家卡尔·弗里德里希·高斯在18世纪末发展起来的。   Gauss消元法的基本思想是通过一系列的行变换将线性方程组转化为一个上三角形的方程组,然后通过回代

    2024年02月06日
    浏览(44)
  • 数值分析·学习 | 解线性方程组的直接方法(高斯消去法以及LU求解)matlab实现

    目录 一、前言: 二、算法描述: 三、实现代码: 1、高斯消去法: 2、高斯消去法-列主元消去法: 3、LU分解: 4、求逆矩阵: 四、总结: 个人学习内容分享 1、高斯消去法:         设有线性方程组         或写为矩阵形式

    2024年02月05日
    浏览(68)
  • 基于MATLAB的三重积分与曲线积分

    目录 一. 三重定积分的数值求解 例题1 例题2 例题3 二. 第一类曲线积分:对弧长的曲线积分 例题4 例题5 三. 第二类积分:对坐标的曲线积分 例题6 例题7 三重定积分的数学表达形式为: 在MATLAB中调用的格式为如下: 在调用时,最后一个@ quadl 为具体求解一元积分的数值函数,

    2023年04月21日
    浏览(80)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包