I'm trying to make a program that can approximate a differential equation via the Euler's method.(adsbygoogle = window.adsbygoogle || []).push({});

Here is my program :

Program diff

implicit none

Real :: t_0, x_0, t_f, k_j, h

Real :: t,x

Integer :: n,j

Write(*,*)'Chose t_0 and x_0'

Read(*,*)t_0, x_0

Write(*,*)'Chose t_f'

Read(*,*)t_f

Write(*,*)'Chose n'

Read(*,*)n

h=(t_f-t_0)/n

Do j=1,n

k_j=f(t,x)

x=x+h*k_j

t=t+h

Write(*,*)t,x

end do

Contains

Real Function f(t,x)

real, intent(in) :: x,t

f=2*x

end function

end program

Here I am trying to approximate the solutions of the following differential equation : [tex]x'=2x[/tex] and [tex]x(0)=1[/tex] in the interval [0,1], using a step h of 0.1. So in my program, I input t_0=0, X_0=1, t_f=1 and n=10.

I know where is the problem of my program. It's in the "do" part. And more exactly here I think "k_j=f(t,x)". For example, the first term should be k_1=f(0,1) so it must be equal to 2. But the program doesn't do it. It doesn't understand that f(t,x) should be evaluated in t=0, x=1 for the first term. How can I fix this? I'm thinking about another "do" part, inside of the one I already have... But can't figure it out. Thanks for your help.

**Physics Forums - The Fusion of Science and Community**

Dismiss Notice

Join Physics Forums Today!

The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

# Fortran 90, Euler's method help

Loading...

Similar Threads for Fortran Euler's method | Date |
---|---|

If statement for Monte Carlo integration | Apr 15, 2018 |

Euler method in Fortran | Nov 12, 2013 |

Fortran program for oscillator using Euler method | Oct 22, 2013 |

Fortran 90. Euler and Runge-Kutta's method | Jun 22, 2011 |

Euler Method in Fortran - HELP | Oct 30, 2008 |

**Physics Forums - The Fusion of Science and Community**