在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使用list列表和tuple元组的方法

    Python使用list列表和tuple元组的方法 在Python中,List和Tuple是两种常用的数据类型,它们都可以用来存储多个元素。本文将深入讲解Python使用list列表和tuple元组方法,并提供两个示例说明。 创建List和Tuple 可以使用方括号来创建List,例如: my_list = [1, 2, 3, 4, 5] 可以使用圆括号来创…

    python 2023年5月13日
    00
  • Python中获取网页状态码的两个方法

    在Python中,我们可以使用两种方法获取网页状态码。本文将介绍这两种方法,并提供两个示例。 1. 使用requests库获取状态码 我们可以使用requests库的status_code属性获取网页状态码。以下是一个示例,演示如何使用requests库获取状态码: import requests url = ‘http://example.com’ res…

    python 2023年5月15日
    00
  • OpenCV实现去除背景识别的方法总结

    下面是“OpenCV实现去除背景识别的方法总结”的完整攻略: 目录 前言 背景移除方法 基于帧差法的背景移除 基于均值漂移的背景移除 实现过程 获取视频帧 预处理视频帧 处理连续视频帧 示例说明 示例1:使用帧差法去除背景 示例2:使用均值漂移法去除背景 前言 背景移除技术是图像处理中常用的技术之一。在许多应用中,我们需要对前景物体进行分割,例如人脸识别、行…

    python 2023年6月6日
    00
  • Python decode() ‘utf-8’ 编解码器无法解码位置 0 的字节 0xff:无效的起始字节

    【问题标题】:Python decode() ‘utf-8’ codec can’t decode byte 0xff in position 0: invalid start bytePython decode() ‘utf-8’ 编解码器无法解码位置 0 的字节 0xff:无效的起始字节 【发布时间】:2023-04-02 00:15:01 【问题描述】…

    Python开发 2023年4月8日
    00
  • Python requests设置代理的方法步骤

    以下是关于Python requests设置代理的方法步骤的攻略: Python requests设置代理的方法步骤 在进行网络爬虫开发时,经常需要使用代理来访问目标网站。Python的requests库提供了设置代理的功能,可以轻松实现。以下是Python requests设置代理的方法步骤的攻略。 使用proxies参数设置代理 使用proxies参数可…

    python 2023年5月14日
    00
  • pytest使用@pytest.mark.parametrize()实现参数化的示例代码

    以下是关于“pytest使用@pytest.mark.parametrize() 实现参数化的示例代码”的完整攻略。 1. 简介 pytest.mark.parametrize() 是 pytest 中用来实现参数化测试的方法,可以用来避免重复测试相似用例的冗余代码。 2. 语法 pytest.mark.parametrize() 函数的语法如下: @pyt…

    python 2023年5月13日
    00
  • Python和openCV:HOG描述符检测多尺度返回负边界框

    【问题标题】:Python and openCV : HOG descriptor detect multiscale returns negative bounding boxPython和openCV:HOG描述符检测多尺度返回负边界框 【发布时间】:2023-04-03 04:53:01 【问题描述】: 我正在使用 OpenCV 的 HOG 检测器来检…

    Python开发 2023年4月8日
    00
  • 解决Python字典查找报Keyerror的问题

    在Python中,字典是一种非常常用的数据类型,它可以存储键值对。在使用字典时,有时会遇到“KeyError”错误,这通常是由于字典中指定的键引起。本攻略将提供解决Python字典查找报KeyError的完整攻略,包括使用get()方法和使用in关键字,并提供两个示例。 解决方法 以下是解决Python字典查找报KeyError的解决方法: 使用get()方…

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