Создайте серию Hermite_e с заданными корнями, используя NumPy в Python.
Полиномы Эрмита — это набор ортогональных полиномов, которые можно использовать в различных математических приложениях. Они обычно используются при решении дифференциальных уравнений, теории вероятностей и квантовой механики. Ряд Hermite_e представляет собой вариант полинома Эрмита, который используется для представления функции через ее корни. В этой статье мы обсудим, как создать серию Hermite_e с заданными корнями, используя NumPy в Python.
Установка и синтаксис
NumPy — это библиотека Python, которая обеспечивает поддержку числовых операций. Ее можно установить с помощью pip и импортировать в Python с помощью оператора «import numpy».
pip install numpy
Чтобы сгенерировать серию Hermite_e с заданными корнями с помощью NumPy, можно использовать следующий синтаксис:
numpy.polynomial.hermite_e.hermegauss(roots, deg)
roots — одномерный массив, содержащий корни ряда Hermite_e.
deg — степень ряда Hermite_e.
Алгоритм
Ниже приведен алгоритм создания ряда Hermite_e с заданными корнями с использованием NumPy:
Импортируйте библиотеку NumPy.
Определите массив, содержащий корни ряда Hermite_e.
Определите степень ряда Hermite_e.
Вызовите функцию numpy.polynomial.hermite_e.hermegauss() с корнями и степенью в качестве аргументов.
Функция возвращает два массива: один содержит веса, а другой — узлы серии Hermite_e.
Используйте веса и узлы для построения серии Hermite_e.
Пример 1
В следующем примере кода создается ряд Hermite_e с корнями [-1, 0, 1] и степенью 2.
import numpy as np
roots = np.array([-1, 0, 1])
deg = 2
weights, nodes = np.polynomial.hermite_e.hermegauss(deg)
print(weights)
print(nodes)
Выход
[-1. 1.]
[1.25331414 1.25331414]
Пример 2
В следующем примере кода создается ряд Hermite_e с корнями [1, 2, 3, 4] и степенью 3.
import numpy as np
# array of roots
roots = np.array([0, 1, 2, 3])
# initialize coefficients array with zeros
coeffs = np.zeros((len(roots), 2 * len(roots) - 1))
# setting up initial values of coefficients
coeffs[:, 0] = roots # setting f(x) values to be the roots
coeffs[1:, 1] = np.diff(coeffs[:, 0]) / np.diff(roots) # setting f'(x) values using finite difference method
# setting up the remaining coefficients using recurrence relation
for j in range(2, 2 * len(roots)):
for i in range(len(roots)):
if j % 2 == 0 and i >= j // 2:
# even-indexed coefficients
coeffs[i, j // 2] = coeffs[i, j // 2 - 1] * (j - 1) / (j // 2)
elif j % 2 == 1 and i >= (j + 1) // 2:
# odd-indexed coefficients
coeffs[i, (j + 1) // 2 - 1] = (coeffs[i, j // 2] - coeffs[i - 1, j // 2]) / (roots[i] - roots[i - j // 2])
# generating the Hermite series using the calculated coefficients
def hermite_e_series(x):
res = np.zeros_like(x)
for i in range(len(roots)):
term = np.ones_like(x)
for j in range(i):
term *= (x - roots[j])
res += coeffs[i, i] * term
return res
x = np.linspace(-1, 4, 1000)
y = hermite_e_series(x)
# get the first 10 coefficients
print(y[:10])
# plot the function
import matplotlib.pyplot as plt
plt.plot(x, y)
plt.show()
Выход
[-5.5 -5.44884884 -5.39799735 -5.34744457 -5.29718957 -5.24723141
-5.19756916 -5.14820186 -5.09912858 -5.05034838]
В следующем примере кода создается серия Hermite_e с корнями [0, 1, 2, 3] и степенью 4, а затем строится ее график с помощью Matplotlib.
Приложения
Серия Hermite, созданная с использованием NumPy на Python, имеет различные приложения. В физике полиномы Эрмита используются для описания волновых функций квантового гармонического осциллятора, а также оказываются удобными для численного анализа и научных вычислений, а также для реализации приближенных функций в статистике, таких как нормальное распределение, поскольку они часто реализуются с приближенными работает с высокой точностью.
Заключение
Серия Hermite_e — мощный инструмент для научных вычислений и численного анализа. С помощью NumPy на Python создание серии Hermite стало простой задачей. Алгоритм формирования ряда включает установку начальных коэффициентов и последующее использование рекуррентного соотношения для определения остальных коэффициентов. После расчета коэффициентов ряд Эрмита можно создать с помощью простой функции. Эта серия имеет множество приложений в физике, математике и статистике. Используя серию Hermite_e, ученые и математики могут аппроксимировать сложные функции с высокой точностью, что делает ее ценным инструментом во многих областях исследований.