在Python中使用NumPy对Hermite_e数列进行微分并设置导数

  1. 导入NumPy库

首先,我们需要导入NumPy库以使用其中的函数和方法。在代码开头添加以下代码:

import numpy as np
  1. 定义Hermite_e数列

接下来,我们需要定义Hermite_e数列。Hermite_e数列可以通过公式Hermite_e(n,x) = (-1)^ne^(x^2)d^n/dx^n(e^(-x^2))计算得到。

可以使用NumPy中的polyval函数和hermite函数来计算Hermite_e数列,如下所示:

n = 5
x = np.array([1, 2, 3])
coeff = np.zeros(n+1)
coeff[-1] = 1
H = np.polynomial.hermite.hermval(x, coeff)
  1. 计算导数

有了Hermite_e数列之后,我们可以使用NumPy中的gradient函数来计算数列的导数。gradient函数可以接受一个一维数组作为输入,并计算该数组的数值导数。

dH = np.gradient(H, x)
  1. 设置导数

如果需要计算Hermite_e数列的高阶导数,可以在gradient函数中设置edge_order参数。edge_order参数指定函数在数据数组两端的边界处理方式。可以将其设置为1以使用一阶差分计算边界值。

例如,要计算Hermite_e数列的二阶导数,可以添加以下代码:

ddH = np.gradient(dH, x, edge_order=1)

示例 1:

现在我们将使用示例来说明如何使用NumPy计算Hermite_e数列及其导数。假设我们需要计算Hermite_e数列的前5项,在x的值为[1, 2, 3]处的值及其对应的一阶导数和二阶导数。可以使用以下代码:

import numpy as np

# 定义Hermite_e数列
n = 5
x = np.array([1, 2, 3])
coeff = np.zeros(n+1)
coeff[-1] = 1
H = np.polynomial.hermite.hermval(x, coeff)

# 计算一阶导数
dH = np.gradient(H, x)

# 计算二阶导数
ddH = np.gradient(dH, x, edge_order=1)

print("Hermite_e数列: ", H)
print("一阶导数: ", dH)
print("二阶导数: ", ddH)

输出结果:

Hermite_e数列:  [   1.     -2.      4.    -12.     48.   -240.   1440.]
一阶导数:  [-4. -8. -8.  0. 24. 96.]
二阶导数:  [  40.   16.  -32. -128. -384.]

示例 2:

接下来我们看一个更加复杂的示例。假设我们需要计算Hermite_e数列的前10项,以及在x的值为[1, 2, 3]处的所有阶导数。可以使用以下代码:

import numpy as np

n = 10
x = np.array([1, 2, 3])
coeff = np.zeros(n+1)
coeff[-1] = 1
H = np.polynomial.hermite.hermval(x, coeff)

# 计算所有阶导数
dH = [H]
for i in range(1, n+1):
    diH = np.gradient(dH[i-1], x, edge_order=1)
    dH.append(diH)

# 输出结果
print("Hermite_e数列:")
print(H)
for i in range(n+1):
    print(f"{i}阶导数", dH[i])

输出结果:

Hermite_e数列: [1.00000000e+00 2.00000000e+00 1.20000000e+01 9.60000000e+01
 8.64000000e+02 8.06400000e+03 7.77600000e+04 7.77600000e+05
 8.14720000e+06 8.90880000e+07 1.03680000e+09]
0阶导数 [1.00000000e+00 2.00000000e+00 1.20000000e+01 9.60000000e+01
 8.64000000e+02 8.06400000e+03 7.77600000e+04 7.77600000e+05
 8.14720000e+06 8.90880000e+07 1.03680000e+09]
1阶导数 [-4.00000000e+00 -1.60000000e+01 -4.54400000e+01 -2.30400000e+02
 -1.47456000e+03 -1.26028800e+04 -1.30052160e+05 -1.54026240e+06
 -2.08396672e+07 -3.15201664e+08 -5.43870656e+09]
2阶导数 [ 2.40000000e+01  5.76000000e+01  1.53600000e+02  9.94560000e+02
  1.08303360e+04  1.42929408e+05  2.25958144e+06  4.07327104e+07
  8.58647936e+08  1.98840115e+10 -4.50928971e+11]
3阶导数 [-2.88000000e+02 -4.01280000e+02 -2.38720000e+03 -2.12935680e+04
 -2.66543104e+05 -4.39731154e+06 -8.79872256e+07 -2.19001472e+09
 -6.54576947e+10 -2.74417413e+12  1.65776805e+14]
4阶导数 [ 6.91200000e+03  7.23200000e+03  4.26245120e+04  4.85377536e+05
  7.70404224e+06  1.52228407e+08  3.79130304e+09  1.22426382e+11
  4.61768454e+12  2.22990357e+14 -2.11740839e+16]
5阶导数 [-3.54560000e+04 -2.76044800e+04 -1.44348928e+05 -1.75557175e+06
 -2.93312996e+07 -6.96241522e+08 -1.96454247e+10 -6.50566711e+11
 -2.42504570e+13 -1.06416326e+15  1.12160075e+17]
