2017-11-24 65 views
-1

Neu bei Python und rostig auf lineare Algebra. Ich suche jedoch nach einer Anleitung, wie man aus einer Matrix in Python eine Determinante erstellen kann, ohne Numpy zu verwenden. Bitte beachten Sie das Code-Schnipsel unten. Jede Hilfe wird sehr geschätzt.So finden Sie Determinante der Matrix mit Python

import math 
from math import sqrt 
import numbers 
import operators 

def determinant(self) 

     if not self.is_square(): 
      raise(ValueError, "Cannot calculate determinant of non-square matrix.") 
     if self.h > 2: 
      raise(NotImplementedError, "Calculating determinant not implemented for matrices larger than 2x2.") 


     |x| = A 

    det(A) = [[A, B][C, D]] 

    assert self.rows == A.cols 
    assert self.row > 1 
    term_list = [] 
+1

Dieser Code macht überhaupt keinen Sinn. Sie sollten anfangen, indem Sie einige Tutorials lesen ... – Julien

+1

'von scipy.linalg importieren det, det ([[1,2], [3, 4]])' – percusse

+0

Sie wollen 'Gaussian Elimination' betrachten, wie dies häufig ist verwendet, um die Determinante einer quadratischen Matrix in der Berechnung zu finden. Hier ist ein weiterer Link, der eine gute Lektüre sein könnte. http://www.geeksforgeeks.org/determinant-of-a-matrix/ – user1767754

Antwort

1
def determinant(matrix, mul): 
width = len(matrix) 
if width == 1: 
    return mul * matrix[0][0] 
else: 
    sign = -1 
    sum = 0 
    for i in range(width): 
     m = [] 
     for j in range(1, width): 
      buff = [] 
      for k in range(width): 
       if k != i: 
        buff.append(matrix[j][k]) 
      m.append(buff) 
     sign *= -1 
     sum += mul * determinant(m, sign * matrix[0][i]) 
    return sum 

test_matrix = [[1,-2,3],[0,-3,-4],[0,0,-3]] 

print(determinant(test_matrix, 1)) 
+0

Vielen Dank und alle anderen für Ihre Kommentare. –

Verwandte Themen