在Python中对Hermite数列进行微分并设置导数
在这篇文章中,我们将介绍如何在Python中使用NumPy对Hermite数列进行微分并设置导数。
numpy.polynomial.hermite.hermder方法
为了区分Hermite数列,python提供了一个名为hermite.hermder的方法,它存在于NumPy包中。这个方法接受一个Hermite数列系数的数组,以及一个指定导数次数的数字。它返回一个包含被微分的Hermite数列系数的数组。它帮助我们对Hermite数列进行微分,Hermite数列是一个经典的正交多项式序列。hermder方法的语法如下。
语法: numpy.polynomial.hermite.hermder(coefficient_array, m=1, scl=1, axis=0)
参数
- coefficient_array:赫米特级数的系数数组
- m:接受导数的次数。它是可选的,应该是非负值。默认值=1
- scl: 一个标量,在每次微分后与结果相乘。可选参数。
- axis:指定在哪个轴上进行导数。可选,默认值为0。
返回一个微分Hermite级数的系数数组。
示例 1
在上面的代码中,我们考虑了一个单维数组,并进行了2次区分,因为我们传递了m=2。
import numpy as np
import numpy.polynomial.hermite as H
# Create an array of coefficients
c = np.array([14, 5, 34])
# coefficient array before differentiation
print("coef array before diff->", c)
# use hermder method to differentiate the
# hermite series
print("coef array after diff->", H.hermder(c, m=2))
输出:
coef array before diff-> [14 5 34]
coef array after diff-> [272.]
示例 2
这里我们考虑的是与例1相同的系数数组,但在这里我们向hermder方法传递了一个scl参数,该方法在每次微分后将系数数组乘以scl值。所以这个scl值导致了不同的结果。
import numpy as np
import numpy.polynomial.hermite as H
# Create an array of coefficients
c = np.array([14, 5, 34])
# coefficient array before differentiation
print("coef array before diff->", c)
# use hermder method to differentiate the
# hermite series
print("coef array after diff->", H.hermder(c, m=2, scl=3))
输出:
coef array before diff-> [14 5 34]
coef array after diff-> [2448.]
示例 3
这里我们传递了一个二维的系数数组,并沿轴1对Hermite数列进行了2次微分,每次微分后的结果都与标量值2相乘。
import numpy as np
import numpy.polynomial.hermite as H
# Create an array of coefficients
c = np.array([[1, 4, 3, 4], [8, 9, 2, 5]])
# coefficient array before differentiation
print("coef array before diff->", c)
# use hermder method to differentiate
# the hermite series
print("coef array after diff->", H.hermder(c, m=2, scl=2, axis=1))
输出:
coef array before diff-> [[1 4 3 4]
[8 9 2 5]]
coef array after diff-> [[ 96. 384.]
[ 64. 480.]]