[SciPy-user] Estimation of parameters while fitting data
Doreen Mbabazi
doreen at aims.ac.za
Mon Mar 31 16:44:52 EDT 2008
Hi,
Thanks, unfortunately I didn't write any code in PyDSTool because I am not
conversant with it at all. I was just reading something about it.
Doreen.
Rob Clewley
> Hi Doreen,
>
> If you send me your code which you tried using PyDSTool, I will
> happily advise you on how to fix it. I'm sure it will be possible for
> me to fix it!
> -Rob
>
> On Mon, Mar 31, 2008 at 4:09 PM, Doreen Mbabazi <doreen at aims.ac.za> wrote:
>> Hi,
>>
>> Thanks, I tried to do that(by taking err = V-f(y,t,p)[2]) while
>> defining
>> the function residuals but the trouble is that actually f(y,t,p)
>> calculates value of y at t0 so it cannot help me. What I want are the
>> third values from y(y[i][2]). Below I have tried to do that but that
>> gives
>> particular values of y so my parameters are not optimized.
>>
>> def residuals(p, V, t):
>> """The function is used to calculate the residuals
>> """
>> for i in range(len(t)):
>> err = V-y[i][2]
>> return err
>>
>> #Function defined with y[0]=T,y[1]=T*,y[2] = V,lamda = p[0],d = p[1],
>> k=p[2],delta=p[3], pi = p[4], c = p[5]
>> initial_y = [10,0,10e-6] # initial conditions T(0)= 10cells , T*(0)=0,
>> V(0)=10e-6
>>
>> p is the list of parameters that are being estimated
>> (lamda,d,k,delta,pi,c)
>> def f(y,t,p):
>> y_dot = [0,0,0]
>> y_dot[0] = p[0] - p[1]*y[0] - p[2]*y[0]*y[2]
>> y_dot[1] = p[2]*y[0]*y[2] - p[3]*y[1]
>> y_dot[2] = p[4]*y[1] - p[5]*y[2]
>> return y_dot
>>
>> y = odeint(f,initial_y,t,args=(p,))
>>
>> Doreen
>>
>> Gabriel Gellner
>>
>>
>> >> I have as my fitting function a system of differential equations(3)
>> and
>> >> I
>> >> am supposed to get the optimal parameters to use by fitting data to
>> this
>> >> system. I tried to use scipy.optimize.leastsq. The difficulty is
>> with
>> >> the
>> >> function that calculates the difference between the data and the
>> values
>> >> from the fitting function. The result of the fitting function is a
>> list
>> >> with three values and yet I only need one of the values to be
>> subtracted
>> >> from the data value.
>> > Could you not just subtract the index of the returned value?
>> > Say it is the first value you need then just use value[0].
>> >
>> > If not can you give a small example, it will make it easier to help.
>> >
>> > Gabriel
>> > _______________________________________________
>> > SciPy-user mailing list
>> > SciPy-user at scipy.org
>> > http://projects.scipy.org/mailman/listinfo/scipy-user
>> >
>>
>>
>>
>>
>> _______________________________________________
>> SciPy-user mailing list
>> SciPy-user at scipy.org
>> http://projects.scipy.org/mailman/listinfo/scipy-user
>>
>
>
>
> --
> Robert H. Clewley, Ph. D.
> Assistant Professor
> Department of Mathematics and Statistics
> Georgia State University
> 720 COE, 30 Pryor St
> Atlanta, GA 30303, USA
>
> tel: 404-413-6420 fax: 404-651-2246
> http://www.mathstat.gsu.edu/~matrhc
> http://brainsbehavior.gsu.edu/
> _______________________________________________
> SciPy-user mailing list
> SciPy-user at scipy.org
> http://projects.scipy.org/mailman/listinfo/scipy-user
>
Mbabazi Doreen,
African Institute for Mathematical Sciences,
6 Melrose Road,
Muizeinberg, 7945
Cape Town | South Africa
Email:doreen at aims.ac.za
'It is not when we are strong but when we are weak that God's power is
shown in our lives.'
More information about the SciPy-User
mailing list