Spec-Zone.ru › NumPy 2.0

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.

Параметры:
xarray_like, форма (M,)

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

yarray_like, форма (M,) или (M, K)

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

degint или 1-мерный array_like

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

rcondfloat, необязательно

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

fullbool, необязательно

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

warray_like, форма (M,), необязательно

Веса. Если не None, вес w[i] применяется к невозведенному остатку y[i] - y_hat[i] в точке x[i]. В идеале веса выбираются таким образом, чтобы ошибки произведений w[i]*y[i] имели одинаковую дисперсию. При использовании взвешивания по обратной дисперсии используйте w[i] = 1/sigma(y[i]). Значение по умолчанию — None.

Введено в версии 1.5.0.

Возвращает:
coefndarray, форма (M,) или (M, K)

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

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

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

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

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

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

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

>>> import warnings
>>> warnings.simplefilter('ignore', np.exceptions.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–2024 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/2.0/reference/generated/numpy.polynomial.chebyshev.chebfit.html

Spec-Zone.ru

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