Forelesning 8: Differensiallikninger og reaksjonskinetikk#

import numpy as np
import matplotlib.pyplot as plt

# Startbetingelser
t0 = 0
y0 = 0
t_slutt = 100 # sekunder
dt = 1E-3

N = int((t_slutt - t0)/dt) + 1

# Arrayer
t = np.zeros(N)
y = np.zeros(N)

t[0] = t0
y[0] = y0

for i in range(N-1):
    # Differensiallikninga
    yder = 1
    # Eulers metode
    y[i+1] = y[i] + yder*dt
    t[i+1] = t[i] + dt    
plt.plot(t, y)
plt.show()
../../_images/5c00cea64e67993a3e5b2e7591ac3ddc61e5a08dab3c4f7dc14b6ffbd4d677fc.png
import numpy as np
import matplotlib.pyplot as plt

# Startbetingelser
t0 = 0
HI0 = 0
H20 = 1 # mol/L
I20 = 0.5 # mol/L
t_slutt = 500 # sekunder
dt = 1E-3
k = 0.1

N = int((t_slutt - t0)/dt) + 1

# Arrayer
t = np.zeros(N)
HI = np.zeros(N)
H2 = np.zeros(N)
I2 = np.zeros(N)

t[0] = t0
HI[0] = HI0
I2[0] = I20
H2[0] = H20

for i in range(N-1):
    # Differensiallikningene
    dHIdt = k*H2[i]*I2[i]
    dH2dt = -0.5*dHIdt
    dI2dt = dH2dt
    
    # Eulers metode
    #y[i+1] = y[i] + yder*dt
    HI[i+1] = HI[i] + dHIdt*dt
    H2[i+1] = H2[i] + dH2dt*dt
    I2[i+1] = I2[i] + dI2dt*dt
    # y_neste = y_forrige + difflikning*dt

    t[i+1] = t[i] + dt    
plt.plot(t, HI, label = "HI")
plt.plot(t, H2, label = "H$_2$")
plt.plot(t, I2, label = "I$_2$")
plt.xlabel("Tid (s)")
plt.ylabel("Konsentrasjon (mol/L)")
plt.title("Reaksjonsforløp for H$_2$ + I$_2$ --> HI")
plt.legend()
plt.show()
../../_images/add55c1fd8c3ac663ce6030b26f3ef6298a2d2cd579b883df5e369bdb52eb1a0.png