在Python中用多维系数数组对x点的赫米特级数进行评估可以使用NumPy库实现。下面是具体的攻略:
Step 1:导入NumPy库
在代码的开头,需要导入NumPy库:
import numpy as np
Step 2:定义赫米特函数
赫米特函数可以使用SciPy库中的hermite
函数来定义,该函数会返回给定参数n和x的赫米特函数值。
from scipy.special import hermite
def H(x, n):
return hermite(n)(x)
Step 3:生成多维系数数组
生成多维系数数组的过程可以使用NumPy中的meshgrid
函数和ndarray
方法。
n_max = 5
N = np.arange(n_max+1)[None, :]
xn = np.linspace(-5, 5, 100)[..., None]
Xn = np.power(xn, N)
coeff = np.exp(-np.square(xn)) * Xn # 多维系数数组
以上代码中,生成了一个n_max1的数组N,其中包含了从0到n_max的所有整数。xn是一个1001的数组,其中包含了从-5到5之间的100个均匀分布的数值,N和xn的维度不同,为了实现多维计算,可以使用ndarray
方法将xn的维度扩展为了1006的数组Xn。最后,计算多维系数数组coeff,这是一个1006的数组。
Step 4:对x点的赫米特级数进行评估
使用生成的多维系数数组coeff和定义的赫米特函数H,可以进行对x点的赫米特级数进行评估。
x = np.array([1, 2, -1])
h_x = np.matmul(coeff, H(x, N).T)
以上代码中,定义了一个长度为3的数组x,表示要进行评估的点的坐标。使用H(x, N)
函数得到一个包含了x点的赫米特函数值的63的数组,然后使用NumPy中的matmul
函数对多维系数数组和赫米特函数值进行矩阵乘法操作,得到一个1001的数组h_x,表示x点的赫米特级数的值。
Step 5:绘制结果
需要导入Matplotlib库,然后使用plot
函数绘制x点的赫米特级数的值。
import matplotlib.pyplot as plt
plt.plot(xn[..., 0], h_x)
plt.show()
以上代码绘制了x点的赫米特级数在运行到点的时候的值的曲线,其中xn[…, 0]表示多维数组xn中的所有元素的第一个值。绘图结果中包含了曲线以及坐标轴标签,网站的读者可以在实际运行代码时根据具体需求进行修改。
示例1:对三维点(1, 2, -1)的赫米特级数进行评估
x = np.array([1, 2, -1])
h_x = np.matmul(coeff, H(x, N).T)
plt.plot(xn[..., 0], h_x)
plt.title("Hermite series evaluation for point (1,2,-1)")
plt.xlabel("x")
plt.ylabel("H_n(x)")
plt.show()
示例2:对二维点(2, -1)的赫米特级数进行评估
x = np.array([2, -1])
h_x = np.matmul(coeff, H(x, N).T)
plt.plot(xn[..., 0], h_x)
plt.title("Hermite series evaluation for point (2,-1)")
plt.xlabel("x")
plt.ylabel("H_n(x)")
plt.show()
以上两个示例分别对不同的二维和三维点的赫米特级数进行了评估,并且将评估结果绘制成了曲线图。