#include #include #include using namespace std; #define N 20 double fex (double t); double f0 (double t, double y); double f1 (double t, double y, double y1); double f2 (double t, double y, double y1, double y2); double f3 (double t, double y, double y1, double y2, double y3); int main() { double T = 1.0; double y0 = 1.0; double h, h2, h3, h4; double H[4], t[N], yex[N], y[N], c[N][4], err[N]; double tt, yy0, yy1, yy2, yy3, yy4, sum; h = T/N; h2 = h*h/2.0; h3 = h2*h/3.0; h4 = h2*h2/6.0; H[0]=1.0; H[1]=h; H[2]=h2; H[3]=h3; H[4]=h4; t[0] = 0.0; yex[0] = y[0] = y0; c[0][0] = y0; c[0][1] = f0(t[0],y[0]); c[0][2] = f1(t[0],y[0],c[0][1]); c[0][3] = f2(t[0],y[0],c[0][1],c[0][2]); c[0][4] = f3(t[0],y[0],c[0][1],c[0][2],c[0][3]); err[0] = 0.0; cout << "t[n]\t y[n]\t c[n-1][1] c[n-1][2]\t yex[n]\t err[n]" << endl; for (int j=0;j<72;j++) cout << "-"; cout << endl; printf("%5.3f %12.8f %8.4f %8.4f", t[0], y[0], 0.000, -1.000); printf("\t %12.8f %10.6e\n", yex[0], err[0]); for(int j=0;j