implicit vs explicit
Hi,
I have written a little program to solve an ordinary dfferential equation. The user can decide whether an explicit or implicit integration method is used. Looking on the results, I cannot see any advantage of the implicit scheme. What do you think about it? The mathematical bakground was: IMPLICIT: f(t+Dt) = f(t) + Dt* df/dt|_(t+Dt) EXPLICIT: f(t+Dt) = f(t) + Dt* df/dt|_(t) |
Re: implicit vs explicit
Try using f(t+Dt) = f(t) + 0.5*Dt*( df/dt|_(t+Dt) + df/dt|_(t) )
and vary the timestep comparing the results. For an ode you'd should really look at explicit Runge-Kutta methods rather than your forward Euler step. |
Re: implicit vs explicit
One way of looking at it is that if f(t) is mass say and therefore df/dt is mass flow, what happens if Dt*df/dt(t) is negative and higher in magnitude than f(t)?
In the explicit scheme you'll get negative mass (bad!). In the implicit scheme the iterated estimate of df/dt(t+Dt) will prevent the negative mass. Explicit schemes assume that the grients at (t) are constant through the step. Implicit ones don't. Explicit schemes require small steps because of this. |
All times are GMT -4. The time now is 04:14. |