Team:Groningen/Modelling/model/calc.js
From 2009.igem.org
Line 136: | Line 136: | ||
function modelTotal(){ | function modelTotal(){ | ||
- | var | + | |
- | + | // Definieren van begincondities dit zijn dus constanten die later niet gebruikt worden | |
- | + | //Begincondities (op tijdstip nul) die in het 0-de element van een array moeten worden gezet. | |
- | + | var data = { AsexT: [5], | |
- | + | ArsBas: [0], | |
- | + | GlpFas: [0], | |
- | + | GlpFT: [5], | |
+ | ArsBT: [5], | ||
+ | AsinT: [0], | ||
+ | ars1T: [5], | ||
+ | ars2T: [5], | ||
+ | pro: [5], | ||
+ | ArsRT: [5], | ||
+ | GV: [0], | ||
+ | Time: [0]}; | ||
+ | |||
+ | // Begincondities die constantes blijven | ||
+ | var Vc = 10; | ||
+ | var Timestep = 10; | ||
+ | var N = Time/Timestep; // dit gaat niet goed!! je kunt niet delen door de gehele array misschien een totaltime ofzo gebruiken | ||
+ | var Vs = 10; | ||
+ | var k8 = 10; | ||
+ | var v5 = 10; | ||
+ | var tauG = 10; | ||
+ | var tauB = 10; | ||
+ | var tauR = 10; | ||
+ | var Beta5 = 10; | ||
+ | var Beta4 = 10; | ||
+ | var Beta3 = 10; | ||
+ | var Beta1 = 10; | ||
+ | var K3d = 0,33; // micromolair; | ||
+ | var K1d = K3d/10; | ||
+ | |||
+ | //Er komen nog een hoop nieuwe variabelen aan stop ze tenzij anders aangegeven allemaal in een Array | ||
+ | //We stoppen nu het gehele programma in een loop (Ik doe een forloop, je moet zelf maar kijken wat het handigst is.) | ||
+ | var TOL = 10^-6; | ||
+ | var getal = 500; | ||
+ | var Yvalue = getal > TOL; // is dit een if lus??? of zomaar iets om een waarde aan y te geven?? | ||
+ | |||
+ | |||
+ | |||
+ | var dataEndConcentrations = { ArsB: [0], | ||
+ | Asin: [0], | ||
+ | ArsR: [0], | ||
+ | ars: [0], | ||
+ | GlpF: [0], | ||
+ | ArsRas:[0], | ||
+ | Asex: [0]}; | ||
+ | |||
+ | for(var i = 1 ; i < N ; i++) { | ||
+ | //We passen nu eerst Newton's methode toe | ||
+ | // Eerst maken we een Array X met de Afschatting van de variabelen | ||
+ | |||
+ | // heb nu de waarden genomen van uit de array's en die in de tmp array x gezet. | ||
+ | |||
+ | var x =new Array(6); | ||
+ | x[0] = ArsBT[i]/2; //(ArsB) | ||
+ | x[1] = Asex[i]/10; // Asin // zit nog niks in asex dus kun je ook niet delen | ||
+ | x[2] = ArsRT[i]/3; // ArsR | ||
+ | x[3] = ArsRT[i]/3; // ars | ||
+ | x[4] = GlpF[i]/2; // GlpF // zit nog niks in GLPF dus kun je ook niet delen | ||
+ | x[5] = ArsRT[i]/3; // ArsRas | ||
+ | x[6] = Asex[i]/2; // Asex // zit nog niks in asex dus kun je ook niet delen | ||
+ | |||
+ | |||
+ | //Nu maken we weer een forloop aan | ||
+ | for ( var j = 1; j <= N && Yvalue>TOL; j++) { | ||
+ | |||
+ | // variabelen ?? | ||
+ | var K7 = 10; | ||
+ | |||
+ | |||
+ | var f =new Array(6); // als het een functie moet zijn, dan moet het vast anders gedifineerd worden | ||
+ | f[0] = ((ArsBT[i] * K7) / (x[1] + K7)) - x[0] | ||
+ | f[1] = ((AsinT[i]) / (1 + (x[2] / K1d) + (x[0]) / K7))) - X[1]; | ||
+ | F[2] = ((ArsRT[i]) / (1 + (x[1] / K1d) + (2 * x[2] * x[3] / K3d))) - x[2]; | ||
+ | F[3] = ((K3d) / (x[2]^2 + K3d)) - x[3] ; | ||
+ | F[4] = ((GlpFT[i] * K5) / (x(6) + K5)) - x[4]; | ||
+ | F[5] = ((ARsRT[i] * x[1] / K1d) / (1 + (x[1] / K1d) + (2 * x[2] * x[3] / K3d))) - x[5]; | ||
+ | F[6] = ((AsexT[i] * K5) / (K5 + x[4])) - x[6]; | ||
+ | |||
+ | |||
+ | // matrix: http://www.iterasi.net/openviewer.aspx?sqrlitid=pvgcg4m2ike_hwifjguc5a geen idee hoe het er weer uit moet drm, array in array | ||
+ | |||
+ | //Hierna maken we een Matrix 7x7 matrix J aan | ||
+ | var matrix = new Array(7); | ||
+ | j[0] = new Array(7); | ||
+ | j[1] = new Array(7); | ||
+ | j[2] = new Array(7); | ||
+ | j[3] = new Array(7); | ||
+ | j[4] = new Array(7); | ||
+ | j[5] = new Array(7); | ||
+ | j[6] = new Array(7); | ||
+ | j[7] = new Array(7); | ||
+ | |||
+ | j[1][1] = -1; j[1][2] = 0; j[1][3] = 0; j[1][4] = 0; j[1][5] = 0; j[1][6] = 0; j[1][7] = 0; | ||
+ | j[2][1] = 0; j[2][2] = -1; j[2][3] = 0; j[2][4] = 0; j[2][5] = 0; j[2][6] = 0; j[2][7] = 0; | ||
+ | j[3][1] = 0; j[3][2] = 0; j[3][3] = (-2 * ((ArsRT) / (1 + (x[1] / K1d) + (2 * x[2] * x[3] / K3d))^2) - 1); j[3][4] = 0; j[3][5] = 0; j[3][6] = 0; j[3][7] = 0; | ||
+ | j[4][1] = 0; j[4][2] = 0; j[4][3] = 0; j[4][4] = -1; j[4][5] = 0; j[4][6] = 0; j[4][7] = 0; | ||
+ | j[5][1] = 0; j[5][2] = 0; j[5][3] = 0; j[5][4] = 0; j[5][5] = -1; j[5][6] = 0; j[5][7] = 0; | ||
+ | j[6][1] = 0; j[6][2] = 0; j[6][3] = 0; j[6][4] = 0; j[6][5] = 0; j[6][6] = -1; j[6][7] = 0; | ||
+ | j[7][1] = 0; j[7][2] = 0; j[7][3] = 0; j[7][4] = 0; j[7][5] = 0; j[7][6] = 0; j[7][7] = -1; | ||
+ | |||
+ | //Nu maken we een Array Y aan | ||
+ | var y =new Array(6); | ||
+ | y[0] = f[0]/ j[1][1]; | ||
+ | y[1] = f[1]/ j[2][2]; | ||
+ | y[2] = f[2]/ j[3][3]; | ||
+ | y[3] = f[3]/ j[4][4]; | ||
+ | y[4] = f[4]/ j[5][5]; | ||
+ | y[5] = f[5]/ j[6][6]; | ||
+ | y[6] = f[6]/ j[7][7]; | ||
+ | |||
+ | |||
+ | // Math.abs om de Y waarden zetten (bijv. Math.abs(Y(0))) | ||
+ | Yvalue = Math.abs(Y[0]) + Math.abs(Y[1]) + Math.abs(Y[2]) + Math.abs(Y[3]) + Math.abs(Y[4]) + Math.abs(Y[5]) + Math.abs(Y[6]); | ||
+ | |||
+ | |||
+ | |||
+ | for ( i = 0 ; i <= 6 ; i++) { | ||
+ | x[i] = x[i] + y[i]; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | if(x[0]>0){ | ||
+ | ArsB[i] = x[0]; | ||
+ | }esle{ | ||
+ | ArsB[i]= 0; | ||
+ | } | ||
+ | |||
+ | if(x[1]>0){ | ||
+ | Asin[i] = x[1]; | ||
+ | }esle{ | ||
+ | Asin[i] = 0; | ||
+ | } | ||
+ | |||
+ | if(X(2)>0){ | ||
+ | ArsR[i] = x[2]; | ||
+ | }esle{ | ||
+ | ArsR[i] = 0; | ||
+ | } | ||
+ | |||
+ | if(X(3)>0){ | ||
+ | ars[i] = x[3]; | ||
+ | }esle{ | ||
+ | ars[i] = 0; | ||
+ | } | ||
+ | |||
+ | if(X(4)>0){ | ||
+ | GlpF[i] = x[4]; | ||
+ | }esle{ | ||
+ | GlpF[i] = 0; | ||
+ | } | ||
+ | |||
+ | if(x[5]>0){ | ||
+ | ArsRas[i] = x[5]; | ||
+ | }esle{ | ||
+ | ArsRas[i] = 0; | ||
+ | } | ||
+ | |||
+ | if(X(6)>0){ | ||
+ | Asex[i] = x[6]; | ||
+ | }esle{ | ||
+ | Asex[i] = 0; | ||
+ | } | ||
+ | |||
+ | |||
+ | var data2 = { | ||
+ | ars1: [0], | ||
+ | ars2: [0], | ||
+ | ArsBas: [0], | ||
+ | GlpFas: [0], // ookal bovenin gedifineerd, is het dezelfde of een andere | ||
+ | arsT: [0], | ||
+ | ArsRars:[0], | ||
+ | Asex: [0], // ookal bovenin gedifineerd, is het dezelfde of een andere | ||
+ | k6: [0]}; // is dit ook een array?? blijft deze niet gewoon een vaste snelheid houden?? | ||
+ | |||
+ | //Nu gaan we verdere variabelen opstellen ook deze moeten weer in Array's komen te staan | ||
+ | k6[i] = (v5 * Vc) / (GlpFT[i] * Vs); | ||
+ | ars1[i] = (ars1T[i] * K3d) /(K3d + ArsR[i]^2); | ||
+ | if(ars1[i])<0){ | ||
+ | ars1[i] = 0; | ||
+ | } | ||
+ | ars2[i] = (ars2T[i] * K3d) /(K3d + ArsR[i]^2); | ||
+ | if(ars2[i]<0){ | ||
+ | ars2[i] = 0; | ||
+ | } | ||
+ | ArsBas[i] = ArsBT[i] - ArsB[i]; | ||
+ | if(ArsBas[i]<0){ | ||
+ | ArsBas[i] = 0; | ||
+ | } | ||
+ | GlpFas[i] = GlpFT[i] - GlpF[i]; | ||
+ | if(GlpFas[i]<0){ | ||
+ | GlpFas[i] = 0; | ||
+ | } | ||
+ | arsT[i] = ars1T[i] + ars2T[i]; | ||
+ | if(arsT[i]<0){ | ||
+ | arsT[i] = 0; | ||
+ | } | ||
+ | ArsRars[i] = arsT(i) - ars(i); | ||
+ | if(ArsRars[i]<0){ | ||
+ | ArsRars[i] = 0; | ||
+ | } | ||
+ | Asex[i] = AsexT[i] - GlpFas[i]; | ||
+ | if(Asex[i]<0){ | ||
+ | Asex[i] = 0; | ||
+ | } | ||
+ | |||
+ | //We gaan nu met Eulers methode de volgende slag voorbereiden | ||
+ | AsexT[i+1] = AsexT[i] + Timestep((Vc/Vs)*k8*ArsBas[i]-k6*GlpFas[i]); | ||
+ | if (AsexT [i+1]<0){ | ||
+ | AsexT[i+1] = 0; | ||
+ | } | ||
+ | GlpfT[i+1] = GlpfT[i]; | ||
+ | ArsBT[i+1] = ArsBT[i] + Timestep*(Beta4*ars1[i] - Ln[2]/(tauB * ArsB[i])); | ||
+ | if (ArsBT[i+1]<0){ | ||
+ | ArsBT[i+1] = 0; | ||
+ | } | ||
+ | AsinT[i+1] = AsinT[i] + Timestep*((Vs/Vc)*k6*GlpFas[i]-k8*ArsBas[i]); | ||
+ | if (AsinT[i+1]<0){ | ||
+ | AsinT[i+1] = 0; | ||
+ | } | ||
+ | ars1T[i+1] = ars1T[i]; | ||
+ | if (ars1T[i+1]<0){ | ||
+ | ars1T[i+1] = 0; | ||
+ | } | ||
+ | ars2T[i+1] = ars2T[i]; | ||
+ | if (ars2T[i+1]<0){ | ||
+ | ars2T[i+1] = 0; | ||
+ | } | ||
+ | pro[i+1] = pro[i]; | ||
+ | if (pro[i+1]<0){ | ||
+ | pro[i+1] = 0; | ||
+ | } | ||
+ | ArsRT[i+1] = ArsRT[i] + Timestep(Beta1*ars1[i] + Beta3*pro[i] - (ln[2]/tauR)*ArsR[i]); | ||
+ | if (ArsRT[i+1]<0){ | ||
+ | ArsRT[i+1] = 0; | ||
+ | } | ||
+ | GV[i+1] = GV[i] + Timestep(Beta5*ars2[i] - ln[2]*tauG*GV[i]) | ||
+ | if (GV[i+1]<0){ | ||
+ | GV[i+1] = 0; | ||
+ | } | ||
+ | Time[i+1] = Time[i] + Timestep; | ||
+ | if (Time[i+1]<0){ | ||
+ | Time[i+1] = 0; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
- | |||
} | } |
Revision as of 11:56, 3 September 2009
function calc(){
// gets input var growthFactorNode = document.getElementById("growthFactor");
// reads input var growthFactor = Number(growthFactorNode.value); // begin variable var time = 0; var x = 0; var y = 0; arrValueX = new Array(); arrValueY = new Array();
// process var growthFactor = growthFactor + 1; for (var time = 0; time < 30; time++) { var y = growthFactor*x*x; var x = x + 1; arrValueX.push(x); arrValueY.push(y); }
// Set outputs setOutput(growthFactorAnswer, growthFactor ); document.getElementById('modelDataGraph').refresh();
}
function setOutput(node,v) {
node.innerHTML = formatNumberToHTML(v); node.value = v;
}
function formatNumberToHTML(v,p) {
if (p===undefined) p = 5; return v.toPrecision(p) .replace(/e\+([0-9]+)$/i,'·10$1') .replace(/e\-([0-9]+)$/i,'·10-$1');
}
// ------ Annelies timer functie ---------
var mijnTimer;
function tijd(){
// gets input var timeMiliSecNode = document.getElementById("timeMiliSec"); // reads input var timeMiliSec2 = Number(timeMiliSecNode.value);
//alert("functie tijd: "+timeMiliSec2);
if (mijnTimer) clearInterval(mijnTimer); mijnTimer = setInterval( "doSomething()",timeMiliSec2);
}
function doSomething(){
//alert("functie doe iets BOVEN DE IF LUS: "+doSomething.time);
if (doSomething.time === undefined) {
doSomething.time = 0; //alert("functie doe ietsFDBADFNA: "+doSomething.time); }
// Set outputs setOutput(tijdAnswer, doSomething.time); doSomething.time += 1; transport();
}
// -------- transport model, geeft waarden mee in een object/array ----------
function transport(){
// variablen var data = {time: [0], AsIn: [0], ArsB: [5], AsEx: [5], GlpF: [5], GlpFAs: [0], ArsBAs: [0]};
// constanten
var totalTime = 300; var stepSize = 0.1; var K5on = 1; var K5off = 1e-6; var K6 = 1e-3; var Vc = 1.1 - 0.0073; var Vs = 0.0073; var K7on = 1; var K7off = 1e-6; var K8 = 1e-3;
var N = totalTime / stepSize ;
for (var i=1;i<=N;i++){ data.GlpFAs[i] = data.GlpFAs[i-1] + stepSize * (K5on * data.AsEx[i-1] * data.GlpF[i-1] - (K5off + K6) * data.GlpFAs[i-1]); data.AsEx[i] = data.AsEx[i-1] + stepSize * (-K5on * data.AsEx[i-1] * data.GlpF[i-1] + K5off * data.GlpFAs[i-1] + (Vc/Vs) * K8 * data.ArsBAs[i-1]); data.GlpF[i] = data.GlpF[i-1] + stepSize * (-(K5on * data.AsEx[i-1] * data.GlpF[i-1] - (K5off + K6) * data.GlpFAs[i-1])); data.ArsBAs[i] = data.ArsBAs[i-1] + stepSize * (K7on * data.AsIn[i-1] * data.ArsB[i-1] - (K7off+K8) * data.ArsBAs[i-1]); data.AsIn[i] = data.AsIn[i-1] + stepSize * (-K7on * data.AsIn[i-1] * data.ArsB[i-1] - (K7off + K8) * data.ArsBAs[i-1] - K8 * data.ArsBAs[i-1] + (Vs/Vc) * K6 * data.GlpFAs[i-1]); data.ArsB[i] = data.ArsB[i-1] + stepSize * (-(K7on * data.AsIn[i-1] * data.ArsB[i-1] - (K7off + K8) * data.ArsBAs[i-1])); data.time[i] = data.time[i-1] + stepSize; }
setOutput(ModelAnswer, data.AsEx[4]); var modelDataNode = document.getElementById("modelData"); modelDataNode.data = data;
document.getElementById("modelDataGraph").refresh();
}
function modelTotal(){
// Definieren van begincondities dit zijn dus constanten die later niet gebruikt worden
//Begincondities (op tijdstip nul) die in het 0-de element van een array moeten worden gezet. var data = { AsexT: [5], ArsBas: [0], GlpFas: [0], GlpFT: [5], ArsBT: [5], AsinT: [0], ars1T: [5], ars2T: [5], pro: [5], ArsRT: [5], GV: [0], Time: [0]};
// Begincondities die constantes blijven var Vc = 10; var Timestep = 10; var N = Time/Timestep; // dit gaat niet goed!! je kunt niet delen door de gehele array misschien een totaltime ofzo gebruiken var Vs = 10; var k8 = 10; var v5 = 10; var tauG = 10; var tauB = 10; var tauR = 10; var Beta5 = 10; var Beta4 = 10; var Beta3 = 10; var Beta1 = 10; var K3d = 0,33; // micromolair; var K1d = K3d/10;
//Er komen nog een hoop nieuwe variabelen aan stop ze tenzij anders aangegeven allemaal in een Array
//We stoppen nu het gehele programma in een loop (Ik doe een forloop, je moet zelf maar kijken wat het handigst is.) var TOL = 10^-6; var getal = 500; var Yvalue = getal > TOL; // is dit een if lus??? of zomaar iets om een waarde aan y te geven?? var dataEndConcentrations = { ArsB: [0],
Asin: [0], ArsR: [0], ars: [0], GlpF: [0], ArsRas:[0], Asex: [0]};
for(var i = 1 ; i < N ; i++) {
//We passen nu eerst Newton's methode toe // Eerst maken we een Array X met de Afschatting van de variabelen
// heb nu de waarden genomen van uit de array's en die in de tmp array x gezet.
var x =new Array(6); x[0] = ArsBT[i]/2; //(ArsB) x[1] = Asex[i]/10; // Asin // zit nog niks in asex dus kun je ook niet delen x[2] = ArsRT[i]/3; // ArsR x[3] = ArsRT[i]/3; // ars x[4] = GlpF[i]/2; // GlpF // zit nog niks in GLPF dus kun je ook niet delen x[5] = ArsRT[i]/3; // ArsRas x[6] = Asex[i]/2; // Asex // zit nog niks in asex dus kun je ook niet delen
//Nu maken we weer een forloop aan
for ( var j = 1; j <= N && Yvalue>TOL; j++) {
// variabelen ?? var K7 = 10;
var f =new Array(6); // als het een functie moet zijn, dan moet het vast anders gedifineerd worden
f[0] = ((ArsBT[i] * K7) / (x[1] + K7)) - x[0]
f[1] = ((AsinT[i]) / (1 + (x[2] / K1d) + (x[0]) / K7))) - X[1];
F[2] = ((ArsRT[i]) / (1 + (x[1] / K1d) + (2 * x[2] * x[3] / K3d))) - x[2];
F[3] = ((K3d) / (x[2]^2 + K3d)) - x[3] ;
F[4] = ((GlpFT[i] * K5) / (x(6) + K5)) - x[4];
F[5] = ((ARsRT[i] * x[1] / K1d) / (1 + (x[1] / K1d) + (2 * x[2] * x[3] / K3d))) - x[5];
F[6] = ((AsexT[i] * K5) / (K5 + x[4])) - x[6];
// matrix: http://www.iterasi.net/openviewer.aspx?sqrlitid=pvgcg4m2ike_hwifjguc5a geen idee hoe het er weer uit moet drm, array in array
//Hierna maken we een Matrix 7x7 matrix J aan var matrix = new Array(7); j[0] = new Array(7); j[1] = new Array(7); j[2] = new Array(7); j[3] = new Array(7); j[4] = new Array(7); j[5] = new Array(7); j[6] = new Array(7); j[7] = new Array(7);
j[1][1] = -1; j[1][2] = 0; j[1][3] = 0; j[1][4] = 0; j[1][5] = 0; j[1][6] = 0; j[1][7] = 0;
j[2][1] = 0; j[2][2] = -1; j[2][3] = 0; j[2][4] = 0; j[2][5] = 0; j[2][6] = 0; j[2][7] = 0;
j[3][1] = 0; j[3][2] = 0; j[3][3] = (-2 * ((ArsRT) / (1 + (x[1] / K1d) + (2 * x[2] * x[3] / K3d))^2) - 1); j[3][4] = 0; j[3][5] = 0; j[3][6] = 0; j[3][7] = 0;
j[4][1] = 0; j[4][2] = 0; j[4][3] = 0; j[4][4] = -1; j[4][5] = 0; j[4][6] = 0; j[4][7] = 0;
j[5][1] = 0; j[5][2] = 0; j[5][3] = 0; j[5][4] = 0; j[5][5] = -1; j[5][6] = 0; j[5][7] = 0; j[6][1] = 0; j[6][2] = 0; j[6][3] = 0; j[6][4] = 0; j[6][5] = 0; j[6][6] = -1; j[6][7] = 0; j[7][1] = 0; j[7][2] = 0; j[7][3] = 0; j[7][4] = 0; j[7][5] = 0; j[7][6] = 0; j[7][7] = -1;
//Nu maken we een Array Y aan var y =new Array(6); y[0] = f[0]/ j[1][1]; y[1] = f[1]/ j[2][2]; y[2] = f[2]/ j[3][3]; y[3] = f[3]/ j[4][4]; y[4] = f[4]/ j[5][5];
y[5] = f[5]/ j[6][6];
y[6] = f[6]/ j[7][7];
// Math.abs om de Y waarden zetten (bijv. Math.abs(Y(0)))
Yvalue = Math.abs(Y[0]) + Math.abs(Y[1]) + Math.abs(Y[2]) + Math.abs(Y[3]) + Math.abs(Y[4]) + Math.abs(Y[5]) + Math.abs(Y[6]);
for ( i = 0 ; i <= 6 ; i++) { x[i] = x[i] + y[i]; } }
if(x[0]>0){ ArsB[i] = x[0]; }esle{ ArsB[i]= 0; }
if(x[1]>0){ Asin[i] = x[1]; }esle{ Asin[i] = 0; }
if(X(2)>0){ ArsR[i] = x[2]; }esle{ ArsR[i] = 0; }
if(X(3)>0){ ars[i] = x[3]; }esle{ ars[i] = 0; }
if(X(4)>0){ GlpF[i] = x[4]; }esle{ GlpF[i] = 0; }
if(x[5]>0){ ArsRas[i] = x[5]; }esle{ ArsRas[i] = 0; }
if(X(6)>0){ Asex[i] = x[6]; }esle{ Asex[i] = 0; }
var data2 = {
ars1: [0],
ars2: [0],
ArsBas: [0],
GlpFas: [0], // ookal bovenin gedifineerd, is het dezelfde of een andere
arsT: [0],
ArsRars:[0],
Asex: [0], // ookal bovenin gedifineerd, is het dezelfde of een andere
k6: [0]}; // is dit ook een array?? blijft deze niet gewoon een vaste snelheid houden??
//Nu gaan we verdere variabelen opstellen ook deze moeten weer in Array's komen te staan k6[i] = (v5 * Vc) / (GlpFT[i] * Vs); ars1[i] = (ars1T[i] * K3d) /(K3d + ArsR[i]^2); if(ars1[i])<0){ ars1[i] = 0; } ars2[i] = (ars2T[i] * K3d) /(K3d + ArsR[i]^2); if(ars2[i]<0){ ars2[i] = 0; } ArsBas[i] = ArsBT[i] - ArsB[i]; if(ArsBas[i]<0){ ArsBas[i] = 0; } GlpFas[i] = GlpFT[i] - GlpF[i]; if(GlpFas[i]<0){ GlpFas[i] = 0; } arsT[i] = ars1T[i] + ars2T[i]; if(arsT[i]<0){ arsT[i] = 0; } ArsRars[i] = arsT(i) - ars(i); if(ArsRars[i]<0){ ArsRars[i] = 0; } Asex[i] = AsexT[i] - GlpFas[i]; if(Asex[i]<0){ Asex[i] = 0; }
//We gaan nu met Eulers methode de volgende slag voorbereiden AsexT[i+1] = AsexT[i] + Timestep((Vc/Vs)*k8*ArsBas[i]-k6*GlpFas[i]); if (AsexT [i+1]<0){ AsexT[i+1] = 0; } GlpfT[i+1] = GlpfT[i]; ArsBT[i+1] = ArsBT[i] + Timestep*(Beta4*ars1[i] - Ln[2]/(tauB * ArsB[i])); if (ArsBT[i+1]<0){ ArsBT[i+1] = 0; } AsinT[i+1] = AsinT[i] + Timestep*((Vs/Vc)*k6*GlpFas[i]-k8*ArsBas[i]); if (AsinT[i+1]<0){ AsinT[i+1] = 0; } ars1T[i+1] = ars1T[i]; if (ars1T[i+1]<0){ ars1T[i+1] = 0; } ars2T[i+1] = ars2T[i]; if (ars2T[i+1]<0){ ars2T[i+1] = 0; } pro[i+1] = pro[i]; if (pro[i+1]<0){ pro[i+1] = 0; } ArsRT[i+1] = ArsRT[i] + Timestep(Beta1*ars1[i] + Beta3*pro[i] - (ln[2]/tauR)*ArsR[i]); if (ArsRT[i+1]<0){ ArsRT[i+1] = 0; } GV[i+1] = GV[i] + Timestep(Beta5*ars2[i] - ln[2]*tauG*GV[i]) if (GV[i+1]<0){ GV[i+1] = 0; } Time[i+1] = Time[i] + Timestep; if (Time[i+1]<0){ Time[i+1] = 0; } }
}