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.Параметры: -
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было двумерным, коэффициенты для данных в столбце kyнаходятся в столбце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,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] Википедия, «Аппроксимация кривых», http://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([ 0.97902637, 1.99849131, 3.00006 ])
-
© 2005–2019 NumPy Developers
Licensed under the 3-clause BSD License.
https://docs.scipy.org/doc/numpy-1.15.4/reference/generated/numpy.polynomial.hermite.hermfit.html