1. 程式人生 > >Python之線性代數(行列式)

Python之線性代數(行列式)

d = np.array([
        [4,1,2,4],
        [1,2,0,2],
        [10,5,2,0],
        [0,1,1,7]
    ])
print(d)

np.linalg.det(d) # 計算行列式結果

 

[[ 4  1  2  4]
 [ 1  2  0  2]
 [10  5  2  0]
 [ 0  1  1  7]]

Out[4]:

-8.511709855459539e-15
def createD(a,x,n):
    # 構建函式,生成一個n階的行列式,其中對角線值為x,其餘為a
    di = np.eye(n)
    di = di * x
    di[di==0] = a
    return di

d = createD(5,20,10)
print(d)
np.linalg.det(d)
[[20.  5.  5.  5.  5.  5.  5.  5.  5.  5.]
 [ 5. 20.  5.  5.  5.  5.  5.  5.  5.  5.]
 [ 5.  5. 20.  5.  5.  5.  5.  5.  5.  5.]
 [ 5.  5.  5. 20.  5.  5.  5.  5.  5.  5.]
 [ 5.  5.  5.  5. 20.  5.  5.  5.  5.  5.]
 [ 5.  5.  5.  5.  5. 20.  5.  5.  5.  5.]
 [ 5.  5.  5.  5.  5.  5. 20.  5.  5.  5.]
 [ 5.  5.  5.  5.  5.  5.  5. 20.  5.  5.]
 [ 5.  5.  5.  5.  5.  5.  5.  5. 20.  5.]
 [ 5.  5.  5.  5.  5.  5.  5.  5.  5. 20.]]

Out[20]:

2498818359374.998