[SciPy-user] Curve fitting and LaTeX output
David Lonie
loniedavid@gmail....
Thu Aug 28 07:56:48 CDT 2008
Thanks for the fast reply! I plugged in my data to that script and
added some output, but I get an invalid fit out of it. The fit I got
from oocalc is approx
y = 32 - 0.85^x, and fmin is returning
y = 12 - 0.65^x, which for some reason returns an array of non-numbers
when I try to generate plot data?
Also, changing the guess around causes large changes in the fit. Is this normal?
Thanks again,
Dave
The code:
========================================================
from scipy.optimize import *
from numpy import *
from pylab import *
from scipy import *
y = array((31,14,2.9,2.0))
x = array((0,6,12,18))
def mycost(c):
y_model = c[0] + c[1]**x
error_vect = y - y_model
return sum(error_vect**2)
c_initial_guess = [5000 , 5000]
c_final = fmin(mycost, c_initial_guess)
xr = linspace(0,18)
yr = c_final[0] + c_final[1] ** xr
print "***************************************************************"
print c_final
print "***************************************************************"
print xr
print "***************************************************************"
print yr
print "***************************************************************"
scatter(x,y)
plot(xr,yr)
show()
On Wed, Aug 27, 2008 at 9:27 PM, Ryan Krauss <ryanlists@gmail.com> wrote:
> You can use optimize.fmin to fit a curve of an arbitrary form. You have to
> be careful to specify the output of your cost function correctly - you
> probably want the sum of the squared error. The first input to the cost
> function must be a vector of unknown coefficients.
<snip>
More information about the SciPy-user
mailing list