scipy.odr.Model¶
- class scipy.odr.Model(fcn, fjacb=None, fjacd=None, extra_args=None, estimate=None, implicit=0, meta=None)[源代码]¶
Model类存储有关您希望适合的函数的信息。
它至少存储函数本身,并且可选地存储计算拟合期间使用的雅可比的函数。此外,可以提供函数,该函数将为可能给定数据集的拟合参数提供合理的起始值。
- 参数
- fcn功能
fcn(beta,x)-->y
- fjacb功能
FCN WRT的Jacobian拟合参数β。
fJacb(beta,x)-->@f_i(x,B)/@B_j
- fjacd功能
FCN的雅可比WRT(可能是多维的)输入变量。
fJacd(beta,x)-->@f_i(x,B)/@x_j
- extra_args元组,可选
如果指定, extra_args 应该是要传递给的额外参数的元组 fcn , fjacb ,以及 fjacd 。每一个都将由 apply(fcn, (beta, x) + extra_args)
- estimate秩为1的类似数组
根据数据提供拟合参数的估计值
估计(数据)-->estbeta
- implicit布尔值
如果为true,则指定模型为隐式模型;即 fcn(beta, x) ~=0,并且没有y数据可供拟合
- metaDICT,可选
模型的自由格式元数据字典
注意事项
请注意, fcn , fjacb ,以及 fjacd 对NumPy数组进行操作并返回NumPy数组。这个 estimate 对象获取数据类的实例。
以下是回调函数的参数和返回数组的形状规则:
- x
如果输入数据是一维数据,则 x 是秩1数组;即,
x = array([1, 2, 3, ...]); x.shape = (n,)
如果输入数据是多维的,则 x 是秩2数组;即,x = array([[1, 2, ...], [2, 4, ...]]); x.shape = (m, n)
。在所有情况下,它都与传递给的输入数据数组具有相同的形状odr
。 m 是输入数据的维度, n 是观察的次数。- y
如果响应变量是一维的,则 y 是秩1阵列,即,
y = array([2, 4, ...]); y.shape = (n,)
。如果响应变量是多维的,则 y 是秩2阵列,即,y = array([[2, 4, ...], [3, 6, ...]]); y.shape = (q, n)
哪里 q 是响应变量的维数。- beta
长度的秩-1数组 p 哪里 p 是参数的个数,即
beta = array([B_1, B_2, ..., B_p])
- fjacb
如果响应变量是多维的,则返回数组的形状为 (q, p, n) 这样一来,
fjacb(x,beta)[l,k,i] = d f_l(X,B)/d B_k
在第i个数据点评估。如果 q == 1 ,则返回数组仅为秩2且具有形状 (p, n) 。- fjacd
与fJacb一样,只有返回数组的形状是 (q, m, n) 这样一来,
fjacd(x,beta)[l,j,i] = d f_l(X,B)/d X_j
在第i个数据点。如果 q == 1 ,则返回数组的形状为 (m, n) 。如果 m == 1 ,形状为(q,n)。如果 m == q == 1 ,形状是 (n,) 。
方法:
使用此处提供的关键字和数据更新元数据字典。