numpy.polynomial.legendre.legfit
-
numpy.polynomial.legendre.legfit(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-мерный array_like
Степень(и) подгоняемых полиномов. Если
degявляется целым числом, то во всех выражениях до и включаяdeg-й член включены в подгонку. Для версий Numpy >= 1.11 можно использовать список целых чисел, определяющих степени членов, которые следует включить.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. Еслиdegзадан как список, коэффициенты для членов, не включенных в подгонку, устанавливаются равными нулю в возвращаемомcoef.[residuals, rank, singular_values, rcond] : список
Эти значения возвращаются только в том случае, если
full= Trueresid – сумма квадратов остатков наименьших квадратов подгонки; rank – числовой ранг масштабированной матрицы Вандермонда; sv – сингулярные значения масштабированной матрицы Вандермонда; rcond – значение
rcond.Для получения более подробной информации см.
linalg.lstsq.Предупреждения: RankWarning
Ранг матрицы коэффициентов в подгонке методом наименьших квадратов недостаточен. Предупреждение выводится только если
full= False. Предупреждения можно отключить, выполнив>>> import warnings >>> warnings.simplefilter('ignore', RankWarning)См. также
chebfit,polyfit,lagfit,hermfit,hermefitПримечания
Решение — коэффициенты ряда Лежандра
p, которые минимизируют сумму взвешенных квадратов ошибок
где
— веса. Эта задача решается путём построения (обычно) переопределённого матричного уравнения
где
V— взвешенная псевдо-матрица Вандермондаx,c— коэффициенты, которые требуется найти,w— веса, иy— наблюдаемые значения. Это уравнение затем решается с помощью разложения по сингулярным значениямV.Если некоторые сингулярные значения
Vнастолько малы, что ими пренебрегают, то выводитсяRankWarning. Это означает, что значения коэффициентов могут быть плохо определены. Использование подгонки с меньшей степенью обычно устраняет предупреждение. Параметрrcondтакже можно задать значением, меньшим, чем по умолчанию, но полученная подгонка может быть ложной и иметь большие погрешности, связанные с ошибками округления.Подгонка с использованием полиномов Лежандра обычно лучше обусловлена, чем подгонка с использованием степенных рядов, но многое может зависеть от распределения точек выборки и гладкости данных. Если качество подгонки недостаточно, сплайны могут быть хорошей альтернативой.
Ссылки
[R64] Wikipedia, «Подгонка кривых», http://en.wikipedia.org/wiki/Curve_fitting
© 2008–2016 NumPy Developers
Licensed under the NumPy License.
https://docs.scipy.org/doc/numpy-1.11.0/reference/generated/numpy.polynomial.legendre.legfit.html