python – SciPy LeastSq Dfun用法
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python – SciPy LeastSq Dfun用法,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1063字,纯文字阅读大概需要2分钟。
内容图文
![python – SciPy LeastSq Dfun用法](/upload/InfoBanner/zyjiaocheng/791/1aabc091b61d4cf982a7b12644e74ae0.jpg)
我正在努力让我的Jacobian使用SciPy的Optimize库的minimalsq函数.
我有以下代码:
#!/usr/bin/python
import scipy
import numpy
from scipy.optimize import leastsq
#Define real coefficients
p_real=[3,5,1]
#Define functions
def func(p, x): #Function
return p[0]*numpy.exp(-p[1]*x)+p[2]
def dfunc(p, x, y): #Derivative
return [numpy.exp(-p[1]*x),-x*p[0]*numpy.exp(-p[1]*x), numpy.ones(len(x))]
def residuals(p, x, y):
return y-func(p, x)
#Generate messy data
x_vals=numpy.linspace(0,10,30)
y_vals=func(p_real,x_vals)
y_messy=y_vals+numpy.random.normal(size=len(y_vals))
#Fit
plsq,cov,infodict,mesg,ier=leastsq(residuals, [10,10,10], args=(x_vals, y_vals), Dfun=dfunc, col_deriv=1, full_output=True)
print plsq
现在,当我运行这个时,我得到了plsq = [10,10,10]作为我的回报.当我拿出Dfun = dfunc,col_deriv = 1时,我得到了接近p_real的东西.
谁能告诉我是什么给出的?或者指出比SciPy提供的更好的文档来源?
顺便说一句,我正在使用雅可比,因为我有(可能是误导的)信念,它会导致更快的收敛.
解决方法:
将残差变为负数:
def residuals(p, x, y):
return func(p, x)-y
你明白了
[ 3. 5. 1.]
希望这可以帮助 :)
内容总结
以上是互联网集市为您收集整理的python – SciPy LeastSq Dfun用法全部内容,希望文章能够帮你解决python – SciPy LeastSq Dfun用法所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。