Projekt 5.1 Michaelis-Menton-ekvationen A Course in Mathematical Modeling - Mooney & Swift
A Course in Mathematical Modeling, Kap. 5: projekt Michaelis-Menton-ekvationen beskriver den hastighet med vilken kroppen kan bryta ner en intagen drog. Projekt 5.1 utgår från ekvationen:
A Course in Mathematical Modeling, Kap. 5: projekt För många droger är A mycket större än x(t), det vill säga: A>>x(t) ger A+x~A Skriv om och lös ekvationen på formen x(t)! 1A+x=A Ekvationen går att separera och därefter kan varje sida integreras med avseende på x respektive t:
A Course in Mathematical Modeling, Kap. 5: projekt A+x=x För många droger är A mycket mindre än x(t), det vill säga: A<<x(t) ger Skriv om och lös ekvationen på formen x(t). Separera och integrera:
A Course in Mathematical Modeling, Kap. 5: projekt Rita grafer Använd approximationerna från uppgift 1 och 2 och visa resultatet i graf-form. Antag att K=1. Använd värdena för A och x(0) från uppgift 1 respektive uppgift 2.
A Course in Mathematical Modeling, Kap. 5: projekt Rita grafer A = 6, K = 1, x(0) = 0,0025
A Course in Mathematical Modeling, Kap. 5: projekt Rita grafer K = 1, x(0) = 0,025 Denna approximation är endast intressant då t är nära 0.
A Course in Mathematical Modeling, Kap. 5: projekt A+x=A+x Längre än så här kommer jag inte “för hand”, utan måste ta Matlab till hjälp. Separera och integrera:
A Course in Mathematical Modeling, Kap. 5: projekt A+x=A+x Innan jag öppnar Matlab vill jag bara kolla att den ekvation jag fått fram stämmer. Det kan jag göra med implicit derivering*: * F. Eriksson. Flerdimensionell analys. Studentlitteratur, Lund, “Översatt” till mina beteckningar blir det:
A Course in Mathematical Modeling, Kap. 5: projekt A+x=A+x Implicit derivering*: * F. Eriksson. Flerdimensionell analys. Studentlitteratur, Lund, Det stämmer!
A Course in Mathematical Modeling, Kap. 5: projekt A+x=A+x Med kommandot ‘FZERO(‘funktion',x(0))’ letar Matlab fram de x som ger att en viss funktion = 0. Jag gör en funktionsfil och en m-fil som innehåller kommandot ‘fzero’. Min funktion är alltså: Därefter låter jag Matlab rita upp resultatet i en graf. Enligt uppgiften ska jag använda K=1, A=0,025 och x(0)=0,025.
A Course in Mathematical Modeling, Kap. 5: projekt A+x=A+x Funktionsfilen ‘menton.m’: function P = menton(x) global t A=0.025; K=1; % C=-(A*log(abs(x)))-x-K*t, men jag byter % beteckningar så att x=y och t=tid y=0.025; tid=0; C=-(A*log(abs(y)))-y-K*tid; P=A*log(abs(x))+x+K*t+C; Eftersom t ska variera måste den anges som global. För ett antal olika t, ska funktionen P bli 0 för vissa x.
A Course in Mathematical Modeling, Kap. 5: projekt A+x=A+x FZERO-filen: n=0; global t for t=0.005:0.005:0.15 n=n+1; x=fzero('menton',0.0025); if x<0; x=0; end V(n)=x; Vtid(n)=t; end plot (Vtid',V'),xlabel('Tid'),ylabel('Koncentration')
A Course in Mathematical Modeling, Kap. 5: projekt A+x=A+x A = 0,025, K = 1, x(0) = 0,025
A Course in Mathematical Modeling, Kap. 5: projekt Jämför! A = 6, K = 1, x(0) = 0,0025 Approximationen att A+x=A, då x är mycket mindre än A, fungerar för t=0 till t=14 ungefär.
A Course in Mathematical Modeling, Kap. 5: projekt Jämför! A = 0,0025, K = 1, x(0) = 0,025 Approximationen att A+x=x, då x är mycket större än A, fungerar för t=0 till t=0,025.
A Course in Mathematical Modeling, Kap. 5: projekt Numerisk lösning Numerisk lösning med hjälp av Matlab: Funktionsfilen ‘michaelis.m’: function xdot=michaelis(t,x) K=1; A=0.025; % x(0)=0.025 xdot=-K*t/(A+x); [t,x]=ode45('michaelis',[0,0.15],0.025); plot(t,x)
A Course in Mathematical Modeling, Kap. 5: projekt Numerisk lösning Numerisk lösning med hjälp av Matlab: Funktionsfilen ‘michaelis.m’: function xdot=michaelis(t,x) K=1; A=0.025; % C=-(A*log(abs(x)))-x-K*t, men jag byter % beteckningar så att x=y och t=tid y=0.025; tid=0; C=-(A*log(abs(y)))-y-K*tid; % x(0)=0.025 xdot=A*lnx+x+K*t+C; SKALL VARA DIFF EKVATIONEN DVS –Kx/(A+x) [t,x]=ode45('michaelis',[0,0.15],0.025); plot(t,x)
A Course in Mathematical Modeling, Kap. 5: projekt Numerisk lösning