Forelesning 7: Dynamiske systemer#
Fartslover (ratelover)#
Vi bruker følgende reaksjon som eksempel (vi later først som om den er reversibel):
\[ H_2 (g) + I_2 (g) \rightarrow 2HI (g)\]
Vi har følgende ratelov for reaksjonen:
\[\frac{d[HI]}{dt} = k_r[H_2][I_2]\]
import numpy as np
import matplotlib.pyplot as plt
# Initialbetingelser
H2_0 = 1 # mol/L
I2_0 = 0.5 # mol/L
HI_0 = 0 # mol/L
k = 3E-2
# Tidsparametre
t0 = 0
tid_slutt = 700 # sekunder
dt = 1E-3
N = int((tid_slutt - t0)/dt) + 1
# Arrayer
t = np.zeros(N)
H2 = np.zeros(N)
I2 = np.zeros(N)
HI = np.zeros(N)
# Initialisere arrayer
t[0] = t0
H2[0] = H2_0
I2[0] = I2_0
HI[0] = HI_0
# Integrasjonløkke
for i in range(N-1):
# Fartslovene
dHIdt = k*H2[i]*I2[i]
dI2dt = -0.5*dHIdt
dH2dt = dI2dt
# Eulers metode
H2[i+1] = H2[i] + dH2dt*dt
I2[i+1] = I2[i] + dI2dt*dt
HI[i+1] = HI[i] + dHIdt*dt
# Oppdatere tidssteget
t[i+1] = t[i] + dt
# Plotting av resultatene
plt.plot(t, H2, label='H2', color='blue')
plt.plot(t, I2, label='I2', color='green')
plt.plot(t, HI, label='HI', color='red')
plt.xlabel('Tid (s)')
plt.ylabel('Konsentrasjon (mol/L)')
plt.title('Konsentrasjoner av H2, I2 og HI over tid')
plt.legend()
plt.show()