## Honors 270 Assignment 6

### Directions

#### Damped Oscillations

In this assignment you will write a program to calculate solutions to the damped oscillator problem which has the differential equation:
`   mx'' +cx' + kx =0 `
where m is the mass of the oscillator, x'' is the acceleration, c is the damping constant, x' is the velocity, k is the spring constant, and x is the position of the oscillator.

We first isolate the acceleration

```x'' =  -1/m (cx' + kx)
```

This differential equation can be solved numerically using difference equations:

```Δx' = -1/m (cx' +kx) Δt
x'i = x'i-1 -1/m (cx'i-1 +kxi-1)  Δt
```
```xi = xi-1 + x'iΔt
```

In those equation the subscripts are indices for arrays.

Your program will first read in input values from a one of 3 files: damp1.txt, damp2.txt, and damp3.txt. Those files hold the mass (m), damping constant (c), spring constant (k), time step (dt), initial amplitude (A), and number of points to save (n), in that order.

Once your program has read in those values, it should setup up empty arrays for position (x) and velocity (x'=v), and a filled time array. The initial position is equal to the amplitude (x[0] = A) and the initial velocity is 0 (v[0] =0). It should then use a while loop to calculate the velocity and position at each time. Then it should create separate velocity and position plots of the result. It should also save the time, position, and velocity to a text file. Each row of the text file should be a time, followed by the position and velocity at that time.

You should run your program for each of the input files, and you should turn in copies of your plots and output text files for each of the run.

Also, for each of your runs, find the first time at which the position goes from positive to negative.