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
Степень полинома подгонки
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 — сумма квадратов остатков наименьших квадратов fit rank — числовой ранг масштабированной матрицы Вандермонда sv — сингулярные значения масштабированной матрицы Вандермонда rcond — значение
rcond.Для получения дополнительной информации см.
linalg.lstsq.Предупреждения: RankWarning
Ранг матрицы коэффициентов в подгонке наименьших квадратов недостаточен. Предупреждение выводится только если
full= False. Предупреждения можно отключить, используя>>> import warnings >>> warnings.simplefilter('ignore', RankWarning)См. также
chebfit,legfit,polyfit,hermfit,hermefitПримечания
Решение — коэффициенты ряда Лаге́рра
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.Ссылки
[R63] Википедия, «Аппроксимация кривых», 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])
© 2008–2016 NumPy Developers
Licensed under the NumPy License.
https://docs.scipy.org/doc/numpy-1.10.1/reference/generated/numpy.polynomial.laguerre.lagfit.html