在Python中删除Hermite多项式的小拖尾系数

yizhihongxing

删除Hermite多项式的小拖尾系数有两种方法,分别是手动实现和使用Python第三方库numpy中的poly1d函数。下面我会分别介绍这两种方法并给出示例说明。

手动实现删除Hermite多项式小拖尾系数的方法

1. 定义Hermite多项式的生成函数

Hermite多项式的生成函数可以用下面的公式来表示:

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

python中,我们可以通过递归的方式来实现上述公式:

def Hermite(n):
    if n == 0:
        return np.poly1d([1])
    elif n == 1:
        return np.poly1d([2, 0])
    else:
        a = np.polydiv(np.poly1d([2, 0]) * Hermite(n-1), Hermite(n-2))
        return a[0]    

该函数将返回一个numpy的多项式对象,代表Hermite多项式。

2. 删除小拖尾系数

如果我们要删除Hermite多项式的小拖尾系数,只需要在生成Hermite多项式后,保留前n项即可,n取决于我们想要留下多少项。注意,如果要删除小拖尾系数,那么n应该为奇数。

代码实现如下:

def Hermite_truncate(n, k):
    H_n = Hermite(n)
    return H_n[:(k+1)]
  • 参数n代表Hermite多项式的阶数,即生成的Hermite多项式最高项的次数;
  • 参数k代表我们要保留的多项式的最高项次数;
  • 返回值为一个numpy的多项式对象,包含了保留的Hermite多项式的所有项。

3. 示例说明

比如现在我们要生成一个阶数为20的Hermite多项式,并保留前7项,代码如下:

Hermite_truncate(20, 7)

得到的结果为:

poly1d([ 1.,  0., -2.,  0.,  4.,  0., -8.,  0., 16.])

这个多项式对象包含了保留的前7项,即$H_0$, $H_1$, $H_2$, $H_3$, $H_4$, $H_5$, $H_6$。

使用numpy中的poly1d函数删除小拖尾系数

我们可以使用numpy中的poly1d函数生成Hermite多项式,并使用poly1d对象自带的切片方法来删除小拖尾系数。

1. 生成Hermite多项式

对于一个Hermite多项式来说,其前$n+1$项可以使用如下代码生成:

import numpy as np

n = 20
c = np.zeros(n+1)
c[0] = 1
H_n = np.poly1d(c)
for i in range(1, n+1):
    c[i] = 2 * (H_n[i-1])
    if i>1:
        c[i] -= 2 * (i-1) * c[i-2]
    H_n = np.poly1d(c)
  • 参数n代表Hermite多项式的阶数,即生成的Hermite多项式最高项的次数;
  • H_n为一个numpy的poly1d多项式对象,包含了所有的Hermite多项式的所有项。

2. 删除小拖尾系数

与手动实现类似,我们可以使用切片方法来删除多项式的小拖尾系数。代码如下所示:

def Hermite_truncate2(H_n, k):
    return H_n[:k+1]

  • 参数H_n为一个numpy的poly1d多项式对象,包含了所有的Hermite多项式的所有项;
  • 参数k代表我们要保留的多项式的最高项次数;
  • 返回值为一个numpy的多项式对象,包含了保留的Hermite多项式的所有项。

3. 示例说明

如我们还是要保留阶数为20的Hermite多项式的前7项,代码如下:

n = 20
c = np.zeros(n+1)
c[0] = 1
H_n = np.poly1d(c)
for i in range(1, n+1):
    c[i] = 2 * (H_n[i-1])
    if i>1:
        c[i] -= 2 * (i-1) * c[i-2]
    H_n = np.poly1d(c)

Hermite_truncate2(H_n, 7)

得到的结果为:

poly1d([ 1.,  0., -2.,  0.,  4.,  0., -8.,  0., 16.])

结果与手动实现的方法一致。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:在Python中删除Hermite多项式的小拖尾系数 - Python技术站

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

