numpy.polynomial.hermite.hermfit
-
numpy.polynomial.hermite.hermfit(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было двумерным, коэффициенты для данных в столбце k изyнаходятся в столбце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,lagfit,polyfit,hermefit-
hermval -
Вычисляет ряд Эрмита.
-
hermvander -
Матрица Вандермонда ряда Эрмита.
-
hermweight -
Функция веса Эрмита
-
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]). Функция веса доступна какhermweight.Ссылки
-
1 -
Википедия, «Аппроксимация кривых», https://en.wikipedia.org/wiki/Curve_fitting
Примеры
>>> from numpy.polynomial.hermite import hermfit, hermval >>> x = np.linspace(-10, 10) >>> err = np.random.randn(len(x))/10 >>> y = hermval(x, [1, 2, 3]) + err >>> hermfit(x, y, 2) array([1.0218, 1.9986, 2.9999]) # may vary
© 2005–2020 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/1.18/reference/generated/numpy.polynomial.hermite.hermfit.html