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 应该是要传递给的额外参数的元组 fcnfjacb ,以及 fjacd 。每一个都将由 apply(fcn, (beta, x) + extra_args)

estimate秩为1的类似数组

根据数据提供拟合参数的估计值

估计(数据)-->estbeta

implicit布尔值

如果为true,则指定模型为隐式模型;即 fcn(beta, x) ~=0,并且没有y数据可供拟合

metaDICT,可选

模型的自由格式元数据字典

注意事项

请注意, fcnfjacb ,以及 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) 。在所有情况下,它都与传递给的输入数据数组具有相同的形状 odrm 是输入数据的维度, 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,)

方法:

set_meta \(** kwds)

使用此处提供的关键字和数据更新元数据字典。