- #include <iostream.h>
- #include <math.h>
- double function(double x,double y)
- {
- double z;
- z=-2*x*y*y;
- return z;
- }
- main()
- {
- double h,a,b,t,t1;
- double n;
- cout<<"请输入步长h:"<<endl;
- cin>>h;
- cout<<"请输入取值区间左端点:"<<endl;
- cin>>a;
- cout<<"请输入取值区间右端点:"<<endl;
- cin>>b;
- n=(b-a)/h;
- double *x = new double[n+2];// 构造动态数组
- double *y1 = new double[n+2];
- double *y = new double[n+2];
- cout<<"请输入y0 的值"<<endl;
- cin>>y[0];
- for (int i=0;i<=n;i++)
- {
- x[i]=a+i*h;
- }
- for( int k=0;k<=n;k++)
- {
- t=function(x[k],y[k]);
- y1[k+1]=y[k]+h*t;
- t1=function(x[k+1],y1[k+1]);
- y[k+1]=y[k]+h/2*(t+t1);
- }
- for (i=0;i<=n;i++)
- {
- cout<<"y["<<i<<"]="<<y[i]<<endl;
- }
- delete [] x;// 释放数组
- delete [] y1;
- delete [] y;
- return 0;
- }
.