四阶Runge-Kutta方法.doc

上传人:桔**** 文档编号:553975000 上传时间:2023-04-28 格式:DOC 页数:6 大小:173.51KB
返回 下载 相关 举报
四阶Runge-Kutta方法.doc_第1页
第1页 / 共6页
四阶Runge-Kutta方法.doc_第2页
第2页 / 共6页
四阶Runge-Kutta方法.doc_第3页
第3页 / 共6页
四阶Runge-Kutta方法.doc_第4页
第4页 / 共6页
四阶Runge-Kutta方法.doc_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《四阶Runge-Kutta方法.doc》由会员分享,可在线阅读,更多相关《四阶Runge-Kutta方法.doc(6页珍藏版)》请在金锄头文库上搜索。

1、2012-2013(1)专业课程实践论文四阶Runge-Kutta方法李元东,0818180107,R数学08-1班一、算法理论常微分方程初值问题的数值解法是求方程(1)的解在点列上的近似值,这里是到的步长,一般略去下标记为。 (1) 经典的方法是一个四阶的方法,它的计算公式是: (2)方法的优点是:单步法、精度高,计算过程便于改变步长,缺点是计算量较大,每前进一步需要计算四次函数值。在用龙格库塔方法时,要注意的选择要合适,太大,会使计算量加大,太小,较大,可能会使误差增大。因此选择合适的很重要。我们要在考虑精度的基础上,选择合适的。在此,用C语言实现了龙格库塔方法。二、算法框图开始输入xi+

2、1=xi+hk1=function(xi,yi)k2=function(xi+h/2,yi+h*k1/2)k3=function(xi+h/2,yi+h*k2/2)k4=function(xi+h,yi+h*k3)yi+1=yi+h*(k1+2*k2+2*k3+k4)/6输出xi+1 yi+1结束否是四阶Runge-Kutta流程图三、算法程序#include#includeint RungeKutta(double y0,double a,double b,int n,double *x,double *y,double (*function)(double,double)double h=

3、(b-a)/n,k1,k2,k3,k4;int i;x0=a;y0=y0;for(i=0;in;i+)xi+1=xi+h;k1=function(xi,yi);k2=function(xi+h/2,yi+h*k1/2);k3=function(xi+h/2,yi+h*k2/2);k4=function(xi+h,yi+h*k3);yi+1=yi+h*(k1+2*k2+2*k3+k4)/6;return 1;double function(double x,double y)return y-2*x/y;/例子求y=y-2*x/y(0x1);y0=1; int main() int i;double x6,y6;printf(用四阶龙格-库塔方法n);RungeKutta(1,1,2,5,x,y,function);for(i=0;i6;i+)printf(x%d=%f,y%d=%fn,i,xi,i,yi);return 1;四、算法实现例1求解方程 步长;解:将程序中改为1. 输入的值:1;0;1;52. 显示输出结果:时 ,; 时 ,; 时 ,; 时 ,; 时 ,; 时 ,;例2求解方程 步长;解:将程序中改为1. 输入的值:1;0;1;52. 显示输出结果: 时 ,; 时 ,; 时 ,; 时 ,; 时 ,; 时 ,;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 研究报告 > 教育

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号