在Python中对点x的元组进行Hermite_e系列的评估

  • Post category:Python

对点 $x$ 的元组进行 Hermite_e 系列的评估是一个计算机科学中的经典问题,本文将详细讲解如何在 Python 中实现。以下是完整的攻略:

确认问题需求

在开始编写代码之前,我们需要明确问题需求。Hermite_e 系列是一系列的多项式函数,形式如下:

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

其中,$H_n(x)$ 代表 Hermite_e 系列中的第 $n$ 项多项式函数,$x$ 为自变量,$n$ 为正整数。我们的任务是编写一个 Python 函数,给定 $x$ 的元组和多项式函数的阶数 $n$,返回元组中每个元素对应 Hermite_e 多项式函数的值。

编写函数

为了实现对点 x 的元组进行Hermite_e系列的评估,我们可以在 Python 中使用 sympy 库。sympy 库中提供了 Hermite_e 系列多项式函数 Symbol 类,采用 sympy 库编写的函数示例如下:

from sympy import symbols, exp, diff, S

def hermite_e(x, n):
    """
    计算 Hermite_e 系列多项式函数的值.

    :param x: 元组.
    :param n: 多项式函数的阶数.
    :return: 值的列表.
    """
    # 定义符号 x 和 n
    x_symbol = symbols('x')
    n_symbol = symbols('n', integer=True, positive=True)

    # 定义 Hermite_e 多项式函数
    hermite = (-1) ** n_symbol * exp(x_symbol ** 2) * diff(exp(-x_symbol ** 2), x_symbol, n_symbol)

    # 计算 Hermite_e 多项式函数在 x 元组中每个元素的值
    result = []
    for xi in x:
        f = hermite.subs(x_symbol, xi)
        f = f.subs(n_symbol, n)
        result.append(float(f.evalf()))

    return result

示例说明

为了更好地理解上述代码的实现逻辑,我们接下来给出两个具体的示例说明。

示例 1

假设我们希望计算 $H_3(0)$ 和 $H_3(1)$ 的值,可以使用以下代码:

x = (0, 1)
n = 3
print(hermite_e(x, n))

运行结果为:

[0.0, -6.0]

这表明,当 $n=3$ 时,$H_3(0)=0$,$H_3(1)=-6$。

示例 2

假设我们希望计算 $H_4(0.5)$ 和 $H_4(1.5)$ 的值,可以使用以下代码:

x = (0.5, 1.5)
n = 4
print(hermite_e(x, n))

运行结果为:

[0.0, -53.98727671]

这表明,当 $n=4$ 时,$H_4(0.5)=0$,$H_4(1.5)=-53.98727671$。

以上就是在 Python 中对点 x 的元组进行 Hermite_e 系列的评估的完整攻略,希望对你有所帮助。