Numpy 解一元二次方程

1.poly1d() 函数

    p1 = np.poly1d([2, 3, 5, 7])
    print(p1, p1.r)  # 2x^3+3x^2+5x+7 [-0.02723577+1.55580142j -0.02723577-1.55580142j -1.44552846+0.j]
    p2 = np.poly1d([2, 3, 5], True)  # x^3-10x^2+31x-30
    print(p2)
    print(np.poly1d([2, 3, 5], True, variable='z'))  # z^3-10z^2+31z-30 由值反推公式,并且用变量z表示
    p3 = np.poly1d([3, 2, 1])
    print(p3(4), p3.r, p3.order,p3[2])  
    # y = 3x^2+2x+1
    # 57 [-0.33333333+0.47140452j -0.33333333-0.47140452j] 2 3

多项式poly1d()的方法

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

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

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

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

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

f.  多项式支持实数的四则运算

2.roots()函数

def fun1():
    print(np.roots([1, 2, 1]))  # x^2+2x+1=0 [-1. -1.]
    print(np.roots([1, -3, 2]))  # x^2-3x+2=(x-1)(x-2)  [2. 1.]

3.自己手写一个