Spec-Zone.ru › NumPy 1.14

numpy.polynomial.chebyshev.chebfit

numpy.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.

Параметры:

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 было двумерным, коэффициенты для данных в столбце k y находятся в столбце k.

[residuals, rank, singular_values, rcond] : список

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

resid — сумма квадратов остатков наименьших квадратов подгонки 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 , которые минимизируют сумму взвешенных квадратов ошибок

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

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

Ссылки

[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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API