预校算法解微分方程

  1. #include <iostream.h>
  2. #include <math.h>
  3. double function(double x,double y)
  4. {
  5.     double z;
  6.     z=-2*x*y*y;
  7.     return z;
  8. }
  9. main()
  10. {
  11.     double h,a,b,t,t1;
  12.     double n;
  13.     cout<<"请输入步长h:"<<endl;
  14.     cin>>h;
  15.     cout<<"请输入取值区间左端点:"<<endl;
  16.     cin>>a;
  17.     cout<<"请输入取值区间右端点:"<<endl;
  18.     cin>>b;
  19.     n=(b-a)/h;
  20.     
  21.     double *x = new double[n+2];// 构造动态数组
  22.     double *y1 = new double[n+2];
  23.     double *y = new double[n+2];
  24.     cout<<"请输入y0 的值"<<endl;
  25.     cin>>y[0];
  26.     for (int i=0;i<=n;i++)
  27.     {
  28.         x[i]=a+i*h;
  29.     }
  30.     forint k=0;k<=n;k++)
  31.     {
  32.         t=function(x[k],y[k]);
  33.         y1[k+1]=y[k]+h*t;
  34.         t1=function(x[k+1],y1[k+1]);
  35.         y[k+1]=y[k]+h/2*(t+t1);
  36.     }
  37.         for (i=0;i<=n;i++)
  38.     {
  39.         cout<<"y["<<i<<"]="<<y[i]<<endl;
  40.     }
  41.     
  42.     delete [] x;// 释放数组
  43.     delete [] y1;
  44.     delete [] y;
  45.     return 0;
  46. }














 



















 .
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值