« 上一篇: 四阶(定步长)龙格--库塔法求解微分初值问题 下一篇: Matlab迈向电子设计自动化领域(转载) »
山城棒棒儿军 @ 2004-12-29 20:16




/************************************************************************
* 用四阶亚当姆斯预估计求解初值问题,其中一阶微分方程未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 adams(double(*f)(double,double),double x[],
 double y[],double h,int n)
{
double dy[4],c,p,c1,p1,m;
int i,j;

runge_kuta(f,x,y,h,3);
for(i=0;i<4;i++)
dy=(*f)(x,y);
c=0.0; p=0.0;
for(i=4;i<n+1;i++)
{
x=x[i-1]+h;
p1=y[i-1]+h*(55*dy[3]-59*dy[2]+37*dy[1]-9*dy[0])/24;
m=p1+251*(c-p)/270;
c1=y[i-1]+h*(9*(*f)(x,m)+19*dy[3]-5*dy[2]+dy[1])/24;
y=c1-19*(c1-p1)/270;
c=c1; p=p1;
for(j=0;j<3;j++)
dy[j]=dy[j+1];
dy[3]=(*f)(x,y);
}
return(0);
}




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

已经注册过? 请登录

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

Email
网址
* 评论
表情
 


 

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

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

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