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.- 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.
-
- Returns
-
-
coefndarray, shape (M,) or (M, K) -
Коэффициенты Лаге́рра, упорядоченные от низшей к высшей степени. Если
yбыло двумерным, коэффициенты для данных в столбце kyнаходятся в столбцеk. -
[residuals, rank, singular_values, rcond]list -
Эти значения возвращаются только если
full= Trueresid – сумма квадратов остатков наименьших квадратов подгонки rank – числовой ранг масштабированной матрицы Вандермонда sv – сингулярные значения масштабированной матрицы Вандермонда rcond – значение
rcond.Для более подробной информации см.
linalg.lstsq.
-
- Warns
-
- 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–2020 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/1.18/reference/generated/numpy.polynomial.laguerre.lagfit.html