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', 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])
-
© 2005–2019 NumPy Developers
Licensed under the 3-clause BSD License.
https://docs.scipy.org/doc/numpy-1.16.1/reference/generated/numpy.polynomial.laguerre.lagfit.html