# Euler-Cromers metode for harmonisk oscillator import numpy as np import matplotlib.pyplot as plt # Definerer parametre, startposisjon og startfart. m = 1 k = 1 x0 = 2 v0 = 0 # Definerer hjelpevariabel (c), tidssteg og makstid c = k/m dt = 0.01 tMax = 50 # a,v,x,t er akselerasjon, fart, posisjon og tid # Lager arrayer til ? lagre resultatene n = int(tMax/dt) t = np.zeros(n) a = np.zeros(n) v = np.zeros(n) x = np.zeros(n) # Setter initialverdiene i starten av arrayene x[0] = x0 v[0] = v0 # Integrasjonsl?kka der vi regner ut nye verdier for x og v fra de gamle for i in range(n-1): t[i+1] = i*dt a[i] = -c*x[i] v[i+1] = v[i] + a[i]*dt x[i+1] = x[i] + v[i+1]*dt # Plotter resultatene plt.subplot(2,1,1) plt.plot(t,x) plt.xlabel('t [s]') plt.ylabel('x [m]') plt.subplot(2,1,2) plt.plot(t,v) plt.xlabel('t [s]') plt.ylabel('v [m/s]') plt.savefig('HO.png') plt.show()