problem
- To: mathgroup at yoda.physics.unc.edu
- Subject: problem
- From: vdaele at ieper.lhs.be (Marc Van Daele)
- Date: Mon, 21 Dec 92 08:21:07 +0100
Can somebody help me with the following problem I have the following model and some measured data points. y=f(t,params) where y= -(1-y1) s1'(t) -(1-y2) s2'(t) where s1,s2 are defined by: s1'[t]== -1/y1 mu1 s1[t] x[t]/(ks1+s1[t]) s2'[t]== -1/y2 mu2 s2[t] x[t]/(ks2+s2[t]) x'[t]== mu1 s1[t] x[t] / (ks1 + s1[t]) + mu2 s1[t] x[t] / (ks2 + s1[t]) + - kd x[t], Lets say that rss(params) = sum of least squares(data,f(t,params)) (rss[s1(0),s2(0), mu1,mu2,ks1,ks2]) How can I estimate the parameters? y1 and y2 and kd are fixed. I tried to use FindMinimum on rss(params) with two starting values but that was very slow (in fact I stopped it after more than 2 hours. (so probably I implemented something very inefficient (I'm new to Mathematica)) When I tried to use the gradient option of FindMinimum I could give a raw approximation of the gradient by by typing rss[1.01 s1(0), s2(0), mu1,mu2,ks1,ks2] - rss[0.99 s1(0), s2(0), mu1,mu2,ks1,ks2]/ (0.02 s1(0)) But then FindMinimum does not seem able to evaluate this because Mma seems to evaluate first rss and the replaces the parameters with their actual values, which in this case should be the other way around because the differential equation can not be solved symbolically. Mma complains that s10 (the first parameters) is not a valid initial condition so I suppose Mma postpones the substitution of the parameters by their actual values until after the evaluation. How can I force Mma to do substitute the parameters first and then evaluate. (And, if somebody has time, (I would really appreciate it) how can I implement this efficiently, because this is a quite important part of my thesis in environmental sciences (waste water treatment)) Who can help me??? Marc Van Daele vdaele at ieper.lhs.be