• numpy-poly1d、polyfit、polyval多项式使用


    np.poly1d()此函数有3个参数

    1.参数1:系数向量 

    import numpy as np
    
    a= np.array([2,1,1])
    f = np.poly1d(a)
    print(f)
    #2 x2 + 1 x + 1

     2.参数2:bool

    则表示把数组中的值作为根,然后反推多项式,例如:

    q = np.poly1d([2,3,5],True)
    print(q)
    #(x - 2)*(x - 3)*(x - 5)  = x^3 - 10x^2 + 31x -30

    3.参数3:字母

    variable=‘z’表示改变未知数的字母,例如:

    q = np.poly1d([2,3,5],True,varibale = 'z')
    print(q)
    # (z - 2)*(z - 3)*(z - 5)  = z^3 - 10z^2 + 31z -30

    计算多项式的值:代入x

    print(f([1,2,3,4]))#可以多个运算,x=1234的时候
    #[ 4 11 22 37]

    其他操作:

    p(0.5)表示当x = 0.5时,多项式的值为多少

    p([1,2,3])表示当x = 1、2、3时,多项式的值分别为多少

    p.r表示当多项式为 0 时,此等式的根

    p.c表示生成多项式的系数数组

    p.order表示返回最高项的次方数

    p[1]表示返回第一项的系数

    p.deriv([m])表示求导,参数m表示求几次导数

    p.integ([m,k])表示积分,参数m表示积几次分,k表示积分后的常数项的值

    多项式在某点上的值:np.polyval(p,x[n]),返回p多项式在横轴点上x[n]上的值

    两个多项式做差运算: np.polysub(a,b)


    np.polyfit(x,y,num)

    可以对一组数据进行多项式拟合

    np.polyval(p,x)计算多项式的函数值。返回在x处多项式的值,p为多项式系数

    import matplotlib.pyplot as plt
    import numpy as np
    
    # 构建噪声数据xu,yu
    xu = np.random.rand(50) * 4 * np.pi - 2 * np.pi
    def f(x):
        return np.sin(x) + 0.5 * x
    yu = f(xu)
    
    plt.figure(figsize=(8, 4))
    # 用噪声数据xu,yu,得到拟合多项式系数,自由度为5
    reg = np.polyfit(xu, yu, 5)
    # 计算多项式的函数值。返回在x处多项式的值,p为多项式系数,元素按多项式降幂排序
    ry = np.polyval(reg, xu)
    # 原先函数绘制
    plt.plot(xu, yu, 'b^', label='f(x)')
    # 拟合绘制
    plt.plot(xu, ry, 'r.', label='regression')
    plt.legend(loc=0)
    plt.show()
    

  • 相关阅读:
    c读取文本文档
    java类中定义接口
    android selector
    android listview
    android继承Dialog实现自定义对话框
    移植net-snmp到开发板(mini210)
    [BZOJ1901]Zju2112 Dynamic Rankings
    [BZOJ3524][Poi2014]Couriers
    [codeforces722D]Generating Sets
    [codeforces722C]Destroying Array
  • 原文地址:https://www.cnblogs.com/onenoteone/p/12441771.html
Copyright © 2020-2023  润新知