numpy.polynomial.hermite_e.hermefit
-
polynomial.hermite_e.hermefit(x, y, deg, rcond=None, full=False, w=None)[source] -
Наименьшие квадраты подгонки ряда Эрмита к данным.
Возвращает коэффициенты ряда Эрмита E степени
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.Для более подробной информации см.
numpy.linalg.lstsq.
-
- Warns
-
- RankWarning
-
Ранг матрицы коэффициентов в наименьших квадратах подгонки недостаточен. Предупреждение выдается только если
full= False. Предупреждения можно отключить, используя>>> import warnings >>> warnings.simplefilter('ignore', np.RankWarning)
См. также
-
numpy.polynomial.chebyshev.chebfit -
numpy.polynomial.legendre.legfit -
numpy.polynomial.polynomial.polyfit -
numpy.polynomial.hermite.hermfit -
numpy.polynomial.laguerre.lagfit -
hermeval -
Вычисляет ряд Эрмита.
-
hermevander -
псевдо-матрица Вандермонда полиномов Эрмита.
-
hermeweight -
Функция веса полиномов Эрмита E.
-
numpy.linalg.lstsq -
Вычисляет наименьшие квадраты подгонки из матрицы.
-
scipy.interpolate.UnivariateSpline -
Вычисляет сплайн-подгонки.
Notes
Решение — коэффициенты ряда Эрмита E
p, которые минимизируют сумму взвешенных квадратов ошибокгде
- это веса. Эта проблема решается путем составления (как правило) переопределенного матричного уравнения
где
V- это псевдо-матрица Вандермондаx, элементыc- это коэффициенты, которые нужно решить, а элементыy- это наблюдаемые значения. Это уравнение затем решается с помощью сингулярного разложенияV.Если некоторые сингулярные значения
Vнастолько малы, что ими пренебрегают, то будет выведено предупреждениеRankWarning. Это означает, что значения коэффициентов могут быть плохо определены. Использование подгонки более низкого порядка обычно устраняет предупреждение. Параметрrcondтакже может быть установлен на значение, меньшее, чем его значение по умолчанию, но полученная подгонка может быть ложной и иметь значительные вклады от ошибок округления.Подгонки, использующие ряды Эрмита E, вероятно, наиболее полезны, когда данные могут быть аппроксимированы
sqrt(w(x)) * p(x), гдеw(x)- это вес Эрмита E. В этом случае весsqrt(w(x[i]))следует использовать вместе со значениями данныхy[i]/sqrt(w(x[i])). Функция веса доступна какhermeweight.Ссылки
-
1 -
Википедия, «Подгонка кривых», https://en.wikipedia.org/wiki/Curve_fitting
Примеры
>>> from numpy.polynomial.hermite_e import hermefit, hermeval >>> x = np.linspace(-10, 10) >>> np.random.seed(123) >>> err = np.random.randn(len(x))/10 >>> y = hermeval(x, [1, 2, 3]) + err >>> hermefit(x, y, 2) array([ 1.01690445, 1.99951418, 2.99948696]) # may vary
© 2005–2021 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/1.20/reference/generated/numpy.polynomial.hermite_e.hermefit.html