《四阶龙格——库塔法.docx》由会员分享,可在线阅读,更多相关《四阶龙格——库塔法.docx(3页珍藏版)》请在优知文库上搜索。
1、2023-2023(1)专业课程实践论文题目:四阶龙格库塔法一、算法理论由定义可知,一种数值方法的精度与局部截断误差。(犷)有关,用一阶泰勒展开式近似函数得到欧拉方法,其局部截断误差为一阶泰勒余项。(尸),故是一阶方法,完全类似地假设用P阶泰勒展开式进行离散化,所得计算公式必为P阶方法,式中由此,我们能够想到,通过提高泰勒展开式的阶数,可以得到高精度的数值方法,从理论上讲,只要微分方程的解y(x)充分光滑,泰勒展开方法可以构造任意的有限阶的计算公式,但事实上,具体构造这种公式往往相当困难,因为符合函数/(X,y()的高阶导数常常是很烦琐的,因此,泰勒展开方法一般不直接使用,但是我们可以间接使用
2、泰勒展开方法,求得高精度的计算方法。首先,我们对欧拉公式和改良欧拉公式的形式作进一步的分析。如果将欧拉公式和改良的欧拉公式改写成如下的形式:欧拉公式改良的欧拉公式”+1=券+力(g&+g(),K=f(ay,储=/(%+力,y“+M)。这两组公式都是用函数f(x,y)在某些点上的值的线性组合来计算y(x,用)的近似值L+1,欧拉公式每前进一步,就计算一次f(x,y)的值。另一方面它是y(xzlG在乙处的一阶泰勒展开式,因而是一阶方法。改良的欧拉公式每前进一步,需要计算两次/(x,y)的值。另一方面它在(x,y.)处的泰勒展开式与y(xG在当处的泰勒展开式的前三项完全相同,因而是二阶方法。这启发我
3、们考虑用函数/(X,y)在假设干点上的函数值的线性组合来构造计算公式。构造时,要求计算公式在(Xzx)处的泰勒展开式,与微分方程的解y(x)在七,处的泰勒展开式的前面假设干项相同,从而使计算公式打到较高的精度。这样,既防止了计算函数/(x,y)的偏导数的困难,又提高了计算方法的精度,这就是龙格一一库塔方法的根本思想。二、算法框图程序代码:#includestdio.h,*#includeconio.h”floatfunc(floatXfOaty)return(2*x*y);floatrunge_kutta(floatx,floatxn,floaty,intn)floatx,y,yl,y2,h,xh;floatdl,d2,d3,d4;iti;x=x;y=y;h=(xn-x)n;for(i=l;i,输出(x,y)(5)假设左-1,置A+lnA,转(4);否那么,停机。例1.利用四阶龙格一一库塔方程公式计算=2双x7,l的数值,取步长=0.1。J(O)=1解:运行结果例2.利用4阶龙格一一库塔方程公式计算fy=x-yUe0,0,5取步长=。y(0)=解:运行结果