#include <iostream>
#include <cmath>
using namespace std;
double f(double t, double x) {
return x + exp(t) + t*x;
}
int main() {
double x = 2.0;
double t = 1.0;
double h = 0.01;
double x1, x2, x3;
// Taylor series method of order 5
for (int i = 1; i <= 200; i++) {
x1 = x + h*f(t, x) + (h*h/2.0)*((t*t*x) + (t*x) + x + exp(t));
x2 = x + h*f(t+h/2.0, x+h*f(t,x)/2.0) + (pow(h, 2)/4.0)*(2*t*x + 2*x*exp(t+h/2.0) + pow(t, 2)*x + t + exp(t+h/2.0));
x3 = x + h*f(t+h/2.0, x2/2.0 + x/2.0) + (pow(h, 2)/4.0)*(2*t*x2 + 2*x2*exp(t+h/2.0) + pow(t, 2)*x2 + t + exp(t+h/2.0));
x = x + (h/6.0)*(f(t,x) + 2*f(t+h/2.0, x+h*f(t,x)/2.0) + 2*f(t+h/2.0, x2/2.0 + x/2.0) + f(t+h,x3));
t += h;
}
cout << "The value of x at t=3 using Taylor series method of order 5 is: " << x << endl;
// One-step Taylor series method at x=3
double x_one_step = x + h*f(t,x);
cout << "The value of x at t=3 using one-step Taylor series method is: " << x_one_step << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y21hdGg+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKZG91YmxlIGYoZG91YmxlIHQsIGRvdWJsZSB4KSB7CiAgICByZXR1cm4geCArIGV4cCh0KSArIHQqeDsKfQoKaW50IG1haW4oKSB7CiAgICBkb3VibGUgeCA9IDIuMDsKICAgIGRvdWJsZSB0ID0gMS4wOwogICAgZG91YmxlIGggPSAwLjAxOwogICAgZG91YmxlIHgxLCB4MiwgeDM7CgogICAgLy8gVGF5bG9yIHNlcmllcyBtZXRob2Qgb2Ygb3JkZXIgNQogICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gMjAwOyBpKyspIHsKICAgICAgICB4MSA9IHggKyBoKmYodCwgeCkgKyAoaCpoLzIuMCkqKCh0KnQqeCkgKyAodCp4KSArIHggKyBleHAodCkpOwogICAgICAgIHgyID0geCArIGgqZih0K2gvMi4wLCB4K2gqZih0LHgpLzIuMCkgKyAocG93KGgsIDIpLzQuMCkqKDIqdCp4ICsgMip4KmV4cCh0K2gvMi4wKSArIHBvdyh0LCAyKSp4ICsgdCArIGV4cCh0K2gvMi4wKSk7CiAgICAgICAgeDMgPSB4ICsgaCpmKHQraC8yLjAsIHgyLzIuMCArIHgvMi4wKSArIChwb3coaCwgMikvNC4wKSooMip0KngyICsgMip4MipleHAodCtoLzIuMCkgKyBwb3codCwgMikqeDIgKyB0ICsgZXhwKHQraC8yLjApKTsKICAgICAgICB4ID0geCArIChoLzYuMCkqKGYodCx4KSArIDIqZih0K2gvMi4wLCB4K2gqZih0LHgpLzIuMCkgKyAyKmYodCtoLzIuMCwgeDIvMi4wICsgeC8yLjApICsgZih0K2gseDMpKTsKICAgICAgICB0ICs9IGg7CiAgICB9CiAgICBjb3V0IDw8ICJUaGUgdmFsdWUgb2YgeCBhdCB0PTMgdXNpbmcgVGF5bG9yIHNlcmllcyBtZXRob2Qgb2Ygb3JkZXIgNSBpczogIiA8PCB4IDw8IGVuZGw7CgogICAgLy8gT25lLXN0ZXAgVGF5bG9yIHNlcmllcyBtZXRob2QgYXQgeD0zCiAgICBkb3VibGUgeF9vbmVfc3RlcCA9IHggKyBoKmYodCx4KTsKICAgIGNvdXQgPDwgIlRoZSB2YWx1ZSBvZiB4IGF0IHQ9MyB1c2luZyBvbmUtc3RlcCBUYXlsb3Igc2VyaWVzIG1ldGhvZCBpczogIiA8PCB4X29uZV9zdGVwIDw8IGVuZGw7CgogICAgcmV0dXJuIDA7Cn0K