Runge-Kutta法求解方程
发布时间:2024-11-28
发布时间:2024-11-28
3. Runge-Kutta法求解方程
3.1 题目
用Runge-Kutta 4阶算法对初值问题y’=-20*y,y(0)=1按不同步长求解,用于观察稳定区间的作用,推荐两种步长h=0.1、0.2。
注:此方程的精确解为:y=e-20x
3.2 方法介绍
通过用一些点上函数值f(x ,y)的适当线性组合,来替代Euler法中的f(xk ,yk),从而使方法的阶数更高,这就是Runge-Kutta法的基本思想。在本次上机实习中采用的是标准4阶Runge-Kutta法,其计算形式如下:
1
yk+1=yk+[k1+2k2+2k3+k4]
k1=hf(xk,yk) hk1
k2=hf(xk+,yk+
hk2
k3=hf(xk+,yk+
k4=hf(xk+h,yk+k3)
3.3 计算结果及分析
利用FORTRAN语言编写程序program R_K(附录4),计算结果如下。
表2 不同步长计算结果对比
从上面结果中可以看出取步长h=0.1时候结果可以很好的收敛,与准确解之间的误差也越来越小,但是取h=0.2时候结果就发生了发散。说明该方法对步长的选择比较敏感。
3.4 本题小结
本题说明了采用Runge-Kutta法时候一定要选取合适的步长,否则可能造成结果很大的差异。所以我们在采用Runge-Kutta法解题的时候一定要注意情况而选择不同的步长,甚至要试用多个步长。
4. 总结
总的来说,通过完成本作业报告,我收获颇丰。
1)通过这次上机实习我知道了数值分析在计算中的重要性,我从实践的角度更为深入地掌握了拉格朗日插值法、分段低次插值法、SOR法、Runge-Kutta法等数值方法。刚开始对这些问题还不是很了解,结果在编程中让我渐渐的明白了这些方法的计算步骤,对这些方法有了更深入的了解。
2)让我对MATLAB和FORTRAN这两门语言有了更深入的理解。在学习过程中本专业很多计算方法要利用数值分析。所以我们勤加练习,在其中也发现了很多问题。这也激励着我继续的进行更深入的学习。
上一篇:《与众不同的麻雀》专家评课