Spec-Zone.ru › NumPy 1.19

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.

Parameters
xarray_like, shape (M,)

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

yarray_like, shape (M,) or (M, K)

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

degint or 1-D array_like

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

rcondfloat, optional

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

fullbool, optional

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

warray_like, shape (M,), optional

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

Добавлен в версии 1.5.0.

Returns
coefndarray, shape (M,) or (M, K)

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

[residuals, rank, singular_values, rcond]list

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

resid – сумма квадратов остатков наименьших квадратов; rank – числовой ранг масштабированной матрицы Вандермонда; sv – сингулярные значения масштабированной матрицы Вандермонда; rcond – значение rcond.

Для более подробной информации см. linalg.lstsq.

Warns
RankWarning

Ранг матрицы коэффициентов в аппроксимации методом наименьших квадратов недостаточен. Предупреждение выдается только если full = False. Предупреждения можно отключить, используя

>>> import warnings
>>> warnings.simplefilter('ignore', np.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

Википедия, «Аппроксимация кривых», https://en.wikipedia.org/wiki/Curve_fitting

© 2005–2020 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/1.19/reference/generated/numpy.polynomial.chebyshev.chebfit.html

Spec-Zone.ru

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