- #1

SalfordPhysics

- 69

- 1

## Homework Statement

Write a program to simulate motion of simple harmonic oscillator.

Initial conditions: Let ω = 1, x(t=0) = 1, v(t=0) = 0.

Integrate over 30 seconds in intervals of 0.05s.

## Homework Equations

δ

^{2}x / δt

^{2}= -ω

^{2}x

As set of 2 coupled ODE's; x' = v, v' = -w

^{2}x

## The Attempt at a Solution

[/B]

When I printed out the results, i noticed I was getting larger and larger ith numbers of v each time I ran. I am obtaining a graph that represents SHO for the first half a wavelength. Basically, I'm not sure where my error is coming from. I've not included the DISLIN part of the script as this isn;t where the problem is arising from.

**eulershm**

PROGRAM

PROGRAM

**IMPLICIT NONE**

INTEGER, PARAMETER:: n = 600

INTEGER, PARAMETER

**INTEGER**:: i = 1

**REAL, DIMENSION**(n):: x, v, t

**REAL, PARAMETER**:: dt = 0.05, tmax = 30, w = 1

v = 0

x = 1

**DO WHILE**(t(i)

**.LE.**tmax)

**CALL**evalF(v(i), v(i+1), x(i), x(i+1), t(i), t(i+1), w, dt)

i = i+1

**END DO**

END PROGRAMeulershm

END PROGRAM

**SUBROUTINE**evalF(v1, v2, x1, x2, t1, t2, w1, tau)

**IMPLICIT NONE**

REAL: v1, v2, x1, x2, t1, t2

REAL

**REAL**:: w1, tau

x2 = x1 + v1*tau

v2 = v1 - (w1**2)*tau

t2 = t1 + tau

**END SUBROUTINE**evalF

Many thanks to whoever can help.