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, форма (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.0 может использоваться список целых чисел, определяющих степени включаемых членов.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.Возвращает: coef : ndarray, форма (M,) или (M, K)
Коэффициенты Лагера, упорядоченные от низшего к высшему. Если
yбыло двумерным, коэффициенты для данных в столбце k изyнаходятся в столбцеk.[residuals, rank, singular_values, rcond] : список
Эти значения возвращаются только если
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.Ссылки
[R71] Википедия, «Подгонка кривых», http://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.14.5/reference/generated/numpy.polynomial.laguerre.lagfit.html