python3 7行列式 python計算行列式

2021-10-11 12:55:39 字數 1776 閱讀 2123

python計算行列式

2023年12月20日 18:27 by wst

數學知識

回過頭來再看數學,課本上講的每乙個解題步驟不都是乙個演算法嗎?

突然發現自己學了那麼多演算法,可是仔細想來,自己又能實現幾個呢?

正好在複習行列式,順便實現下:

# -*- coding:utf-8 -*-

import math

__author__ = "alan.wan"

__email__ = "[email protected]"

def get_son_matrix(df, i, j):

""" generate matrix that remove line i and column j

:param df: original matrix

:param i: line number

:param j: column number

:return: new matrix

l = len(df)

new_list = [[0 for x in range(l-1)] for y in range(l-1)]

for index in range(l):

for column in range(l):

if index < i and column < j:

new_list[index][column] = df[index][column]

elif index > i and column < j:

new_list[index-1][column] = df[index][column]

elif index > i and column > j:

new_list[index-1][column-1] = df[index][column]

elif index < i and column > j:

new_list[index][column-1] = df[index][column]

return new_list

def calculate_det(df, n=0):

"""calculate determinant of df

:param df: input matrix

:param n: calculate by line n

:return: results

cl = len(df)

if cl == 2:

return df[0][0] * df[1][1] - df[1][0] * df[0][1]

s = 0

for tl in range(cl):

temp_df = get_son_matrix(df, n, tl)

s += df[n][tl] * math.pow(-1, n+tl+2) * calculate_det(temp_df)

return s

if __name__ == "__main__":

df = [

[5, 3, -1, 2, 0],

[1, 7, 2, 5, 2],

[0, -2, 3, 1, 0],

[0, -4, -1, 4, 0],

[0, 2, 3, 5, 0]

print calculate_det(df)

comment

name

email address

comment

close

submit

not comment!

矩陣1行列式

在一次模擬中,一道數列題目p1939矩陣加速直接30分,異常悲傷 3 於是乎等著老師講了矩陣 n階行列式的定義 過於複雜,懶得寫上來?1.行列式a中某行 或列 用同一數k乘,其結果等於ka。2.行列式a等於其轉置行列式at at的第i行為a的第i列 3.若n階行列式 ij 中某行 或列 行列式則 i...

python之行列式

人活著不是單靠食物。聖經 1.對於乙個 矩陣 均可對應乙個標量 a 它的值將告訴我們矩陣是否為非奇異的。2.令 ai j 為一n n矩陣,並用mi j表示刪除a中ai j的行和列得到的 n 1 n 1 矩陣,矩陣mi j的行列式稱為ai j的子式,定義ai j的余子式aij為aij 1 i j de...

1 行列式的定義

對於排列p1 p2 p3 p4 p5.pn,我們把排列在pi前面且比pi大的數的個數ti稱為這個排列的逆序數。把這個排列中各數的逆序數之和稱為這個排列的逆序數。如 132 1的逆序數為0 3的逆序數為0 2的逆序數只有3 132 這個排列的逆序數為 0 0 1 逆序數為奇數的排列稱為奇排列 逆序數為...