在Python-NumPy中对多项式进行微分并设置导数

在Python-NumPy中,可以通过numpy.poly1d类创建多项式对象,而多项式的导函数也可以通过该类的deriv()方法快速求出。下面是完整的攻略:

  1. 导入NumPy库:

python
import numpy as np

  1. 使用numpy.poly1d函数创建多项式对象,例如,创建一个三次多项式$f(x)=3x^3+2x^2-3x+1$:

python
f = np.poly1d([3, 2, -3, 1])

注意,np.poly1d()函数的参数是多项式系数,从高次到低次。

  1. 使用deriv()方法求出多项式导数,例如,求上述多项式的一阶和二阶导函数:

python
f1 = f.deriv() # 一阶导函数
f2 = f1.deriv() # 二阶导函数
print(f1) # 打印一阶导函数
print(f2) # 打印二阶导函数

注意,deriv()方法的参数是可选的,用于指定求导次数,默认为一次。

  1. 针对0到10的整数范围内的$x$值,使用numpy.vectorize函数将多项式函数和导函数向量化,并使用Matplotlib库绘制多项式函数和导函数的图像,例如:

```python
import matplotlib.pyplot as plt

x = np.arange(0, 11)
fx = np.vectorize(f) # 向量化多项式函数f(x)
f1x = np.vectorize(f1) # 向量化一阶导函数f'(x)
f2x = np.vectorize(f2) # 向量化二阶导函数f''(x)

plt.plot(x, fx(x), 'r', label='$f(x)$')
plt.plot(x, f1x(x), 'g--', label="$f'(x)$")
plt.plot(x, f2x(x), 'b-.', label="$f''(x)$")
plt.legend()
plt.show()
```

注意,Matplotlib库的绘图代码需要在Jupyter Notebook、IPython等支持Matplotlib库的Python环境中运行,否则会报错。

示例一:

创建一个二次多项式$f(x)=2x^2-5x-3$,求它的一阶和二阶导函数,绘制$f(x)$、$f'(x)$、$f''(x)$的图像。

```python
import numpy as np
import matplotlib.pyplot as plt

f = np.poly1d([2, -5, -3])
f1 = f.deriv()
f2 = f1.deriv()
print(f1) # -1*x + 2
print(f2) # -1

x = np.arange(0, 11)
fx = np.vectorize(f) # 向量化多项式函数f(x)
f1x = np.vectorize(f1) # 向量化一阶导函数f'(x)
f2x = np.vectorize(f2) # 向量化二阶导函数f''(x)

plt.plot(x, fx(x), 'r', label='$f(x)$')
plt.plot(x, f1x(x), 'g--', label="$f'(x)$")
plt.plot(x, f2x(x), 'b-.', label="$f''(x)$")
plt.legend()
plt.show()
```

结果如下:

poly1d_example1

示例二:

创建一个四次多项式$f(x)=x^4-10x^3+35x^2-50x+24$,求它的一阶和二阶导函数,绘制$f(x)$、$f'(x)$、$f''(x)$的图像。

```python
import numpy as np
import matplotlib.pyplot as plt

f = np.poly1d([1, -10, 35, -50, 24])
f1 = f.deriv()
f2 = f1.deriv()
print(f1) # 4x3 - 30x2 + 70x - 50
print(f2) # 12
x
2 - 60*x + 70

x = np.arange(0, 11)
fx = np.vectorize(f) # 向量化多项式函数f(x)
f1x = np.vectorize(f1) # 向量化一阶导函数f'(x)
f2x = np.vectorize(f2) # 向量化二阶导函数f''(x)

plt.plot(x, fx(x), 'r', label='$f(x)$')
plt.plot(x, f1x(x), 'g--', label="$f'(x)$")
plt.plot(x, f2x(x), 'b-.', label="$f''(x)$")
plt.legend()
plt.show()
```

结果如下:

poly1d_example2

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

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

相关文章

  • 使用Python的Treq on Twisted来进行HTTP压力测试

    使用 Python 的 Treq on Twisted 进行 HTTP 压力测试 在进行网络应用程序开发时,需要进行 HTTP 压力测试以确保应用程序的性能。使用 Python 的 Treq on Twisted 可以实现自动化的 HTTP 压力测试。以下是使用 Python 的 Treq on Twisted 进行 HTTP 压力测试的详细介绍。 1. 安…

    python 2023年5月15日
    00
  • 总结python爬虫抓站的实用技巧

    总结python爬虫抓站的实用技巧 1. 落实反爬虫手段 在爬虫抓站过程中,常常遭遇各种反爬虫手段。为了避免被封禁或限制访问,我们需要针对性地落实反爬虫手段。一些最常见和有效的方式包括: 添加User-Agent信息 使用代理IP 增加访问时间间隔 模拟浏览器请求 示例1: import requests headers = { ‘User-Agent’: …

    python 2023年5月14日
    00
  • linux平台使用Python制作BT种子并获取BT种子信息的方法

    本文将会详细讲解如何在Linux平台上使用Python制作BT种子并获取BT种子信息的方法。通过本文的学习,您可以快速掌握如何利用Python编程语言开发BT种子的基本方法。下面将会分为以下几个步骤: 安装相关软件包 在Linux系统中通过包管理器安装Python和相关的软件包,包括:bencode、pycrypto等包。安装命令如下: sudo apt-g…

    python 2023年6月3日
    00
  • OpenCV+python手势识别框架和实例讲解

    下面是详细讲解“OpenCV+python手势识别框架和实例讲解”的完整攻略。 OpenCV+Python手势识别框架和实例讲解 介绍 手势识别技术在现代人机交互中扮演着越来越重要的角色。OpenCV是一个开源计算机视觉库,它可以帮助开发者轻松实现图像处理、计算机视觉和机器学习等领域中的功能。 本文将介绍如何使用OpenCV和Python实现简单的手势识别功…

    python 2023年6月6日
    00
  • Python requests模块实例用法

    以下是关于Python requests模块实例用法的攻略: Python requests模块实例用法 requests是Python中一个流行的HTTP库,可以用于向Web服务器发送HTTP请求和接收响应。以下是Python requests模块实例用法: 发送GET请求 以下是使用requests发送GET请求的示例: import requests …

    python 2023年5月14日
    00
  • Python内置函数——__import__ 的使用方法

    下面是关于 Python 内置函数 __import__ 的详细讲解。 1. __import__ 函数的作用 __import__ 函数是 Python 内置函数之一,可以用来动态地导入模块。它有一个参数是字符串类型,表示需要导入的模块名。语法格式如下: __import__(module, globals=None, locals=None, froml…

    python 2023年6月5日
    00
  • python 包之 re 正则匹配教程分享

    Python包之re正则匹配教程分享 正则表达式是一种强大的文本处理工具,可以用于各种文本处理任务,如数据清洗、文本分析、信息提取等。在Python中,可以使用re块来操作正则表达式。本攻略将详细讲解Python包之re正则匹配的基本语法、常用函数和应用巧,帮助读者快速掌握正则表达式的用法。 正则表达式的基本语法 正则表达式由普通字符和元字符组成,用于匹配文…

    python 2023年5月14日
    00
  • Python实现正整数分解质因数操作示例

    Python实现正整数分解质因数的操作示例 在数学中,正整数可以分解成若干个质数的积的形式,称为正整数的质因数分解。本文将使用 Python 语言实现正整数分解质因数的操作。实现过程分为两部分:一、编写判断质数函数;二、质因数分解。 判断质数函数 质数的定义是只有 1 和本身两个因数的自然数,因此判断一个数是不是质数,只需要循环判断从 2 开始到自己的平方根…

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