美文网首页
绘制多项式函数

绘制多项式函数

作者: 诺馨 | 来源:发表于2018-01-04 18:20 被阅读198次

我们都知道,形如f(x)=an·xn+an-1·x(n-1)+…+a2·x^2+a1·x+a0的函数就叫多项式函数。那么,对于多项式f(x) = x^2+2x+3,怎么用numpy的函数来创建它呢?

import numpy as np
import matplotlib.pyplot as plt

# 首先多项式的系数表示为一维数组
a = np.array([1,2,3])

# 然后通过函数ploy1d创建多项式对象,此对象可以像函数一样调用,它返回多项式函数的值
func = np.poly1d(a)

#使用linspace函数创建x轴的数值,在-10和10之间产生30个均匀分布的值
x = np.linspace(-10,10,30)
y = func(x)    # 计算多项式的值
plt.plot(x,y)   #调用plot函数
plt.xlabel('x')     # 添加x轴标签 :  xlabel
plt.ylabel('y(x)')    # 添加y轴标签  :  ylabel
plt.show()

绘制的多项式函数如下图所示:

image.png
绘制多项式函数及其导函数
>>> import numpy as np
>>> import matplotlib.pyplot as plt
>>> func = np.poly1d(np.array([1,2,3,4]))
>>> func1 = func.deriv(m=1)   # numpy.poly1d.deriv返回多项式的一阶导函数
>>> x = np.linspace(-10,10,30)
>>> y = func(x)
>>> y1 = func1(x)
>>> plt.plot(x,y,'ro',x,y1,'g--')   #ro表示红色圆形,g--表示绿色虚线
[<matplotlib.lines.Line2D object at 0x1115d9590>, <matplotlib.lines.Line2D object at 0x1115d9810>]
>>> plt.xlabel('x')
<matplotlib.text.Text object at 0x10eb7b5d0>
>>> plt.ylabel('y')
<matplotlib.text.Text object at 0x10eb98550>
>>> plt.show()

numpy.poly1d.deriv返回多项式的导函数,其中m=1表示返回的是一阶导函数,那么m=2自然就是二阶导函数啦,以此类推。

再补充点,若是用红色三角形绘制,则参数为'r^',红色实线为'r-'。

上述的多项式为f(x) = x^3+ 2x^2+ 3x+4,它的一阶导函数为3x^2+4x+3。

image.png

linspace函数:

numpy.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None)
在指定的间隔内返回均匀间隔的数字。返回num个(默认为50)均匀分布的样本,在[start, stop]区间。

poly1d函数

numpy.poly1d(c_or_r, r=False, variable=None)

参数解释
c_or_r :
表示多项式的系数,它的幂是递减的。如果第二个参数为True,则表示为多项式的根(当多项式的值为0时的解) 比如poly1d([1,2,3])返回的是x^2 +2x+3,而poly1d([1,2,3],True)返回(x-1)(x-2)(x-3)=x^3- 6x^2+11x-6
r: 默认为False
variable: 字符串,可选

Examples:
以多项式x^3- 6x^2+11x-6例

>>> p = np.poly1d([1,-6,11,-6])
>>> print p
   3     2
1 x - 6 x + 11 x - 6

当x=1时计算多项式的值

>>> p(1)
0

多项式的根,结果为3,2,1

>>> p.r
array([ 3.,  2.,  1.])

显示系数

>>> p.c
array([ 1, -6, 11, -6])

多项式可以进行加法,减法,乘法以及除法(返回商和余数)。以x^2+2x+2为例。

>>> p + 2
poly1d([1, 2, 4])
>>> p*p
poly1d([1, 4, 8, 8, 4])
>>> p*2
poly1d([2, 4, 4])
>>> (p*2+4)/p
(poly1d([ 2.]), poly1d([ 4.]))
>>> p**2
poly1d([1, 4, 8, 8, 4])
>>> np.square(p)
array([1, 4, 4])   # 各个系数的平方

改变多项式变量的名称,将x改为z。

>>> p = np.poly1d([1,2,2], variable='z')
>>> print p
   2
1 z + 2 z + 2

当poly1d函数的第二个参数为True时,多项式为(x-1)(x-2),即x^2-3x+2。

>>> np.poly1d([1,2],True)
poly1d([ 1., -3.,  2.])
>>> print (np.poly1d([1,2],True))  
   2
1 x - 3 x + 2

相关文章

  • 使用 Matplotlib 绘图

    使用 Matplotlib 绘图 绘制多项式函数 绘制多项式函数及其导函数 分别绘制多项式函数及其导数 K 线图 ...

  • 绘制多项式函数

    我们都知道,形如f(x)=an·xn+an-1·x(n-1)+…+a2·x^2+a1·x+a0的函数就叫多项式函数...

  • 多项式曲线拟合

    利用多项式函数拟合数据点,多项式函数形式如下:令,则多项式函数可化为线性代数形式: 为了评价拟合函数的优劣,...

  • 高等代数理论基础8:多项式函数

    多项式函数 多项式函数 设,, 用代x所得的数称为f(x)当时的值,记作 定义:可以由一个多项式来定义的函数称为数...

  • scipy

    SciPy求函数的积分 单积分 双重积分 多项式函数 poly1d 表达式 举例多项式 多项式的系数可以表示为数组...

  • 33.整函数的中值定理

    整函数 指实系数多项式函数 中值定理 多项式函数是连续的,对于任意在定义闭区间[a,b]上的连续函数,中值定理都成...

  • MATLAB编程及应用-第5章 多项式与数据分析

    第5章 多项式与数据分析5.1 多项式5.1.1 多项式的四则运算5.1.2 多项式的导函数5.1.3 多项式的求...

  • 28.整函数分解因式

    整函数的因式分解 这里的整函数就是多项式函数。 将整函数分解为因式的乘积,就是得到函数的各个零点,也可以视为多项式...

  • [Stay Sharp]核函数种类

    常见核函数 多项式核函数 对应的支持向量机是一个次多项式分类器,对应的分类决策函数是: 高斯核函数 对应的支持向量...

  • 38.分数函数,分子中变量最高次数高于分母,可以拆分出新的分数函

    这利用了多项式的除法,因为分数函数的分子与分母都是多项式。 假如分子是更高次的多项式,那么总可除以分母,得到多项式...

网友评论

      本文标题:绘制多项式函数

      本文链接:https://www.haomeiwen.com/subject/rwnrnxtx.html