Spec-Zone.ru › NumPy 1.15

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, shape (M,)

Координаты x M точек выборки (x[i], y[i]).

y : array_like, shape (M,) or (M, K)

Координаты y точек выборки. Несколько наборов данных точек выборки, имеющих одинаковые координаты x, могут быть подогнаны одновременно путем передачи двумерного массива, содержащего один набор данных на столбец.

deg : int or 1-D array_like

Степень(и) подгоняемых многочленов. Если deg является целым числом, то в подгонку включаются все члены до и включая deg-й член. Для версий NumPy >= 1.11.0 вместо этого можно использовать список целых чисел, указывающих степени членов, которые нужно включить.

rcond : float, optional

Относительное число обусловленности подгонки. Сингулярные значения, меньшие этого значения относительно наибольшего сингулярного значения, будут игнорироваться. Значение по умолчанию равно len(x)*eps, где eps — относительная точность типа float, примерно 2e-16 в большинстве случаев.

full : bool, optional

Переключатель, определяющий характер возвращаемого значения. Когда он равен False (значение по умолчанию), возвращаются только коэффициенты; когда True, возвращается также диагностическая информация из разложения по сингулярным значениям.

w : array_like, shape (M,), optional

Веса. Если не равно None, вклад каждой точки (x[i],y[i]) в подгонку взвешивается с помощью w[i]. В идеале веса выбираются таким образом, чтобы ошибки произведений w[i]*y[i] имели одинаковую дисперсию. Значение по умолчанию — None.

Введено в версии 1.5.0.

Возвращает:
coef : ndarray, shape (M,) or (M, K)

Коэффициенты ряда Чебышева, упорядоченные от низшего к высшему. Если y был двумерным, коэффициенты данных в столбце k из y находятся в столбце k.

[residuals, rank, singular_values, rcond] : list

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

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

Ссылки

[1] 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.15.4/reference/generated/numpy.polynomial.chebyshev.chebfit.html

Spec-Zone.ru

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