在Python中对Hermite_e系列进行微分

  • Post category:Python

在 Python 中对 Hermite_e 系列进行微分,可以通过 SymPy 模块来实现。SymPy 是一个用于符号计算的 Python 库,支持常见的数学运算,包括多项式、微积分、方程求解等,并能够输出 LaTeX 代码,方便进行学术写作。

以下是对 Hermite_e 序列进行微分的完整攻略:

  1. 导入 SymPy 模块,定义 Hermite_e 函数作为符号表达式:
import sympy as sp

x = sp.Symbol('x')
n = sp.Symbol('n', integer=True)

def Hermite_e(n, x):
    if n == 0:
        return 1
    elif n == 1:
        return 2*x
    else:
        return 2*x*Hermite_e(n-1,x) - 2*(n-1)*Hermite_e(n-2,x)

其中,sp.Symbol() 定义了一个符号变量,integer=True 表示该变量是一个整数,并且 Hermite_e(n, x) 递归地调用了自身来计算 Hermite_e 系列函数。

  1. 计算 Hermite_e(n, x) 的一阶导数 Hermite_e_n1,并对其进行化简:
Hermite_e_n1 = sp.diff(Hermite_e(n, x), x)
Hermite_e_n1_simpl = sp.simplify(Hermite_e_n1)

在这里我们使用了 SymPy 的 simplify() 函数,它能够将符号表达式进行化简。

这里是一个示例输出:

Hermite_e_n1 = 2*n*Hermite_e(n-1,x)
Hermite_e_n1_simpl = 2*(n*Hermite_e(n-1,x-1)+Hermite_e(n-1,x))
  1. 计算 Hermite_e(n, x) 的二阶导数 Hermite_e_n2,并对其进行化简:
Hermite_e_n2 = sp.diff(Hermite_e_n1, x)
Hermite_e_n2_simpl = sp.simplify(Hermite_e_n2)

同样地,这里我们也使用了 SymPy 的 simplify() 函数进行化简。

这里是一个示例输出:

Hermite_e_n2 = 2*n*(2*n-1)*Hermite_e(n-2,x)
Hermite_e_n2_simpl = 2*(n**2-n)*Hermite_e(n-2,x-1)+4*n*Hermite_e(n-1,x-1)

以上即是对 Hermite_e 系列进行微分的完整攻略,下面来看两个示例说明:

示例1:

计算 Hermite_e(3, x) 的一阶导数和二阶导数,并对其进行化简。

import sympy as sp

x = sp.Symbol('x')
n = sp.Symbol('n', integer=True)

def Hermite_e(n, x):
    if n == 0:
        return 1
    elif n == 1:
        return 2*x
    else:
        return 2*x*Hermite_e(n-1,x) - 2*(n-1)*Hermite_e(n-2,x)

Hermite_e_3 = Hermite_e(3, x)
Hermite_e_3_n1 = sp.diff(Hermite_e_3, x)
Hermite_e_3_n1_simpl = sp.simplify(Hermite_e_3_n1)
Hermite_e_3_n2 = sp.diff(Hermite_e_3_n1, x)
Hermite_e_3_n2_simpl = sp.simplify(Hermite_e_3_n2)
print(Hermite_e_3_n1_simpl)
print(Hermite_e_3_n2_simpl)

输出结果:

12*x
12

示例2:

计算 Hermite_e(4, x) 的一阶导数和二阶导数,并对其进行化简。

import sympy as sp

x = sp.Symbol('x')
n = sp.Symbol('n', integer=True)

def Hermite_e(n, x):
    if n == 0:
        return 1
    elif n == 1:
        return 2*x
    else:
        return 2*x*Hermite_e(n-1,x) - 2*(n-1)*Hermite_e(n-2,x)

Hermite_e_4 = Hermite_e(4, x)
Hermite_e_4_n1 = sp.diff(Hermite_e_4, x)
Hermite_e_4_n1_simpl = sp.simplify(Hermite_e_4_n1)
Hermite_e_4_n2 = sp.diff(Hermite_e_4_n1, x)
Hermite_e_4_n2_simpl = sp.simplify(Hermite_e_4_n2)
print(Hermite_e_4_n1_simpl)
print(Hermite_e_4_n2_simpl)

输出结果:

16*x**2 - 48
48*x