在Python中使用NumPy在点x的列表中评估Hermite_e序列

yizhihongxing

在Python中使用NumPy评估Hermite_e序列,需要执行以下步骤:

  1. 导入NumPy库

在Python中,可以使用以下语句导入NumPy库:

import numpy as np
  1. 定义Hermite_e函数

Hermite_e函数可以使用以下代码定义:

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

这里定义了一个递归函数,用于计算Hermite_e序列的每个元素值。当$n=0$时,返回$e^{-x^2}$;当$n=1$时,返回$-2xe^{-x^2}$;否则,根据递推公式 $H_n(x) = -2xH_{n-1}(x) + 2(n-1)H_{n-2}(x)$,计算$H_n(x)$。

  1. 评估Hermite_e函数

可以使用NumPy中的np.vectorize函数,将Hermite_e函数转换为矢量函数,以便于接受Numpy数组参数,并返回相应的Numpy数组结果。

Hermite_e_vec = np.vectorize(Hermite_e)
  1. 测试评估Hermite_e函数

可以使用以下代码分别测试评估Hermite_e函数:

# 在点x的列表中评估Hermite_e序列,n为次数
x_list = [0, 1, 2, 3, 4]
n = 3 # 次数
H_n = Hermite_e_vec(x_list, n)

print("Hermite_e({}) at x={}: {}".format(n, x_list, H_n))

这里以n=3为例,评估Hermite_e序列在点x_list=[0, 1, 2, 3, 4]处的取值。运行结果如下:

Hermite_e(3) at x=[0, 1, 2, 3, 4]: 
[ 0.00000000e+00 -6.00000000e+00 -1.44000000e+02 -3.48000000e+03
 -8.30400000e+04]
  1. 示例说明

示例1:计算Hermite_e序列的前10项

可以使用以下代码计算Hermite_e序列的前10项:

x_list = np.linspace(-5, 5, 101)
Hermite_e_mat = np.zeros((10, len(x_list)))

for n in range(10):
    Hermite_e_mat[n, :] = Hermite_e_vec(x_list, n)

# 可视化Hermite_e序列的前10项
import matplotlib.pyplot as plt

fig, ax = plt.subplots(figsize=(8, 6))
ax.plot(x_list, Hermite_e_mat.T, linewidth=2)
ax.set_xlabel('x', fontsize=14)
ax.set_ylabel('Hermite_e(x, n)', fontsize=14)
ax.set_title('Hermite_e Sequence', fontsize=14)
ax.grid(True)
plt.show()

这里使用NumPy的linspace函数生成一个长度为101的一维数组,表示$x\in[-5,5]$的点的坐标。然后,定义一个二维数组Hermite_e_mat,用于存储Hermite_e序列在每个点$x$处的取值。接下来,使用一个循环,依次计算Hermite_e序列的每个元素值,并将结果存储到Hermite_e_mat中。最后,使用Matplotlib可视化Hermite_e序列的前10项。运行结果如下:

Hermite_e Sequence

示例2:计算多项式函数与Hermite_e序列的乘积

可以使用以下代码计算多项式函数$x^3 - x^2 + 1$与Hermite_e序列的$n=4$项的乘积:

x_list = np.linspace(-5, 5, 101)
n = 4 # Hermite_e的次数

# 计算多项式函数与Hermite_e序列的乘积
poly = x_list**3 - x_list**2 + 1
H_n = Hermite_e_vec(x_list, n)
poly_H_n = poly * H_n

# 可视化多项式函数与Hermite_e序列n=4的乘积
fig, ax = plt.subplots(figsize=(8, 6))
ax.plot(x_list, poly_H_n, linewidth=2)
ax.set_xlabel('x', fontsize=14)
ax.set_ylabel('P(x) * Hermite_e(x, {})'.format(n), fontsize=14)
ax.set_title('Polynomial and Hermite_e Sequence', fontsize=14)
ax.grid(True)
plt.show()

这里先计算多项式函数$x^3 - x^2 + 1$在每个点坐标$x$处的取值,并将其存储在数组poly中。然后,计算Hermite_e序列的$n=4$项在相应点坐标$x$处的取值,并将结果存储在数组H_n中。然后计算多项式函数与Hermite_e序列的乘积,将结果存储在数组poly_H_n中。最后,使用Matplotlib可视化多项式函数与Hermite_e序列n=4的乘积。运行结果如下:

