scipy.odr.

Модель#

класс scipy.odr.Модель(fcn, fjacb=None, fjacd=None, extra_args=None, оценка=None, неявный=0, meta=None)[источник]#

Класс Model хранит информацию о функции, которую вы хотите аппроксимировать.

Он хранит саму функцию, как минимум, и опционально хранит функции, которые вычисляют якобианы, используемые во время подгонки. Также можно предоставить функцию, которая даст разумные начальные значения для параметров подгонки, возможно, с учетом набора данных.

Параметры:
fcnфункция

fcn(beta, x) –> y

fjacbфункция

Матрица Якоби функции fcn по параметрам подгонки beta.

fjacb(beta, x) –> @f_i(x,B)/@B_j

fjacdфункция

Якобиан функции fcn по (возможно, многомерной) входной переменной.

fjacd(beta, x) –> @f_i(x,B)/@x_j

extra_argsкортеж, необязательный

Если указано, extra_args должен быть кортежем дополнительных аргументов для передачи в fcn, fjacb, и fjacd. Каждый будет вызван apply(fcn, (beta, x) + extra_args)

оценкаarray_like ранга 1

Предоставляет оценки параметров подгонки из данных

estimate(data) –> estbeta

неявныйлогический

Если TRUE, указывает, что модель неявная; т.е fcn(beta, x) ~= 0 и нет данных y для подгонки против

metadict, optional

свободный словарь метаданных для модели

Методы

set_meta(**kwds)

Обновить словарь метаданных с предоставленными здесь ключевыми словами и данными.

Примечания

Обратите внимание, что fcn, fjacb, и fjacd работает с массивами NumPy и возвращает массив NumPy. оценка объект принимает экземпляр класса Data.

Вот правила для форм аргументов и возвращаемых массивов функций обратного вызова:

x

если входные данные одномерны, то x является массивом rank-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,).