相关文章

  • Python加密word文档详解

    Python加密Word文档详解 什么是Python加密Word文档? Python加密Word文档指的是使用Python语言对Word文档进行加密,使得只有拥有密码的人才能打开该文档。 实现Python加密Word文档详细步骤 实现Python加密Word文档的步骤如下: 步骤一:安装python-docx库 使用Python加密Word文档需要使用到py…

    python 2023年6月3日
    00
  • Python如何获取模块中类以及类的属性方法信息

    在Python中,我们可以使用dir()函数获取模块中类以及类的属性方法信息。以下是一个详细的攻略,包含两个示例。 1. 获取模块中类以及类的属性方法信息 我们可以使用dir()函数获取模块中类以及类的属性方法信息。dir()函数返回一个列表,包含了指定模块中定义的所有名称。以下是一个示例代码,演示如何使用dir()函数获取模块中类以及类的属性方法信息: i…

    python 2023年5月15日
    00
  • Python使用指定字符长度切分数据示例

    接下来我将为你详细讲解 Python 使用指定字符长度切分数据的完整攻略。 什么是字符串切分? 在 Python 中,字符串是一个不可变的序列,其表示一串字符。字符串切分是指将一个字符串按照指定的字符长度进行分割,从而得到一个子字符串列表的过程。 如何进行字符串切分? 在 Python 中,可以使用字符串的切片(Slice)操作进行字符串切分。切片操作是指将…

    python 2023年6月5日
    00
  • Python List列表对象内置方法实例详解

    以下是详细讲解“Python List列表对象内置方法实例详解”的完整攻略。 在Python中,列表是一种常用的数据类型,它可以存储多个值且支各种操作。Python List对象内置方法是Python中用于操作列表的一组方法,本文将详细讲解这些方法,并提供两个示例说明。 Python List对象内置方法 以下是 List列表对象内置方法的详细说明: app…

    python 2023年5月13日
    00
  • 如何利用python写GUI及生成.exe可执行文件

    下面是利用Python写GUI及生成exe可执行文件的完整攻略。 1. 选择合适的GUI库 目前Python中主流的GUI库有PyQt、Tkinter、wxPython等。每个GUI库都有不同的适用场景和特点,需要根据项目需求进行选择。在本次攻略中,我们选用PyQt来制作GUI界面。 2. 安装PyQt 在命令行或终端中输入以下命令来安装PyQt: pip …

    python 2023年6月13日
    00
  • python实现A*寻路算法

    下面是关于“Python实现A*寻路算法”的完整攻略。 1. A*寻路算法简介 A寻路算法是一种启发式搜索算法,用于在图形中寻找最短路径。它使用估价函数来评估每个节点的优先级,并选择优先级最高的节点进行扩展。A寻路算法可以在有向和无向图中使用,并且可以处理带权重的边。 2. Python实现A*寻路算法 2.1 算法流程 A*寻路算法的流程如下: 初始化起点…

    python 2023年5月13日
    00
  • python中下标和切片的使用方法解析

    Python中下标和切片的使用方法解析 在Python中,下标和切片是非常重要的操作。针对列表、元组、字符串等序列类型的数据结构,下标和切片可以非常方便的进行元素访问和截取等操作。 一、下标 下标是表示序列中元素位置的数字,下标从0开始计数。通过下标可以获取序列中特定位置的元素。 示例1:访问列表中的元素 lst = ["apple", …

    python 2023年6月5日
    00
  • python学习实操案例(三)

    《Python学习实操案例(三)》是一篇关于Python实战应用的文献,主要讲述了基于API获取天气数据并进行简单可视化的项目。下面是该项目的详细攻略: 一、背景介绍 介绍天气数据可视化的基本概念和优势,以及介绍使用的工具和平台。 二、API的基本概念 介绍API的定义,分类,以及API的读取方式。 三、使用心知天气API 介绍心知天气API的使用方式,包括…

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