Spec-Zone.ru › NumPy 1.21

numpy.polynomial.chebyshev.chebfit

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.

Parameters
xarray_like, shape (M,)

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

yarray_like, shape (M,) или (M, K)

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

degint или 1-D array_like

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

rcondfloat, optional

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

fullbool, optional

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

warray_like, shape (M,), optional

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

New in version 1.5.0.

Returns
coefndarray, shape (M,) или (M, K)

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

[residuals, rank, singular_values, rcond]list

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

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

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

Warns
RankWarning

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

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

См. также

numpy.polynomial.polynomial.polyfit
numpy.polynomial.legendre.legfit
numpy.polynomial.laguerre.lagfit
numpy.polynomial.hermite.hermfit
numpy.polynomial.hermite_e.hermefit
chebval

Вычисляет значение ряда Чебышева.

chebvander

Матрица Вандермонда ряда Чебышева.

chebweight

Функция веса Чебышева.

numpy.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–2022 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/1.21/reference/generated/numpy.polynomial.chebyshev.chebfit.html

Spec-Zone.ru

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