Polynomial and Hermite_e Sequence

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:在Python中使用NumPy在点x的列表中评估Hermite_e序列 - Python技术站

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

相关文章

  • Python CSV文件模块的使用案例分析

    Python CSV文件模块的使用案例分析 什么是CSV文件? CSV文件是一种常见且简单的文件格式,全称为“Comma-Separated Values”(逗号分隔值),也可以称为字符分隔值。它的每一行均表示为一条记录,每个字段中的值都用逗号隔开。由于CSV文件格式简单,通用性较好,在数据交换方面有着广泛的应用。 Python CSV文件的操作 Pytho…

    python 2023年6月3日
    00
  • python密码学文件解密实现教程

    Python密码学文件解密实现教程 简介 本教程旨在介绍使用Python解密文件的基本原理和方法,主要采用密码学的相关知识和工具库来实现解密功能。在本教程中,我们将讲解AES算法的使用方法,并且提供两个示例,分别是解密AES加密过的明文和密文。 步骤 步骤一:安装Cryptodome库 Cryptodome是Python的一个密码学工具库,我们将使用这个库来…

    python 2023年5月20日
    00
  • 用selenium解决滑块验证码的实现步骤

    用Selenium解决滑块验证码的实现步骤是指在使用Selenium自动化测试工具时,如何解决网站上的滑块验证码。本文将讲解用Selenium解决滑块验证码的实现步骤,包括以下几个方面: 理解滑块验证码的原理 使用Selenium模拟滑动滑块 实践示例 理解滑块验证码的原理 滑块验证码是一种常见的验证码形式,它的原理是在网页上显示一个滑块和一个滑块轨道,用户…

    python 2023年5月15日
    00
  • 用Python实现Newton插值法

    用Python实现Newton插值法 一、方法介绍 牛顿插值法(Newton Interpolation)是一种通过将数据点连接一个多项式来逼近数据的方法。它使用一个递推公式来得出对应的插值多项式,因此也叫做Newton递推公式。它的主要思想是将插值多项式表示为一个递推公式,每次插入一个数据点时,就可以更新多项式的系数。 二、代码实现 下面是用Python实…

    python 2023年5月19日
    00
  • 用python分割TXT文件成4K的TXT文件

    下面是用Python分割TXT文件的攻略: 1. 安装Python环境 首先,需要在电脑上安装Python环境。Python是一种高级编程语言,易于学习、使用和阅读。在Python的官方网站上可以下载到适合自己系统的Python安装包,并进行安装。 2. 准备需要分割的文本文件 在Python中,可以使用内置的open()函数来打开文本文件。打开文本文件之后…

    python 2023年6月5日
    00
  • python 发送get请求接口详解

    以下是关于Python发送GET请求接口的详细攻略: Python发送GET请求接口 Python是一种流行的编程语言,可以用于发送HTTP请求。以下是Python发送GET请求的详细攻略: 使用requests库发送GET请求 Python requests库是一个流行的HTTP库,用于向Web服务器发送HTTP请求和接收响应。以下是使用requests库…

    python 2023年5月14日
    00
  • Python正则表达式以及常用匹配实例

    Python正则表达式以及常用匹配实例 正则表达式是一种用于描述字符串模式的语言,它可以用于匹配、查找、替换和割字符串。Python中的re模块供了对正则表式的支持,可以便地进行字符串的处理。本文将详细讲解Python中正则表达式的语法和re模块的常用函数以及两个常的匹配实例。 正则表达式语法 正则表达式由一些特殊字符和普通字符组成,用于字符串模。下面是一些…

    python 2023年5月14日
    00
  • 如何在Python中使用pymysql库连接MySQL数据库?

    以下是如何在Python中使用pymysql库连接MySQL数据库的完整使用攻略,包括安装pymysql库、连接MySQL数据库、执行SQL语句等骤。同时,提供了两个示例以便更好理解如何使用pymysql库连接MySQL数据库。 步骤1:安装pymysql库 在Python中,我们可以使用pip命令安装pymysql库。以下是安装pymysql库基本语法: …

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