2 Stimmen

Berechnen Sie die Matrixdeterminanten der Minoren!

Ich möchte die Matrixdeterminanten der Minoren in Python berechnen, vielleicht mit Scipy oder einem anderen Paket. Irgendwelche Vorschläge?

2voto

David Heffernan Punkte 585606

Numpy/SciPy kann all dies leisten.

1voto

smw Punkte 417

Um die Minor-Matrix zu erstellen, können Sie die Funktion

def minor(M, i, j):
    M = np.delete(M, i, 0)
    M = np.delete(M, j, 1)
    return M

Mit dieser Ausgabe

np.linalg.det(M)

0voto

Gabriel Arghire Punkte 1067

Um die Haupt- und Nebendeterminanten einer Matrix zu erstellen und die Berechnung für jede einzelne Determinante vorzunehmen, müssen Sie Folgendes tun:

import numpy as np

# procedure for creating principal minor determinants
def minor(M, size):
    # size can be 2x2, 3x3, 4x4 etc.
    theMinor = []

    for i in range(size):
        clearList = []
        for j in range(size):
            clearList.append(M[i][j])

        theMinor.append(clearList)

    return theMinor

# procedure to handle the principal minor
def handleMinorPrincipals(A, n):
    # A is a square Matrix
    # n is number or rows and cols for A

    if n == 0:
        return None
    if n == 1:
        return A[0][0]

    # size 1x1 is calculated
    # we now look for other minors
    for i in range(1, n):
        # get the minor determinant
        minDet = minor(A, i + 1)

        # check if determinant is greater than 0
        if np.linalg.det(minDet) > 0:
            # do smth
        else:
            # smth else

    return

Example:

[[8. 8. 0. 0. 0.]
 [6. 6. 3. 0. 0.]
 [0. 4. 4. 4. 0.]
 [0. 0. 2. 2. 2.]
 [0. 0. 0. 2. 2.]]

size = 1 -> Minor is 

[8]

size = 2 -> Minor is

[[8. 8.]
[6. 6.]]

size = 3 -> Minor is

[[8. 8. 0.]
[6. 6. 3.]
[0. 4. 4]]

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X