4

説明 (これは hwk の質問です):

ここからどこから始めればよいかわかりません。ラプラス展開を使用する予定ですが、nxn 行列に実装する方法がわかりません。どんな助けでも大歓迎です。

注: nxn 行列のランダム行列を生成する関数が既にあります。また、計算のタイミングも問題ありません。私が問題を抱えている唯一のことは、行列式を計算する方法です。

クラス ポリシーの質問の説明 b/c を削除する必要がありました。

4

5 に答える 5

7

これは、行列の行列式を見つけるための adjucate メソッドの再帰的な python コードです。

def getMatrixMinor(m,i,j):
    return [row[:j] + row[j+1:] for row in (m[:i]+m[i+1:])]

def getMatrixDeternminant(m):
    #base case for 2x2 matrix
    if len(m) == 2:
        return m[0][0]*m[1][1]-m[0][1]*m[1][0]

    determinant = 0
    for c in range(len(m)):
        determinant += ((-1)**c)*m[0][c]*getMatrixDeternminant(getMatrixMinor(m,0,c))
    return determinant

入力は nxn 行列を表す配列の配列であることに注意してください

于 2016-10-05T18:31:11.810 に答える
3

わかりました、ここにヒントがあります。

  1. マイナー行列を計算する関数を書きます。(ヒント、スライスを使用)
  2. 補因子を計算する関数を作成します (これは最初の関数と決定関数を呼び出す必要があります)
  3. 確定関数はステップ 2 で関数を呼び出し、結果を加算します。(ヒント: を使用sum)

ビオラ、あなたには決定要因があります。

また、Python でのリストの書き方により、インデックスが逆になることを忘れないでください。それはもし

M = [[1, 2, 3],
     [4, 5, 6],
     [7, 8, 9]]

この場合、m 0,1は 2 であり、通常の表記では 4 ではありません。あなたはそれを転置または使用と考えることができますzip

于 2010-09-29T07:32:06.603 に答える