[SciPy-User] ODR fitting several equations to the same parameters

ms devicerandom@gmail....
Thu Nov 12 11:28:00 CST 2009

```josef.pktd@gmail.com ha scritto:

>>> Does this work or am I missing the point?
>> Probably it's me missing it. Do you just mean to fit them all together
>> separately and then make a weighted average of the fitted parameters,
>> and using the standard deviation of the mean as the error of the fit? I
>> am confused.
>
> I meant stacking all equations into one big estimation problem y =
> f(x,a) and minimize squared residual over all equations.
> This assumes homoscedastic errors (identical noise in each equation).

Yes, that's what I want! Thanks. I am going to read and try your code
and see what I get and don't get of it. Thanks a lot :)

m.

> an example
> (quickly written and not optimized, there are parts I don't remember
> about curve_fit, fixed parameters could be better handled by a class)
>
> ####################
> """stack equations with different known parameters
>
> I didn't get curve_fit to work with only 1 parameter to estimate
>
> Created on Thu Nov 12 11:17:21 2009
> Author: josef-pktd
> """
> import numpy as np
> from scipy import optimize
>
>
> def fsingle(a,c,b,x):
>     return b*x**a + c
>
> atrue = 1.
> ctrue = 10.
> b = np.array([[1.]*10, [2.]*10, [3.]*10])
> b = np.array([1.,2.,3.])
> x = np.random.uniform(size=(3,10))
> y = np.hstack([fsingle(atrue, ctrue, b[i], x[i]) for i in range(x.shape[0])])
> y += 0.1*np.random.normal(size=y.shape)
>
> def fun(x,a,c):
>     #b is taken from enclosing scope
>     #print x.shape
>     xx=x.reshape((3,10))
>     return np.hstack([fsingle(a, c, b[i], xx[i]) for i in range(xx.shape[0])])
>
> res = optimize.curve_fit(fun,x.ravel(),y, p0=np.array([2.,1.]))
>
> print 'true parameters   ', atrue, ctrue
> print 'parameter estimate', res[0]
> print 'standard deviation', np.sqrt(np.diag(res[1]))
> ####################
>
>
>
>
>> sorry,
>> m.
>> _______________________________________________
>> SciPy-User mailing list
>> SciPy-User@scipy.org
>> http://mail.scipy.org/mailman/listinfo/scipy-user
>>
> _______________________________________________
> SciPy-User mailing list
> SciPy-User@scipy.org
> http://mail.scipy.org/mailman/listinfo/scipy-user
>

```