Поиск по сайту:

Создайте серию 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, ученые и математики могут аппроксимировать сложные функции с высокой точностью, что делает ее ценным инструментом во многих областях исследований.

Статьи по данной тематике: