没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论









用四阶龙格库塔法求解初值问题
如图 取h=0.1算到x=1.5,并与精确解y=1/(x-2)相比较,保留4位小数
#include <iostream.h>
#include <iomanip.h>
#include <math.h>
double f(double );
void main()
{double k1,k2,k3,k4,y[5]={-1},Y[6]={-1},x=1,h=0.1,RY[6],z[5]={-1},L1,L2,L3,L4;
for(int i=0;i<4;i++)
{k1=z[i];
L1=f(y[i]);
k2=z[i]+h/2*L1;
L2=f(y[i]+h/2*k1);
k3=z[i]+h/2*L2;
L3=f(y[i]+h/2*k2);
k4=z[i]+h*L3;
L4=f(y[i]+h*k3);
y[i+1]=y[i]+h/6*(k1+2*k2+2*k3+k4);
z[i+1]=z[i]+h/6*(L1+2*L2+2*L3+L4);
}
for(i=0;i<5;i++)
Y[i+1]=Y[i]+h*y[i];
for(i=0;i<6;i++)
{RY[i]=1/(x-2);
x=x+0.1;}
cout<<"y "<<"RY "<<"误差"<<endl;
如图 取h=0.1算到x=1.5,并与精确解y=1/(x-2)相比较,保留4位小数
#include <iostream.h>
#include <iomanip.h>
#include <math.h>
double f(double );
void main()
{double k1,k2,k3,k4,y[5]={-1},Y[6]={-1},x=1,h=0.1,RY[6],z[5]={-1},L1,L2,L3,L4;
for(int i=0;i<4;i++)
{k1=z[i];
L1=f(y[i]);
k2=z[i]+h/2*L1;
L2=f(y[i]+h/2*k1);
k3=z[i]+h/2*L2;
L3=f(y[i]+h/2*k2);
k4=z[i]+h*L3;
L4=f(y[i]+h*k3);
y[i+1]=y[i]+h/6*(k1+2*k2+2*k3+k4);
z[i+1]=z[i]+h/6*(L1+2*L2+2*L3+L4);
}
for(i=0;i<5;i++)
Y[i+1]=Y[i]+h*y[i];
for(i=0;i<6;i++)
{RY[i]=1/(x-2);
x=x+0.1;}
cout<<"y "<<"RY "<<"误差"<<endl;
资源评论

- vickol2012-05-11和网上的pdf文件一样,代码不全,只有原理
- afeiir2012-02-20原理吗,没错。就是原函数图没有,程序不是很清晰。
zhoujianhua20
- 粉丝: 0
- 资源: 2

上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
已下载
下载帮助

相关资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



安全验证
文档复制为VIP权益,开通VIP直接复制
