Spec-Zone.ru › NumPy 1.17

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,) or (M, K)

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

deg : int or 1-D array_like

Степень(и) подгоняемых многочленов. Если deg является целым числом, то все члены вплоть до и включая deg-й член включаются в подгонку. Для версий NumPy ≥ 1.11.0 вместо этого можно использовать список целых чисел, указывающих степени членов, которые нужно включить.

rcond : float, optional

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

full : bool, optional

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

w : array_like, shape (M,), optional

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

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

Возвращает:
coef : ndarray, shape (M,) or (M, K)

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

[residuals, rank, singular_values, rcond] : list

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

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

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

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

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

>>> import warnings
>>> warnings.simplefilter('ignore', np.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 также может быть установлен на значение, меньшее, чем по умолчанию, но полученная подгонка может быть ложной и иметь значительные вклады от округления.

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

Ссылки

[1] Википедия, “Аппроксимация кривых”, https://en.wikipedia.org/wiki/Curve_fitting

© 2005–2019 NumPy Developers
Licensed under the 3-clause BSD License.
https://docs.scipy.org/doc/numpy-1.17.0/reference/generated/numpy.polynomial.chebyshev.chebfit.html

Spec-Zone.ru

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