Python3實現行列式的輸入與求值

2021-09-02 02:15:10 字數 1326 閱讀 4574

行列式就是特殊的矩陣,通過python3對其進行求解時,我們可以用numpy庫中的linalg.det()函式。

我們這裡以n==3時為例。但在一般題目中,測試資料是這樣輸入的:

123

4567

88

這裡給出兩種輸入方法:

首先是第一種輸入方法,先構造乙個n*n的空矩陣

array =[[

0]*n for i in

range

(n)]

這裡我們可以把上述給出的三階行列式看作三行字串,對每行字串用split()函式進行處理,儲存到乙個列表中,再通過pop()函式將列表中的元素從前到後依次輸入矩陣的每一行中,**如下:
count=

0#代表行列式的行

while count != n:

s_list =

(input()

).split(

)for i in

range

(n):

#在count行中將當前列表中的元素依次儲存進i列

array[count]

[i]=

int(s_list.pop(0)

) count +=

1

其次是第二種輸入方法,其中運用到了numpy庫中的reshape()方法,首先構造乙個空列表
list=[

]

然後將資料一次性全部輸入
for i in

range

(n):

s_list =

(input()

).split(

)for j in

range

(n):

list

int(s_list.pop(0)

))array = np.reshape(

list

,(n, n)

)

需要注意的是,新構建的列表中的元素都是str型,需要通過強制轉化將列表中的元素轉化為int型,從而儲存在之前構建的array列表中。

現在,我們已經得到了乙個完整的三階行列式,直接用linalg.det()函式對其進行求值即可。

print

(np.linalg.det(array)

)

C語言實現行列式和代數余子式

建立行列式 人工輸入資料 輸出該行列式和代數余子式,並輸出其值 2006 1 7 梁見斌 include include define n 3 typedef struct node array int sum 全域性變數,儲存行列式的值 void create int h n 構造乙個行列式 vo...

python實現矩陣求行列式的值

後註 這個函式只對2,3維矩陣有效,存檔在此,權當自嘲,這裡 python矩陣運算 實現了乙個有效的求行列式的演算法 python本身對科學計算支援的不夠,相關演算法都是numpy來實現的。最近資料探勘的專案需求,需要複習久違的線性代數的知識,下面的乙個計算矩陣行列式的演算法實現,權當複習連手。de...

(3)行列式的展開定理

在給定的n階行列式中,把 aij所在的第i行和第j列的元素劃去,餘下的元素按原來的排法構成的n 1階行列式叫做元素 aij的余子式,記為 mij,而aij 的代數余子式記作 aij,定義 aij 1 i jmij。性質 一.如果n階行列式d中的第i行 列 所有元素除aij 外都是零,那麼d等於aij...