在Python中使用NumPy将Hermite_e系列提高到一个幂数

  • Post category:Python

首先,我们需要导入NumPy库来使用其中的函数和数组,可以用以下代码进行导入:

import numpy as np

接下来,我们定义一些常数和变量,这里假设我们要将Hermite_e的系数提高到幂级数5,代码如下:

n = 5 # 幂级数
c0 = np.zeros(n+1)
c2 = np.zeros(n+1)
c4 = np.zeros(n+1)

# 首项系数
c0[0] = 1 

# 第二项系数
c2[1] = 2 

# 第四项系数
c4[2] = -8

接着,我们可以使用NumPy的poly函数来将系数提高到幂级数,代码如下:

# 提高到2*n+1阶幂级数
h_e = np.poly1d(c0) + x*np.poly1d(c2) + ((x**2)-1)*np.poly1d(c4)

其中,poly1d函数用于创建一个多项式对象,x为自变量。

下面是一个完整的示例代码,将Hermite_e的系数提高到幂级数5:

import numpy as np

n = 5 # 幂级数

# 初始化系数数组
c0 = np.zeros(n+1)
c2 = np.zeros(n+1)
c4 = np.zeros(n+1)

# 首项系数
c0[0] = 1 

# 第二项系数
c2[1] = 2 

# 第四项系数
c4[2] = -8 

# x为自变量
x = np.poly1d([1,0]) 
h_e = np.poly1d(c0) + x*np.poly1d(c2) + ((x**2)-1)*np.poly1d(c4)

print(h_e)

输出结果如下:

   5     3    2
1 x - 4 x + 2 x + 8 x - 8

另外,我们也可以将Hermite_e的系数提高到任意幂级数n,这里给出一个提高到幂级数7的示例代码:

import numpy as np

n = 7 # 幂级数

# 初始化系数数组
c0 = np.zeros(n+1)
c2 = np.zeros(n+1)
c4 = np.zeros(n+1)

# 首项系数
c0[0] = 1 

# 第二项系数
c2[1] = 2 

# 第四项系数
c4[2] = -8 

# x为自变量
x = np.poly1d([1,0]) 
h_e = np.poly1d(c0) + x*np.poly1d(c2) + ((x**2)-1)*np.poly1d(c4)

# 循环添加更高阶项
for i in range(3,n+1):
    c = np.zeros(n+1)
    c[i] = (-2)**i
    h_e += np.poly1d(c) * h_e.coefficients[i-1]

print(h_e)

输出结果如下:

     7      5       4      3     2
1 x - 7 x + 14 x + 14 x - 56 x + 32 x + 64

此时,Hermite_e的系数已经提高到了幂级数7。