欢迎来到天天文库
浏览记录
ID:28516851
大小:193.50 KB
页数:5页
时间:2018-12-11
《常用算法--几种数字积分法.doc》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、几种常用的数字积分方法(微分方程的数字解)2-5数字积分法1欧拉法(折线法)t0t1ty(t)hyy(t0)y(t1)图2-5-1t0t1tf(t)ff(t0)图2-5-2h设一阶微分方程由图可知,过(t0,y0)点的斜率为如果离很近,即很小,曲线y(t)可用切线来近似,其切线方程其微分方程在t=t1时,可近似表示为重复上述近似过程,当时,则有一般近似公式如果令,称为计算步矩,则(1)这就是欧拉法数字积分的递推计算公式。由公式可看出,只要我们给出方程的初值(t0,y0)以及相应的步距,逐步进行递推就可获得微分方程的近似数字解
2、。欧拉法的计算是十分简单的,其计算误差正比于,由此,要获得高精度解,必须减小步距,但这使得计算次数增加,又由于计算机的字长有限,h减小得过小,将引入舍入误差,所以此方法的精度提高有限,实际应用中较少采用。1梯形法(预报――校正法)欧拉法精度低,却给我们一些启发,对微分方程可改写成当时,则从此式可以看出,要求得的值,等式右边中含有未知函数,所以不能得到的值,但如果我们用已知的函数值来代替,用不变取代变化的函数,即实际上右边是一个矩形面积则递推公式为用此矩形的面积的算法,其计算误差是显然的(欧拉法),为了提高精度,我们可以用梯形
3、面积来取代矩形的面积,即则递推形式为或应用上式求积分,产生了新的问题,即在计算时,要用,而不知,则是未知的,要获得,通常可用迭代方法,即在与之间迭代多次,使其计算的逐步收敛于,即如果序列极限存在,则当时,,要保证上述极限存在,只要选取h小到一定程度,就能得到满足。当选取一定的满足了收敛条件,但在计算上要迭代多次才认为求得了准确值,迭代次数越多,计算精度越高,但计算工作量加大,所以一般只迭代一次即可,则算法写成(2)上式为预报校正公式。应用梯形近似进行校正求得的值,实际上此方法是将欧拉法与梯形法的结合的一种算法,计算量比欧拉法
4、增加了一倍。1龙格―库塔法(runge-kutta)将梯形法进一步扩展,可以得到经常使用的一种算法。考虑如下的微分方程:(3)设h为步长,即取,则当h取值相对小时,可应用泰劳级数将在处展开,而保留项,即(4)在计算时,为避免求微分,我们设(5)当h很小,在处泰勒展开,有将,代入(5)式得(6)将(6)与(4)比较,可得方程中有四个未知数,则解有无穷多组,可取一个解,选取,则有:,,代入(5),可得二阶龙格-库塔法的计算公式(7)由于在台劳级数中只保留了以下的项,所以称为二阶龙格-库塔法,此法的截断误差正比于。比较(2)式,这
5、组公式完全一样,其计算工作量完全相同,从而也证明了梯形法的截断误差正比于。如果我们要求更高的计算精度,可保留级数的及以下的项,其此时的截断误差正比于,其公式就是在仿真中用得较广泛的四阶龙格-库塔法,它有多种写法,其中一种为:(8)推导方法与二阶方法相同,但比较麻烦,这里就不再推导了。采用公式(7)和(8),在计算时只用到上一次的值,而与更前的值无关,具有这种计算法称为一步法。在计算中,步长h是可以变化的,其变化范围是可以根据精度要求而定。前面的算法是以一阶一元微分方程而得到的,但一般系统均是高于一阶的,根据控制原理可知,高阶
6、系统的模型可化成n元一次微分方程组的形式,这种模型结构为线性微分方程组:A是一个n×n阶方阵,B是一个n×m阶方阵,y为n阶向量,n是系统的阶数,m为系统的输入个数,u为m阶输入向量,其中对这种方程求解,为使程序设计紧凑,我们引入一个向量和两个矩阵:H=[0,,,h]=[h1,h2,h3,h4]K=[k0,k1,k2,k3,k4]=V=[v1,v2,v3,v4]=由(8)式可得计算矩阵k的递推公式:
此文档下载收益归作者所有