![]() |
![]() |
![]() |
We present the same problem as the previous example but the
differential equation is given as linear one by its coefficients.
We consider the linear differential equation
c1y'(t) + c0y(t) = f(t)
We test the code with the data:
f(t)=2*exp(t)-1,
c0=c1=1, y(0)=0.
With these data we obtain the solution
y(t)=exp(t)-1.
#include "OFELI.h"
using namespace OFELI;
int main(int argc, char *argv[])
{
theFinalTime = 1.;
theTimeStep = atof(argv[1]);
ODESolver ode(RK4); |
y'(t) = F(t,y(t))It is important that the initial solution is to be given before defining the equation. We eventually run the time marching procedure.
ODESolver ode(HEUN);
ode.setInitial(0.);
ode.setInitialRHS(1.);
TimeLoop {
ode.setCoef(1,1,0,2*exp(theTime)-1);
ode.runOneTimeStep();
}
cout << ode << endl;
cout << "Error: " << fabs(exp(theFinalTime)-1-ode.get()) << endl;
return 0;
}
|
cout << ode << endl; cout << "Solution: " << ode.get() << endl; cout << "Error: " << fabs(exp(theFinalTime)-1-ode.get()) < endl; return 0; } |
![]() |
![]() |
![]() |