numpy.polynomial.chebyshev.chebfit
-
numpy.polynomial.chebyshev.chebfit(x, y, deg, rcond=None, full=False, w=None)[source] -
Наименьшие квадраты подгонки полиномов Чебышева к данным.
Возвращает коэффициенты ряда Лежандра степени
deg, которые являются наименьшими квадратами подгонки к значениям данныхy, заданных в точкахx. Еслиyодномерно, возвращаемые коэффициенты также будут одномерными. Еслиyдвумерно, выполняется несколько подгонок, по одной для каждого столбцаy, и полученные коэффициенты хранятся в соответствующих столбцах двумерного возвращаемого значения. Подгоняемый(ые) полином(ы) имеют вид
где
nравноdeg.Параметры: x : array_like, shape (M,)
Координаты x M точек выборки
(x[i], y[i]).y : array_like, shape (M,) или (M, K)
Координаты y точек выборки. Несколько наборов данных точек выборки, имеющих общие координаты x, могут быть подогнаны одновременно, передав двумерный массив, который содержит по одному набору данных на столбец.
deg : int
Степень подгоняемого ряда
rcond : float, необязательно
Относительное число обусловленности подгонки. Сингулярные значения, меньшие этого отношения к наибольшему сингулярному значению, будут проигнорированы. Значение по умолчанию равно len(x)*eps, где eps — относительная точность типа float, примерно 2e-16 в большинстве случаев.
full : bool, необязательно
Переключатель, определяющий характер возвращаемого значения. Когда он равен False (по умолчанию), возвращаются только коэффициенты, а когда True — также диагностическая информация из разложения по сингулярным значениям.
w : array_like, shape (
M,), необязательноВеса. Если не равно None, вклад каждой точки
(x[i],y[i])в подгонку взвешивается значениемw[i]. В идеале веса выбираются таким образом, чтобы ошибки произведенийw[i]*y[i]имели одинаковую дисперсию. Значение по умолчанию равно None.Новая в версии 1.5.0.
Возвращает: coef : ndarray, shape (M,) или (M, K)
Коэффициенты Чебышева, упорядоченные от низшего к высшему. Если
yбыло двумерным, коэффициенты для данных в столбце kyнаходятся в столбцеk.[residuals, rank, singular_values, rcond] : список
Эти значения возвращаются только если
full= Trueresid – сумма квадратов остатков наименьших квадратов подгонки rank – числовой ранг отмасштабированной матрицы Вандермонда sv – сингулярные значения отмасштабированной матрицы Вандермонда rcond – значение
rcond.Для получения более подробной информации см.
linalg.lstsq.Предупреждения: RankWarning
Ранг матрицы коэффициентов в подгонке наименьших квадратов недостаточен. Предупреждение генерируется только если
full= False. Предупреждения можно отключить, выполнив>>> import warnings >>> warnings.simplefilter('ignore', RankWarning)См. также
polyfit,legfit,lagfit,hermfit,hermefitchebval- Вычисляет ряд Чебышева.
chebvander- Матрица Вандермонда ряда Чебышева.
chebweight- Функция весов Чебышева.
linalg.lstsq- Вычисляет наименьшие квадраты подгонки из матрицы.
scipy.interpolate.UnivariateSpline- Вычисляет сплайн-подгонки.
Примечания
Решение — коэффициенты ряда Чебышева
p, которые минимизируют сумму взвешенных квадратов ошибок
где
— веса. Эта проблема решается путем построения (как правило) переопределённого матричного уравнения
где
V— взвешенная псевдо-матрица Вандермондаx,c— коэффициенты, которые требуется найти,w— веса, иy— наблюдаемые значения. Это уравнение затем решается с использованием разложения по сингулярным значениямV.Если некоторые сингулярные значения
Vнастолько малы, что ими можно пренебречь, то выводится предупреждениеRankWarning. Это означает, что значения коэффициентов могут быть плохо определены. Обычно, использование подгонки более низкой степени избавит от предупреждения. Параметрrcondтакже можно установить на значение, меньшее, чем по умолчанию, но полученная подгонка может быть ложной и иметь большие вклады от ошибки округления.Подгонки, использующие ряд Чебышева, обычно лучше обусловлены, чем подгонки, использующие степенные ряды, но многое зависит от распределения точек выборки и гладкости данных. Если качество подгонки недостаточно, сплайны могут быть хорошей альтернативой.
Ссылки
[R60] Википедия, «Подгонка кривых», http://en.wikipedia.org/wiki/Curve_fitting
© 2008–2016 NumPy Developers
Licensed under the NumPy License.
https://docs.scipy.org/doc/numpy-1.10.1/reference/generated/numpy.polynomial.chebyshev.chebfit.html