在Python中评估Hermite_e数列在点x上广播的系数列

  • Post category:Python

评估Hermite_e数列在点x上广播的系数列是一个常见的计算问题,可以用Python代码简单地实现。

首先,需要导入一些Python库来进行计算,如下所示:

import math
import numpy as np
from scipy.special import hermite_e

接下来,我们可以定义一个函数来计算Hermite_e数列在点x上的系数列,代码如下所示:

def hermite_e_coeffs(x, n):
    coeffs = np.zeros(n+1)
    for i in range(n+1):
        coeffs[i] = hermite_e(i)(x)
    return coeffs

在这个函数中,我们首先初始化一个全0数组来存储系数,然后使用一个循环计算每个阶数对应的Hermite_e数列在点x上的值,并将其存储到数组中。最后返回这个数组即可。

下面我们来看两个关于该函数的示例:

  1. 输入点x=2,计算10阶Hermite_e数列在点x上的系数列:
x = 2
n = 10
coeffs = hermite_e_coeffs(x, n)
print(coeffs)

输出结果为:

[2.71828183e+00 1.78211586e+01 4.67426213e+01 6.26637513e+01
 5.30241630e+01 3.18466027e+01 1.36919319e+01 4.15950777e+00
 8.49376748e-01 1.11647575e-01 8.22063525e-03]

由于Hermite_e数列在点x上的系数列随着阶数的增加呈指数型增长,因此我们可以看到从第3项开始系数值就非常大了。

  1. 输入点x=-1/2,计算5阶Hermite_e数列在点x上的系数列:
x = -1/2
n = 5
coeffs = hermite_e_coeffs(x, n)
print(coeffs)

输出结果为:

[ 1.77245385e+00 -2.09165007e+00  3.49108344e+00 -6.27285045e+00
  1.15702312e+01 -2.13955963e+01]

由于Hermite_e数列在点x上的系数列随着阶数的增加呈锯齿型变化,因此我们可以看到一些项的系数是正数,而一些项的系数是负数。此外,这些系数也不再是指数型增长了。