• numpy的多项式函数: `poly1d`


    Python numpy.poly1d()

    numpy.poly1d()函数有助于定义一个多项式函数。它使得在多项式上应用 "自然操作 "变得容易。



    语法: numpy.poly1d (arr, root, var)

    参数 :

    • arr : [array_like] 多项式系数按照幂的递减顺序给出。如果第二个参数(根)被设置为True,那么数组值就是多项式方程的根。

    • root : [bool, optional] 真意味着多项式的根。默认为假

    • var : 我们在多项式中需要的变量如x、y、z。默认为x

    参数:

    • coefficients( coef, c) : 多项式系数
    • order(o): 多项式的阶数或程度
    • roots ( r): 多项式的根

    返回: 多项式和应用的操作



    代码1:解释poly1d()和它的参数

    
    # Python code explaining
    # numpy.poly1d()
    
    import numpy as np
    p1 = np.poly1d([1, 2])
    p2 = np.poly1d([4, 9, 5, 4])
    print ('构建多项式:')
    print ("P1 : "p1)
    print ("\n p2 : \n", p2)
    # 求解多项式
    print (f"\n\n当x=2时, {p1(2)=}")
    print (f"\n\n当x=2时, {p2(2)=}")
    # 寻根
    print (f"\n\nP1的根 : {p1.r=}") #Q: p1.r=[-2]? 为什么是-2? #A: 因为p1(x)=x+2, 所以p1(x)=0时, x=-2
    print (f"P2的根 : {p2.roots=}")
    
    # 求系数
    print (f"\n\nP1的系数 : , {p1.c=}")
    print (f"P2的系数 : , {p2.coeffs=}")
    
    # Finding Order
    print (f"\n\nOrder / Degree of P1的阶数 : , {p1.o=}")
    print (f"Order / Degree of P2的阶数 : , {p2.order=}")
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24

    输出:

    构建多项式:
    P1 :   
    1 x + 2
    
     p2 : 
        3     2
    4 x + 9 x + 5 x + 4
    
    
    当x=2时, p1(2)=4
    
    
    当x=2时, p2(2)=82
    
    
    P1的根 :  p1.r=array([-2.])
    P2的根 :  p2.roots=array([-1.86738371+0.j        , -0.19130814+0.70633545j,
           -0.19130814-0.70633545j])
    
    
    P1的系数 : p1.c=array([1, 2])
    P2的系数 : p2.coeffs=array([4, 9, 5, 4])
    
    
    Order / Degree of P1的阶数 : p1.o=1
    Order / Degree of P2的阶数 : p2.order=3
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26

    代码2:多项式的基本数学运算

    
    p1 = np.poly1d([1, 2])
    p2 = np.poly1d([4, 9, 5, 4])
    
    print ("P1 : ", p1)
    print ("\n p2 : \n", p2)
    
    print ("\n\np1 ^ 2 : \n", p1**2)
    print ("p2 ^ 2 : \n", np.square(p2))
    
    p3 = np.poly1d([1, 2], variable = 'y')
    print ("\n\np3 : ", p3)
    
    print ("\n\np1 * p2 : \n", p1 * p2)
    print ("\n多项式相乘 : \n",
           np.poly1d([1, -1]) * np.poly1d([1, -2]))
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    输出

    P1 :   
    1 x + 2
    
     p2 : 
        3     2
    4 x + 9 x + 5 x + 4
    
    
    p1 ^ 2 : 
        2
    1 x + 4 x + 4
    p2 ^ 2 : 
     [16 81 25 16]
    
    
    p3 :   
    1 y + 2
    
    
    p1 * p2 : 
        4      3      2
    4 x + 17 x + 23 x + 14 x + 8
    
    多项式相乘 : 
        2
    1 x - 3 x + 2
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26

    以上

  • 相关阅读:
    SDUT—Python程序设计实验五(列表与元组)
    Spring 微服务:数据压缩技术
    该微信用户未开启“公众号安全助手”的消息接收功能,请先开启后再绑定
    postman导入json脚本文件(Collection v1.0、Collection v2.0)
    vscode 版本比较插件 Git History Diff
    融合与创新:数据堂骨龄标注工具为医生赋能
    c++实现串口功能之termios.h头文件研读<二>
    Java实用类(五) -Math类和指定范围的随机数
    使用Specification与Example方式实现动态条件查询案例
    如何轻松查询分析多个快递单号物流到站派件延误件
  • 原文地址:https://blog.csdn.net/sinat_21835983/article/details/133008071