计算机上机报告(2)

2019-06-02 15:20

2.例子

3.运行结果

三.改进欧拉法 1.程序代码

#include #include

double fun(double x,double y) {

return(-0.9*y/(1+2*x)); }

void main() {

double a,b,*y,h,*x,yp,yc; int n,k;

cout<<\常微分方程为y'=-0.9*y/(1+2*x)\ cout<<\其中0<=x<=1\ cout<<\初值为y(0)=1\ cout<<\请输入计算区间(a,b):\ cin>>a>>b;

cout<<\请输入步长h:\ cin>>h;

cout<<\请输入计算次数:\ cin>>n;

y=new double[n]; x=new double[n];

cout<<\请输入初值y(0)=\ cin>>y[0]; x[0]=a;

for(k=0;k<=n;k++) {

yp=y[k]+h*fun(x[k],y[k]); yc=y[k]+h*fun(x[k]+h,yp); y[k+1]=0.5*(yp+yc); x[k+1]=x[k]+h; }

cout<<\迭代结果为:\ for(k=0;k<=n;k++)

cout<<\ getch(); }

2.例子

3.运行结果

四.四阶龙格-库塔 1.程序代码

#include #include

double fun(double x,double y) {

return(x-y); }

void main() {

double a,b,*y,h,x,k1,k2,k3,k4; int n,k;

cout<<\常微分方程为y'=x-y\ cout<<\其中0<=x<=1\ cout<<\初值为y(0)=0\ cout<<\请输入计算区间(a,b):\ cin>>a>>b;

cout<<\请输入步长h:\ cin>>h;

cout<<\请输入计算次数:\ cin>>n;

y=new double[n];

cout<<\请输入初值y(0):\ cin>>y[0]; x=a;

cout<<\迭代法结果为:\ cout<<\ for(k=0;k<=n-1;k++) {

k1=fun(x,y[k]);

k2=fun(x+h/2,y[k]+k1*h/2); k3=fun(x+h/2,y[k]+k2*h/2); k4=fun(x+h,y[k]+k3*h);

y[k+1]=y[k]+(h/6)*(k1+2*(k2+k3)+k4);

cout<<\ x=x+h; }

getch(); }

2.例子

3.运行结果


计算机上机报告(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:物化复习题

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: