不使用预定义函数对矩阵进行对角化

时间:2015-03-18 10:48:31

标签: python-3.x

我已经定义了一些东西,它没有用,我迷路了......谢谢,如果你可以帮忙的话!

Matrice A

    a=input("a=")
    b=input("b=")
    c=input("c=")
    d=input("d=")

    a=1
    b=2
    c=3
    d=2

    import numpy as np
    A=np.array([[a,b],[c,d]]);A
    print (A)

    def determinant (A):
    d=a*d-b*c
    return (d)

    def inverse (A):
    if determinant (A)==0:
        return None
    else:
        A[0][0],A[1,1]=A[1][1],A[0][0]
        A[0][1]=-A[0][1]
        A[1][0]=-A[1][0]
        return (A/determinant(A))

    def trace (A):
    t=a+d
    return (t)

    def polynôme (A):

P = x ** 2 - 迹线(A)* x +行列式(A)

    delta= (trace(A))**2-4*determinant(A)
    if delta <0:
        return None
    elif delta==0:
        x=trace(A)/2
        return (x)
    else:
        x1=(trace(A)-(delta)**(1/2))/2
        x2=(trace(A)+(delta)**(1/2))/2
        return (x1, x2)

    def diagonalisation(A):
    V1=A-x1*I
    V2=A-x2*I

在那之后我不知道如何在没有预定义功能的情况下做什么,你可以给我一个线索吗?

1 个答案:

答案 0 :(得分:0)

numpy有很多可以使用的功能

In [10]: np.diag(A)
Out[10]: array([1, 2])

In [11]: np.trace(A)
Out[11]: 3

In [12]: np.linalg.det(A)
Out[12]: -4.0

In [13]: np.linalg.inv(A)
Out[13]: 
array([[-0.5 ,  0.5 ],
       [ 0.75, -0.25]])

更多信息,请参阅this tutorial