美国制造业的超级周期要来了!

青年就业难,可能低估了

《簡帛》 | 袁開慧、趙懷舟:老官山漢墓醫簡《醫馬書》簡27字詞考釋

云南永德芒果节开幕式:以节为媒 迎八方来客共享盛宴

曾建斌案的罪与罚

生成图片,分享到微信朋友圈

自由微信安卓APP发布,立即下载! | 提交文章网址
查看原文

数学建模方法分享——使用matlab进行数值微积分运算

学生数学建模协会 CQU数模乐园 2023-04-07
在使用matlab进行数学建模以致一般的计算时,我们有时会有进行一些微积分运算的需求,虽然在数学上大部分积分的精确值都是难以求得的,但作为一个方便好用的计算工具,matlab具有强大的自带功能用于进行数值微积分运算(利用算法求得某些微积分的近似解)

接下来,本文将对其具体计算方法以及原理进行阐释(本文参考台大郭彦甫教授的matlab工程应用课程)。

一.多项式微积分(polynomial calculus)

1. 多项式微分(polynomial differentiation)

1.1 求解某点处的数值

设p为行向量,p=[a,b,c,d]
p对应多项式f(x)=ax^3+bx^2+cx+d
求解p对应的多项式在某一点处的值使用polyval()函数

用法:a=polyval(p,x),x表示所有需要计算数值的点,a表示计算结果向量

例:

1.2求解多项式的微分

要实现这个功能使用polyder()函数

用法:p1=polyder(p),则p1表示p的一阶微分对应的向量.

结合1.1可知,要求某点x处的微分,只需结合两个函数:

a1=polyval(polyder(p),x),则可得a1=f’(x).

有时需要进行多项式乘法,可使用conv()函数,用法:

conv(p,q),p,q表示两需要相乘的多项式的对应向量,函数的返回值即为两个多项式乘积对应的向量。


2. 多项式积分(polynomial integration)

求解多项式不定积分使用polyint()函数,用法:

a=polyint(p,k),p为多项式对应向量,由于积分原函数常数项不唯一,k用于表示常数项的值,若不输入k,对应常数项默认为0,a表示积分多项式对应的向量.

二.数值微积分(numerical calculus)

1. 数值微分(numerical differentiation)

例:

diff(x)即将x由右往左作差,如上图,求解两点的斜率,可写为:

x=[a b],y=[c d]

Slope=diff(y)./diff(x)=
由导数的定义可知,当两点相距足够近时,其斜率近似于其于两点处的导数.

于是要求f(x)于一点处的数值微分(导数的近似值),可以这么写:

例:

m即为x0处的数值微分,h越小则值越接近真实值.

同理将x写为向量形式即可求得一系列f’(x)的对应值,从而可利用plot函数画出导数图像.

2.数值积分(numerical integration)

对于数值积分,我们有三种近似方法,由于作者是数学专业的,所以顺便给出这些公式的证明(摘自梅加强老师的数学分析教材):

2.1矩形公式

矩形公式即将积分分割每个区间的中点的函数值作为函数于这个区间的值对积分进行近似计算.当区间分割得越细(h越小)时,数值积分的精确度一般也越高.

2.2梯形公式

梯形公式是取积分区间分割出的区间的两个端点的函数值的平均值作为函数值进行近似计算.同理,当积分区间分割的越细,即h越小时,积分的近似解精确值也越高.

2.3Simpson公式

此公式为利用3次Lagrange插值多项式进行近似计算(先前的计算其实也是对Lagrange插值多项式的利用),若继续使用高次的Lagrange插值多项式进行近似计算,即可得到一般的Newton-Cotes公式.但需要注意的是,当使用高次插值多项式对积分进行拟合时,可能会由于龙格效应使得计算的值反而不如低次时精确,故一般不会使用更高次的多项式进行拟合.

于是,我们便知道了进行简单的数值微积分的计算方法

更方便地,matlab还内置了intergral(),intergral2(),intergral3()函数进行数值积分的计算,用法:

积分值=Intergral(@f,积分下限,积分上限),其余两个函数为求解多元数值积分的函数,读者可自行在官网上进行了解.


接下来留两道例题,欢迎读者尝试:

利用matlab求解如下积分:

作者:技术部 汪天昊 廖正杰

编辑:宣传部 班成思

审核:宣传部 马雨辰

文章有问题?点此查看未经处理的缓存