« 上一篇: 改进的欧拉方法求解微分方程初值问题 下一篇: 四阶亚当姆斯预估计求解初值问题 »
山城棒棒儿军 @ 2004-12-29 10:43

精度比欧拉方法高
但是感觉依然不理想


/************************************************************************
* 用四阶(定步长)龙格--库塔法求解初值问题,其中一阶微分方程未y'=f(x,y)
* 初始条件为x=x[0]时,y=y[0].
* 输入: f--函数f(x,y)的指针
*       x--自变量离散值数组(其中x[0]为初始条件)
*       y--对应于自变量离散值的函数值数组(其中y[0]为初始条件)
*       h--计算步长
*       n--步数
* 输出: x为说求解的自变量离散值数组
*       y为所求解对应于自变量离散值的函数值数组
************************************************************************/
double runge_kuta(double(*f)(double,double),double x[],
 double y[],double h,int n)
{
int i;
double xs,ys,xp,yp,dy;
xs=x[0]+n*h;
for(i=0;i<n;i++)
{
ys=y;
dy=(*f)(x,y); //k1
y[i+1]=y+h*dy/6;
xp=x+h/2;
yp=ys+h*dy/2;
dy=(*f)(xp,yp); //k2
y[i+1]+=h*dy/3;
yp=ys+h*dy/2;
dy=(*f)(xp,yp);  //k3
y[i+1]+=h*dy/3;
xp+=h/2;
yp=ys+h*dy;
dy=(*f)(xp,yp); //k4
y[i+1]+=h*dy/6;
x[i+1]=xp;
if(x[i+1]>=xs)
return (0);
}
return(0);
}

最新评论


ronnic

2005-12-13 22:12

能教教我怎么算吗?



Jessica

2006-06-08 19:39

请教:如何用四阶龙格--库塔法求解1963年洛伦兹提出的大气环流模型啊?混沌解



stonexxqq

2006-06-09 10:28

你的这个程序是用c写的吧!



Genial

2006-06-09 12:35

是的



awen

2006-07-02 19:10

y是什么?


评论 / 个人网页 / 扔小纸条
* 昵称

已经注册过? 请登录

新用户请先注册 以便能显示头像及追踪评论回复

Email
网址
* 评论
表情
 


 

分类小组论坛
杂谈 , 娱乐、八卦 , 文学、艺术 , 体育 , 旅游、同城 , 象牙塔 , 情感 , 时尚、生活 , 星座 , 科技

请注意遵守中华人民共和国法律法规, 如威胁到本站生存, 将依法向有关部门报告, 同时本站的相关记录可能成为对您不利的证据.

相关法律法规
全国人大常委会关于维护互联网安全的决定
中华人民共和国计算机信息系统安全保护条例
中华人民共和国计算机信息网络国际联网管理暂行规定
计算机信息网络国际联网安全保护管理办法
计算机信息系统国际联网保密管理规定