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было двумерным, коэффициенты для данных в столбце kyнаходятся в столбце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.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–2024 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/2.0/reference/generated/numpy.polynomial.chebyshev.chebfit.html