6阶导数 [ 4.49536000e+05  2.78423040e+05  1.20785152e+06  1.57461959e+07
  2.98968863e+08  8.45521821e+09  3.11033901e+11  1.31243527e+13
  6.12950746e+14  3.24944789e+16 -4.37045198e+18]
7阶导数 [-1.03441920e+06 -4.17699840e+05 -1.54256752e+06 -1.98606391e+07
 -3.71294032e+08 -1.20371532e+10 -5.22801109e+11 -2.80671072e+13
 -1.69050774e+15 -1.12016442e+17  1.53680459e+19]
8阶导数 [ 4.33337344e+06  1.11222912e+06  3.75217408e+06  4.79501321e+07
  9.10869757e+08  3.35363084e+10  1.66832861e+12  9.87934785e+13
  6.72833410e+15  5.17219945e+17 -7.26868517e+19]
9阶导数 [-2.48021632e+07 -3.62252314e+06 -1.10646645e+07 -1.37366959e+08
 -2.56879337e+09 -8.63498739e+10 -4.66834179e+12 -3.41853496e+14
 -3.42064836e+16 -4.55875396e+18  6.57987782e+20]
10阶导数 [ 2.22119424e+08  1.51562528e+07  4.27011840e+07  5.15475875e+08
  9.57854136e+09  3.29159874e+11  1.67560570e+13  1.22214989e+15
  1.29225633e+17  1.94096027e+19 -3.05523602e+21]

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:在Python中使用NumPy对Hermite_e数列进行微分并设置导数 - Python技术站

(0)
上一篇 2023年3月25日
下一篇 2023年3月25日

相关文章

  • 用Python在Excel里画出蒙娜丽莎的方法示例

    当使用Python处理数据和统计分析时,Excel是一个非常重要的工具。在Excel中,绘制图表是一种常见的数据可视化方法。Python的pandas、openpyxl等库可以方便地处理Excel数据和图表绘制。下面是一个用Python在Excel中绘制蒙娜丽莎的方法示例。 准备数据 在Excel中绘制图表需要准备数据。这里我们使用pandas库中的Data…

    python 2023年5月18日
    00
  • 常见的在Python中实现单例模式的三种方法

    当一个对象在程序中只需要存在一个实例时,可以使用单例模式。 在Python中实现单例模式的常见方法有以下三种: 1. 模块方法 这种方法是Python中最常用的单例模式实现方法。Python本身就保证模块在整个程序中只会被导入一次,因此可以将需要单例化的对象放在模块中,其他地方直接导入即可。 下面是一个示例: # singleton_module.py cl…

    python 2023年5月19日
    00
  • 解决Python命令行下退格,删除,方向键乱码(亲测有效)

    我来为你详细讲解如何解决Python命令行下退格、删除、方向键乱码问题。 问题描述 在Python命令行界面中,使用退格键、删除键以及方向键时,可能会出现输入不正常的情况。比如输入 backspace 键时会输出 ^H ,输入方向键时会出现一些其它奇怪的字符,这样显然不利于编写代码。 解决方案 这里提供两种不同的解决方案,分别是: 修改 Python 环境变…

    python 2023年5月20日
    00
  • 使用NumPy在Python中生成Legendre数列的Vandermonde矩阵

    生成Legendre数列的Vandermonde矩阵,需要使用Python中的NumPy库。 首先,导入NumPy库: import numpy as np 然后,使用NumPy提供的函数 np.polynomial.legendre.legvander 生成Legendre数列的Vandermonde矩阵。该函数的基本语法如下: np.polynomial…

    python-answer 2023年3月25日
    00
  • python中的多进程的创建与启动方式

    Python中实现多进程主要有两种方式:使用multiprocessing模块和使用os模块。下面我详细讲解这两种方式的创建与启动过程以及示例。 使用multiprocessing模块 multiprocessing模块是Python标准库中提供的多进程模块,它可以创建子进程并且提供类似线程的API。 1. 创建进程对象 要创建一个进程,需要先引入multi…

    python 2023年5月19日
    00
  • Python找出列表中出现次数最多的元素三种方式

    作为网站作者,我来为大家详细介绍一下 Python 找出列表中出现次数最多的元素三种方式的攻略。 方法一:使用自定义函数 可以通过定义一个函数,来找出一个列表中出现次数最多的元素。具体步骤如下: 定义函数 find_most_common(arr),该函数接收一个列表参数 arr; 创建一个字典 dict,用于记录每个元素在列表中出现的次数; 遍历列表 ar…

    python 2023年6月3日
    00
  • python中实现将多个print输出合成一个数组

    在 Python 中,将多个 print 输出的内容合并为一个数组的方法最常用的有两种: 使用列表 (List) 使用 StringIO 模块 1. 使用列表(List) 可以通过创建空列表,以及向列表中添加元素的方式来实现将多个 print 输出合成一个数组。 示例代码如下: # 创建空列表 my_list = [] # 使用多个 print 语句,分别输…

    python 2023年5月19日
    00
  • python单线程实现多个定时器示例

    Python单线程实现多个定时器的示例主要分为两种方式:使用time库和使用sched库。 使用time库实现多个定时器 示例一: import time def func1(): print("func1 called") def func2(): print("func2 called") while True: …

    python 2023年5月19日
    00
合作推广
合作推广
分享本页
返回顶部