Projektuppgift A till NUM131
May 12, 2003
Introduktion
Målet med denna projektuppgift är att skapa en FORTRAN rutin som analyserar en kemisk process.
Den kemiska processen kan beskrivas mha följande schema
−
−
→
A+B →
k1 AB k2 C + B,
där k1 och k2 är hastigheten med vilken de båda reaktionerna sker. Detta
är en typisk katalytisk reaktion (reaktanten A och katalysatorn B bildar ett
komplex AB som sönderfaller i produkten C och återbildar B).
Koncentrationsförändringen i processen kan nu skrivas som
d
[A] = −k1 [A][B]
dt
d
[B] = −k1 [A][B] + k2 [AB]
dt
d
[C] = k2 [AB]
dt
d
[AB] = k1 [A][B] − k2 [AB]
dt
(1)
där t är tiden och [X] anger koncentrationen av ämnet X.
Introducera vektorn u = ([A], [B], [C], [AB]) och funktionen F : R4 → R4
som definieras av högerleden i ekvation (1). Vi kan nu skriva ekvation (1)
som
d
u(t) = F (u(t)).
dt
1
Uppgift 1
Skriv en subrutin i FORTRAN som
1. Löser ekvationen
d
u(t) = F (u(t)); u(0) = u0 ,
dt
där u0 är en given vektor med de initiala koncentrationerna i systemet.
Ekvationen ska kunna lösas med följande metoder:
• Explicit Euler: u(nh) = u((n − 1)h) + hF {u((n − 1)h)}
• Implicit Euler:
uP (nh) = u((n − 1)h) + hF {u((n − 1)h)}
u(nh) = u((n − 1)h) + hF {u(nh)P }
2. Skriver lösningsvektorerna u(t), med t = 0 till T , i en fil.
Uppgift 2
Testa ert program med k1 = 1, k2 = 2 och u0 = (1, 2, 0, 0). Undersök
empiriskt hur litet h som behövs för att resultaten ska se realistiska ut. Presentera era resultat mha MATLAB.
Uppgift 3
Undersök om den kemiska processen har ett jämviktsläge dvs finns det
en vektor u? sådant att F (u? ) = 0.
Lycka till!
2