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

yizhihongxing

在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 BeautifulSoup库抓取58手机维修信息

    使用Python Beautiful Soup库抓取58手机维修信息 本文将介绍如何使用Python Beautiful Soup库抓取58手机维修信息。我们将提供两个示例,演示如何获取手机维修店铺信息和维修服务信息。 获取网页内容 以下是一个示例代码,演示如何使用Python获取58手机维修网站的网页内容: import requests url = ‘h…

    python 2023年5月15日
    00
  • python爬虫工具例举说明

    Python爬虫工具例举说明 在网络数据采集与处理过程中,使用Python编写爬虫程序已成为日常工作的基本技能。Python提供了丰富的爬虫工具,结合各种库的使用,我们可以快速构建一个高效、稳定、易维护的数据采集系统。本文将介绍常用的Python爬虫工具及其使用方法。 Requests Requests是Python标准库的一个第三方包,用于发送HTTP请求…

    python 2023年5月14日
    00
  • 如何使用 python 函数(WINDOWS)从 docx 转换为 pdf?

    【问题标题】:How to convert from docx to pdf with a python function (WINDOWS)?如何使用 python 函数(WINDOWS)从 docx 转换为 pdf? 【发布时间】:2023-04-02 12:55:02 【问题描述】: 我正在开发一个带有 python 函数的环境来将 docx 转换为 …

    Python开发 2023年4月8日
    00
  • Python日期时间处理库dateutil详解

    Python日期时间处理库dateutil详解 介绍 Python内置模块datetime提供了一些功能强大的日期和时间处理方法,但不足以满足所有需求。一个Python库dateutil提供了更加易用的日期时间处理方法,如解析日期时间字符串、计算日期之间的差值和调整日期等。 安装 使用pip安装dateutil库: pip install python-da…

    python 2023年6月2日
    00
  • Python中数字以及算数运算符的相关使用

    下面是详细讲解“Python中数字以及算数运算符的相关使用”的完整攻略。 1. 数字类型 在Python中,数字类型包括整数、浮点数和复数。其中,整数是没有小数部的数字浮点数是带有小数部分的数字,而复数是由实数和数部分组成的数字。 1.1 整数 在Python中,整数类型用int表示,可以进行加、减、乘、除、模、幂等运算。 a = 10 b = 3 prin…

    python 2023年5月14日
    00
  • 使用python实现kNN分类算法

    什么是kNN算法? kNN(k-Nearest Neighbors)算法是一种基于实例的学习或无监督学习方法。它不依赖于任何模型,并且是一种惰性学习算法。它在分类和回归问题中都有应用。kNN算法的主要思想是:如果一个样本在特征空间中的k个最相似(即特征空间中最近)的样本中的大多数属于某一个类别,则该样本也属于这个类别。 实现步骤 首先需要导入必要的库,包括p…

    python 2023年6月5日
    00
  • 详解Python 运用过滤器

    当我们处理一些数据时,常常需要对数据进行筛选、转换等操作,这时候Python的过滤器就能派上大用场。Python中的过滤器是指使用某个函数过滤一个序列,只保留符合条件的元素,它通常与lambda表达式一起使用。 Python过滤器的基本用法 在Python中,过滤器的基本用法是使用filter函数。filter函数需要传入两个参数:一个是函数,一个是序列。将…

    python-answer 2023年3月25日
    00
  • python基于itchat实现微信群消息同步机器人

    Python基于itchat实现微信群消息同步机器人 介绍 本文将详细讲解如何使用Python基于itchat库实现微信群消息同步机器人。通过该机器人,可以实现多个微信群之间的消息同步。当一条消息在一个微信群中发送时,机器人将自动将该消息同步到其他指定的微信群中。同时,机器人还支持对关键词进行过滤,只同步包含指定关键词的消息。 准备工作 安装itchat库 …

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