numpy.polynomial.hermite_e.hermefit
-
numpy.polynomial.hermite_e.hermefit(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было двумерным, коэффициенты для данных в столбце k изyнаходятся в столбце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,polyfit-
hermeval - Вычисляет значение полинома Эрмита.
-
hermevander - Псевдоматрица Вандермонда полинома Эрмита.
-
hermeweight - Функция весов полинома Эрмита.
-
linalg.lstsq - Вычисляет подгонку наименьших квадратов из матрицы.
-
scipy.interpolate.UnivariateSpline - Вычисляет подгонку сплайнов.
Примечания
Решение – это коэффициенты ряда Эрмита Е
p, которые минимизируют сумму взвешенных квадратов ошибокгде
являются весами. Эта проблема решается путем задания (как правило) переопределенного матричного уравнения
где
V– псевдоматрица Вандермондаx, элементыc– искомые коэффициенты, а элементыy– наблюдаемые значения. Это уравнение затем решается с помощью разложения по сингулярным значениямV.Если некоторые сингулярные значения
Vнастолько малы, что ими пренебрегают, то будет выдано предупреждениеRankWarning. Это означает, что значения коэффициентов могут быть определены неточно. Использование подгонки более низкого порядка обычно устраняет предупреждение. Параметрrcondтакже может быть установлен на значение меньше его значения по умолчанию, но полученная подгонка может быть ложной и иметь значительный вклад от погрешности округления.Подгонки, использующие ряды Эрмита Е, вероятно, наиболее полезны, когда данные можно аппроксимировать с помощью
sqrt(w(x)) * p(x), гдеw(x)– это вес Эрмита Е. В этом случае вес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) >>> 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])
-
© 2005–2019 NumPy Developers
Licensed under the 3-clause BSD License.
https://docs.scipy.org/doc/numpy-1.16.1/reference/generated/numpy.polynomial.hermite_e.hermefit.html