numpy.polynomial.chebyshev.chebfit#

polynomial.chebyshev.chebfit(x, y, deg, rcond=None, полный=False, w=None)[источник]#

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

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

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

где n является deg.

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

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

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

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

degцелое число или 1-D array_like

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

rcondfloat, опционально

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

полныйbool, необязательно

Переключатель, определяющий тип возвращаемого значения. Когда он установлен в 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.

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

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

[остатки, ранг, сингулярные значения, rcond]list

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

  • остатки – сумма квадратов остатков подгонки методом наименьших квадратов

  • ранг – числовой ранг масштабированной матрицы Вандермонда

  • 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 будет выдано. Это означает, что значения коэффициентов могут быть плохо определены. Использование подгонки более низкого порядка обычно устраняет предупреждение. The rcond параметр также может быть установлен в значение меньшее, чем значение по умолчанию, но полученная аппроксимация может быть ложной и иметь большой вклад от ошибок округления.

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

Ссылки

[1]

Википедия, «Аппроксимация кривых», https://en.wikipedia.org/wiki/Curve_fitting