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было двумерным, коэффициенты для данных в столбце kyнаходятся в столбцеk. - [residuals, rank, singular_values, rcond]list
-
Эти значения возвращаются только если
full= Trueresid – сумма квадратов остатков наименьших квадратов подгонки rank – числовая ранг масштабированной матрицы Вандермонда sv – сингулярные значения масштабированной матрицы Вандермонда rcond – значение
rcond.Для получения более подробной информации см.
numpy.linalg.lstsq.
- Warns
-
- RankWarning
-
Ранг матрицы коэффициентов при подгонке методом наименьших квадратов является недостаточным. Предупреждение выдается только если
full= False. Предупреждения можно отключить, используя>>> import warnings >>> warnings.simplefilter('ignore', np.RankWarning)
См. также
numpy.polynomial.polynomial.polyfitnumpy.polynomial.legendre.legfitnumpy.polynomial.laguerre.lagfitnumpy.polynomial.hermite.hermfitnumpy.polynomial.hermite_e.hermefitchebval-
Вычисляет значение ряда Чебышева.
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