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, форма (M,)
Координаты x для M точек выборки
(x[i], y[i]).y : array_like, форма (M,) или (M, K)
Координаты y точек выборки. Несколько наборов данных точек выборки с одинаковыми координатами x могут быть подогнаны одновременно путём передачи двумерного массива, содержащего один набор данных на столбец.
deg : int или 1-D array_like
Степень(и) аппроксимирующих многочленов. Если
degявляется целым числом, все члены вплоть доdegвключительно будут включены в подгонку. Для версий NumPy >= 1.11.0 может быть использован список целых чисел, задающих степени членов для включения.rcond : float, необязательно
Относительное число обусловленности подгонки. Сингулярные значения, меньшие этого относительного значения по отношению к наибольшему сингулярному значению, будут игнорироваться. Значение по умолчанию равно len(x)*eps, где eps — относительная точность типа float, примерно 2e-16 в большинстве случаев.
full : bool, необязательно
Переключатель, определяющий характер возвращаемого значения. Когда он равен False (по умолчанию), возвращаются только коэффициенты, а когда True, также возвращается диагностическая информация из разложения по сингулярным значениям.
w : array_like, форма (
M,), необязательноВеса. Если не None, вклад каждой точки
(x[i],y[i])в подгонку взвешивается значениемw[i]. В идеале веса выбираются таким образом, чтобы ошибки произведенийw[i]*y[i]все имели одинаковую дисперсию. Значение по умолчанию — None.Введено в версии 1.5.0.
Возвращает: coef : ndarray, форма (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,hermefit-
chebval - Вычисляет значения ряда Чебышева.
-
chebvander - Матрица Вандермонда ряда Чебышева.
-
chebweight - Функция веса Чебышева.
-
linalg.lstsq - Вычисляет наименьшую квадратичную аппроксимацию из матрицы.
-
scipy.interpolate.UnivariateSpline - Вычисляет сплайновые аппроксимации.
Примечания
Решение — коэффициенты ряда Чебышева
p, которые минимизируют сумму взвешенных квадратов ошибокгде
— веса. Эта проблема решается путём составления (обычно) переопределённого матричного уравнения
где
V— взвешенная псевдоматрица Вандермондаx,c— искомые коэффициенты,w— веса, иy— наблюдаемые значения. Это уравнение затем решается с помощью разложения по сингулярным значениямV.Если некоторые из сингулярных значений
Vнастолько малы, что ими можно пренебречь, то будет выведено предупреждениеRankWarning. Это означает, что значения коэффициентов могут быть плохо определены. Использование аппроксимации с меньшей степенью обычно избавляет от предупреждения. Параметрrcondтакже может быть установлен на значение меньше его значения по умолчанию, но полученная аппроксимация может быть ложной и иметь большой вклад от погрешности округления.Аппроксимации с использованием рядов Чебышева обычно лучше обусловлены, чем аппроксимации с использованием степенных рядов, но многое зависит от распределения точек выборки и гладкости данных. Если качество аппроксимации недостаточно, сплайны могут быть хорошей альтернативой.
Ссылки
[R68] Wikipedia, “Curve fitting”, http://en.wikipedia.org/wiki/Curve_fitting -
© 2005–2019 NumPy Developers
Licensed under the 3-clause BSD License.
https://docs.scipy.org/doc/numpy-1.14.5/reference/generated/numpy.polynomial.chebyshev.chebfit.html