numpy.polynomial.laguerre.lagfit
-
numpy.polynomial.laguerre.lagfit(x, y, deg, rcond=None, full=False, w=None)[source] -
Наименьшие квадраты подгонки ряда Лаге́рра к данным.
Возвращает коэффициенты ряда Лаге́рра степени
deg, являющиеся наименьшими квадратами подгонки к значениям данныхyв точкахx. Еслиyявляется одномерным, возвращаемые коэффициенты также будут одномерными. Еслиyявляется двумерным, выполняется несколько подгонок, по одной для каждого столбцаy, и получаемые коэффициенты сохраняются в соответствующих столбцах двумерного возвращаемого значения. Подгоняемый(ые) многочлен(ы) имеют видгде
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.
Возвращает: -
coef : ndarray, shape (M,) or (M, K) -
Коэффициенты Лаге́рра, упорядоченные от низших к высшим. Если
yбыло двумерным, коэффициенты для данных в столбце kyнаходятся в столбцеk. -
[residuals, rank, singular_values, rcond] : list -
Эти значения возвращаются только в случае, если
full= Trueresid — сумма квадратов остатков наименьших квадратов подгонки rank — числовой ранг масштабированной матрицы Вандермонда sv — сингулярные значения масштабированной матрицы Вандермонда rcond — значение
rcond.Для получения более подробной информации см.
linalg.lstsq.
Предупреждения: - RankWarning
-
Ранг матрицы коэффициентов при подгонке наименьших квадратов недостаточен. Предупреждение выдаётся только если
full= False. Предупреждения можно отключить, используя>>> import warnings >>> warnings.simplefilter('ignore', np.RankWarning)
См. также
chebfit,legfit,polyfit,hermfit,hermefit-
lagval - Вычисляет значение ряда Лаге́рра.
-
lagvander - псевдо-матрица Вандермонда ряда Лаге́рра.
-
lagweight - Функция веса Лаге́рра.
-
linalg.lstsq - Вычисляет подгонку наименьших квадратов из матрицы.
-
scipy.interpolate.UnivariateSpline - Вычисляет сплайн-подгонки.
Примечания
Решение — коэффициенты ряда Лаге́рра
p, минимизирующие сумму взвешенных квадратов ошибокгде
являются весами. Эта задача решается путём построения (как правило) переопределённого матричного уравнения
где
V— взвешенная псевдо-матрица Вандермондаx,c— коэффициенты, которые нужно найти,w— веса, аy— наблюдаемые значения. Это уравнение затем решается с помощью разложения по сингулярным значениямV.Если некоторые сингулярные значения
Vнастолько малы, что их можно пренебречь, то будет выдано предупреждениеRankWarning. Это означает, что значения коэффициентов могут быть плохо определены. Использование подгонки с меньшей степенью обычно устраняет предупреждение. Параметрrcondтакже можно установить на значение, меньшее, чем значение по умолчанию, но полученная подгонка может быть ложной и иметь большие вклады от ошибки округления.Подгонки, использующие ряд Лаге́рра, вероятно, наиболее полезны, когда данные можно аппроксимировать
sqrt(w(x)) * p(x), гдеw(x)— функция веса Лаге́рра. В этом случае весsqrt(w(x[i])следует использовать вместе со значениями данныхy[i]/sqrt(w(x[i]). Функция веса доступна какlagweight.Ссылки
[1] Википедия, «Подгонка кривой», https://en.wikipedia.org/wiki/Curve_fitting Примеры
>>> from numpy.polynomial.laguerre import lagfit, lagval >>> x = np.linspace(0, 10) >>> err = np.random.randn(len(x))/10 >>> y = lagval(x, [1, 2, 3]) + err >>> lagfit(x, y, 2) array([ 0.96971004, 2.00193749, 3.00288744]) # may vary
-
© 2005–2019 NumPy Developers
Licensed under the 3-clause BSD License.
https://docs.scipy.org/doc/numpy-1.17.0/reference/generated/numpy.polynomial.laguerre.lagfit.html