[SciPy-user] mpfit
Steve Schmerler
elcorto at gmx.net
Thu Feb 17 08:17:20 CST 2005
Evelien Vanhollebeke wrote:
> Hi scipy-users,
>
> I was wondering if anyone was using the mpfit module
> (http://cars.uchicago.edu/software) <http://cars.uchicago.edu/software>.
> I would really like (need) to use it, but can't get to seem the thing
> perform as it should be. I am aware of the two messages posted in this
> mailing list,
that was me :)
> and changed the two mentioned lines. I am using python
> 2.3.3. Maybe if someone could share his/her user defined function or
> some other hints? At first, the program just crashed on the parinfo,
> which is not really necessary. Now I can get it run (if I don't use the
> autoderivate=0, then it gets stuck on the "fjac" variable), but as
> already mentioned, it doesn't iterate.
>
Unfortunately I don't have my mpfit stuff at hand right now but what I
remember doing was something like:
----------------------------------------
import mpfit
# read data and prepare 2 data arrays 't' and 'y'
....
def func(t, x):
"""
- the model function
- t -- x-axis (data)
- x -- parameter array
- return y-values at each t
"""
y_model = ...
return y_model
# len(t) == len(y_model) = len(y)
def residuals(x, t = t, y = y, fjac = None):
# I'm not sure about the fjac part, this residual function is #
defined according to the example in the mpfit docstring
# I think it was 0
status = 0
# or stauts at pos 1?
return [status, y - func(t, x)]
fit = mpfit.mpfit(residuals, ...)
---------------------------------------
I don't remember the parinfo-stuff right now. I wrote a little "wrapper"
around mpfit (insert limits in parinfo etc.). Tell me if you want to
have a look on this.
I also tried leastsq but it's less sophisticated than mpfit.
In mpfit (in enorm()) you can replace
sqrt(sum(vec*vec))
by
sqrt(dot(vec,vec)).
This is faster.
Cheers steve
> Thanks
> Evelien
>
> _______________________________________________
> SciPy-user mailing list
> SciPy-user at scipy.net
> http://www.scipy.net/mailman/listinfo/scipy-user
>
>
--
There are three types of people in this world: those who make things
happen, those who watch things happen and those who wonder what
happened. - Mary Kay Ash
More information about the SciPy-user
mailing list