python - scipy 中最小二乘函数的雅可比行列式的方法签名

标签 python numpy scipy least-squares

任何人都可以提供一个向 least squares function 提供雅可比矩阵的示例吗?在 scipy 中?

我无法弄清楚他们想要的方法签名 - 他们说它应该是一个函数,但很难弄清楚这个函数应该以什么顺序接受哪些输入参数。

最佳答案

这是我使用的指数衰减拟合:

import numpy as np
from scipy.optimize import leastsq

def f(var,xs):
    return var[0]*np.exp(-var[1]*xs)+var[2]

def func(var, xs, ys):
    return f(var,xs) - ys

def dfunc(var,xs,ys):
    v = np.exp(-var[1]*xs)
    return [v,-var[0]*xs*v,np.ones(len(xs))]

xs = np.linspace(0,4,50)
ys = f([2.5,1.3,0.5],xs)
yn = ys + 0.2*np.random.normal(size=len(xs))
fit = leastsq(func,[10,10,10],args=(xs,yn),Dfun=dfunc,col_deriv=1)

如果我想使用 col_deriv=0,我想我基本上必须对我用 dfunc 返回的内容进行转置。不过你说得很对:这方面的文档不是很好。

关于python - scipy 中最小二乘函数的雅可比行列式的方法签名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3965404/

相关文章:

python - 如何避免非暂停功能?

python - 带有 Python API 的 CPLEX - 如何更快地制定模型?

python - "Invalid Index to Scalar Variable"- 使用 Scikit Learn 时 "accuracy_score"

Python: type(i) 是 int... 但我是 int = False

arrays - 二维阵列沿单轴的卷积

python - 如何计算 1 的对数减去 python 中给定小数的指数

python - KDE 有两点失败?

python - iPython:无法安装笔记本。请安装 ipython-notebook

python - 用另一个 numpy 数组的值逐行替换 numpy 数组

python - Numpy数组中两个 "islands"/"connected components"之间的成对距离