在Python中,当系数为多维时,在点x上计算Hermite_e级数

在Python中,当系数为多维时,在点x上计算Hermite_e级数

在数学领域中,Hermite多项式是一种广泛使用的函数类型。多层Hermite_e级数是一个基于Hermite多项式的级数类型,由于其在变分法中的重要性,因此在数学物理学和量子力学中被广泛使用。 本文将讨论如何在Python中计算多维系数情况下的Hermite_e级数,并提供代码示例。

Hermite多项式

在开始计算Hermite_e级数之前,我们需要先了解Hermite多项式的概念。Hermite多项式是一个正交多项式系列,它的第n个多项式记作Hn(x)。Hn(x)可以由下列公式得到:

H_n(x) = (-1)^ne^{x^2}\frac{d^n}{dx^n}(e^{-x^2})

在Python中,我们可以通过SciPy库中的特定函数来计算Hermite多项式。下面是一个用于计算Hermite多项式的Python代码示例:

from scipy.special import hermitenorm
import numpy as np

n = 5
x = np.linspace(-5, 5, 100)
hn = hermitenorm(n)
y = hn(x)

import matplotlib.pyplot as plt
plt.plot(x,y)
plt.title('Hermite Polynomial')
plt.show()

在上述代码中,我们使用SciPy库中的hermitenorm函数来计算第五个Hermite多项式,并使用numpy库中的linspace函数生成了一个包含100个数值的x数组。最后,我们在matplotlib库中创建了一个简单的图表来显示Hn(x)函数。

多维系数的Hermite_e级数

现在我们来考虑多维系数的Hermite_e级数。在这种情况下,我们需要计算一个表示为下列式子的级数:

e^{-x^2} = \sum_{n=0}^\infty H_n(x)\frac{1}{n!}

我们可以通过重新排序级数的项来得到:

e^{-x^2} = \sum_{n=0}^\infty \frac{(-1)^n}{n!}(xH_{n-1}(x))

现在考虑当我们有多个系数时,我们需要在x点处计算Hermite_e级数的求和。在这种情况下,我们需要先定义一个函数来计算给定系数和点上的总和。

下面是一个用于计算多维系数下Hermite_e级数的Python代码示例,并包括了通过numpy库中的meshgrid函数计算多维点的处理:

from scipy.special import hermitenorm
import numpy as np

def hermite_e(coefs,x):
    n = np.size(coefs)
    herms = [hermitenorm(i) for i in range(0,n)]
    expon = np.exp(-x**2)
    vec = [np.prod([h(x[j]) for h in herms])*self.coefs[i]/np.math.factorial(i) for j in range(len(x))]
    return np.sum(vec)*expon

n = 2
coefs = np.array([1,2])

x = np.array([[-1,-1],[-1,0],[-1,1],[0,-1],[0,0],[0,1],[1,-1],[1,0],[1,1]])
xx,yy = np.meshgrid(x[:,0],x[:,1])

points = np.vstack([xx.ravel(),yy.ravel()]).T
y = hermite_e(coefs, points)
y = np.reshape(y, xx.shape)

在上述代码中,我们首先定义了一个函数hermite_e,该函数以系数和点作为输入,并返回值作为函数在给定点处计算的Hermite_e级数的总和。此函数包括Hermite多项式,以及用于计算总和的numpy数组操作。我们还用numpy库的meshgrid函数生成了一个多维点的输入向量。 我们对这些点使用hermite_e函数,并使用numpy库的reshape函数将输出y重新组织为一个使用原始点的网格。

示例

为了帮助读者更好地了解Hermite_e级数的计算过程,我们提供了一个简单的示例。假设我们的系数为[1, 2, 3],我们想要在点(0,0)处计算Hermite_e级数。下面是一个Python代码示例:

from scipy.special import hermitenorm
import numpy as np

def hermite_e(coefs,x):
    n = np.size(coefs)
    herms = [hermitenorm(i) for i in range(0,n)]
    expon = np.exp(-x**2)
    vec = [np.prod([h(x[j]) for h in herms])*coefs[i]/np.math.factorial(i) for j in range(len(x))]
    return np.sum(vec)*expon

coefs = np.array([1,2,3])
x = np.array([0,0])

y = hermite_e(coefs, x)

print(y)

在上述代码中,我们定义了一个函数hermite_e来计算Hermite_e级数,并且我们使用了我们的系数[1, 2, 3]和点(0,0)来调用函数。最后,我们打印输出结果0.6065306597126334。

结论

通过本文,我们学习了如何使用Python计算多维系数下的Hermite_e级数。我们可以使用SciPy库中的hermitenorm函数计算Hermite多项式,并可以使用numpy库处理多维系数和点。通过使用这些库和函数,我们可以轻松地计算和处理数学中的实际问题。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程

Numpy 示例