Spec-Zone.ru › NumPy 1.10

numpy.polynomial.chebyshev.chebfit

numpy.polynomial.chebyshev.chebfit(x, y, deg, rcond=None, full=False, w=None) [source]

Наименьшие квадраты подгонки полиномов Чебышева к данным.

Возвращает коэффициенты ряда Лежандра степени deg , которые являются наименьшими квадратами подгонки к значениям данных y , заданных в точках x. Если y одномерно, возвращаемые коэффициенты также будут одномерными. Если y двумерно, выполняется несколько подгонок, по одной для каждого столбца y, и полученные коэффициенты хранятся в соответствующих столбцах двумерного возвращаемого значения. Подгоняемый(ые) полином(ы) имеют вид

p(x) = c_0 + c_1 * T_1(x) + ... + c_n * T_n(x),

где n равно deg.

Параметры:

x : array_like, shape (M,)

Координаты x M точек выборки (x[i], y[i]).

y : array_like, shape (M,) или (M, K)

Координаты y точек выборки. Несколько наборов данных точек выборки, имеющих общие координаты x, могут быть подогнаны одновременно, передав двумерный массив, который содержит по одному набору данных на столбец.

deg : int

Степень подгоняемого ряда

rcond : float, необязательно

Относительное число обусловленности подгонки. Сингулярные значения, меньшие этого отношения к наибольшему сингулярному значению, будут проигнорированы. Значение по умолчанию равно len(x)*eps, где eps — относительная точность типа float, примерно 2e-16 в большинстве случаев.

full : bool, необязательно

Переключатель, определяющий характер возвращаемого значения. Когда он равен False (по умолчанию), возвращаются только коэффициенты, а когда True — также диагностическая информация из разложения по сингулярным значениям.

w : array_like, shape (M,), необязательно

Веса. Если не равно None, вклад каждой точки (x[i],y[i]) в подгонку взвешивается значением w[i]. В идеале веса выбираются таким образом, чтобы ошибки произведений w[i]*y[i] имели одинаковую дисперсию. Значение по умолчанию равно None.

Новая в версии 1.5.0.

Возвращает:

coef : ndarray, shape (M,) или (M, K)

Коэффициенты Чебышева, упорядоченные от низшего к высшему. Если y было двумерным, коэффициенты для данных в столбце k y находятся в столбце k.

[residuals, rank, singular_values, rcond] : список

Эти значения возвращаются только если full = True

resid – сумма квадратов остатков наименьших квадратов подгонки rank – числовой ранг отмасштабированной матрицы Вандермонда sv – сингулярные значения отмасштабированной матрицы Вандермонда rcond – значение rcond.

Для получения более подробной информации см. linalg.lstsq.

Предупреждения:

RankWarning

Ранг матрицы коэффициентов в подгонке наименьших квадратов недостаточен. Предупреждение генерируется только если full = False. Предупреждения можно отключить, выполнив

>>> import warnings
>>> warnings.simplefilter('ignore', RankWarning)

См. также

polyfit, legfit, lagfit, hermfit, hermefit

chebval
Вычисляет ряд Чебышева.
chebvander
Матрица Вандермонда ряда Чебышева.
chebweight
Функция весов Чебышева.
linalg.lstsq
Вычисляет наименьшие квадраты подгонки из матрицы.
scipy.interpolate.UnivariateSpline
Вычисляет сплайн-подгонки.

Примечания

Решение — коэффициенты ряда Чебышева p , которые минимизируют сумму взвешенных квадратов ошибок

E = \sum_j w_j^2 * |y_j - p(x_j)|^2,

где w_j — веса. Эта проблема решается путем построения (как правило) переопределённого матричного уравнения

V(x) * c = w * y,

где V — взвешенная псевдо-матрица Вандермонда x, c — коэффициенты, которые требуется найти, w — веса, и y — наблюдаемые значения. Это уравнение затем решается с использованием разложения по сингулярным значениям V.

Если некоторые сингулярные значения V настолько малы, что ими можно пренебречь, то выводится предупреждение RankWarning. Это означает, что значения коэффициентов могут быть плохо определены. Обычно, использование подгонки более низкой степени избавит от предупреждения. Параметр rcond также можно установить на значение, меньшее, чем по умолчанию, но полученная подгонка может быть ложной и иметь большие вклады от ошибки округления.

Подгонки, использующие ряд Чебышева, обычно лучше обусловлены, чем подгонки, использующие степенные ряды, но многое зависит от распределения точек выборки и гладкости данных. Если качество подгонки недостаточно, сплайны могут быть хорошей альтернативой.

Ссылки

[R60] Википедия, «Подгонка кривых», http://en.wikipedia.org/wiki/Curve_fitting

© 2008–2016 NumPy Developers
Licensed under the NumPy License.
https://docs.scipy.org/doc/numpy-1.10.1/reference/generated/numpy.polynomial.chebyshev.chebfit.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API