3
$\begingroup$

I have to solve a system of 1st order ODEs which are implicit.

I know the formula for Explicit or forward Euler method is: $$y_{n+1}= y_n + hf(t_n, y_n),$$ whereas the formula for implicit or backward Euler method is $$y_{n+1}= y_n + hf(t_{n+1}, y_{n+1}).$$ In order to use the implicit Euler method, how can i get the value of $f(t_{n+1}, y_{n+1})$ ?

Can I use the forward Euler method to get the value $y_{n+1}$ then substitute in backward Euler formula?

$\endgroup$
  • $\begingroup$ There is a difference between implicit ODE $0=F(t,y,\dot y)$ and implicit numerical methods. Most numerical methods, explicit as well as implicit, are for explicit ODE $\dot y=f(t,y)$. $\endgroup$ – LutzL Aug 31 '16 at 16:27
4
$\begingroup$

Backward Euler is an implicit method whereas Forward Euler is an explicit method. The latter means that you can obtain $y_{n+1}$ directly from $y_n$. The former means that you in general must solve a (non-linear) equation at each time step to obtain $y_{n+1}$. The typical way to do this to to use a non-linear equation solver such as Newton's method.

Example:

Say we want to solve $$ \frac{dy}{dx}= y\cos{y}. $$ Backward Euler gives us $$ y_{n+1} = y_n + h y_{n+1} \cos{y_{n+1}} $$ or $$ y_{n+1}(1 - h \cos{y_{n+1}}) = y_n, $$ which clearly is non-linear in $y_{n+1}$ and thus requires a non-linear solver.

Update:

The reason we shouldn't use Forward Euler to obtain $f(t_{n+1},y_{n+1})$ is that it defies the entire purpose of the implicit method. If we can obtain $f(t_{n+1},y_{n+1})$ in a stable way using Forward Euler, then we can also obtain $y_{n+1}$ in a stable way, hence there is no need for the implicit method in the first place. However, usually the very reason for using an implicit method is that explicit ones (Forward Euler in this case) are unstable for certain problems, which brings us back to square one.

$\endgroup$
  • $\begingroup$ Dear, it is very difficult to apply Raphson for my problem because this method involves derivative. Can i use finite difference method for finding $y _{n+1}$ or suggest some other technique. $\endgroup$ – Abbeha Aug 31 '16 at 12:13
  • $\begingroup$ It's hard to tell without knowing the problem you are solving. There are plenty of iterative methods that may work, depending on the problem at hand. You could try posting the details of the problem you are trying to solve on the Computational Science site and ask for advice there. $\endgroup$ – ekkilop Aug 31 '16 at 12:30
  • $\begingroup$ @ekkilop : [+1] Abbeha: Newton's method can be replaced by secant method if computing the derivative is a delicate problem. $\endgroup$ – Jean Marie Aug 31 '16 at 22:09
0
$\begingroup$

You can use fixed point iteration or Newton iteration

Fixed point iteration is

$$y_{n+1}^{(s+1)}= y_n + hf(t_{n+1}, y_{n+1}^{(s)})$$

with iteration starting with explicit Euler: $y_{n+1}^{(0)}= y_n + hf(t_{n+1}, y_n)$

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.