2017-11-24 15 views
-1

선형 대수학에 파이썬과 녹슨에 대한 새로운 내용이 있습니다. 그러나 Numpy를 사용하지 않고 파이썬에서 매트릭스로부터 행렬식을 만드는 올바른 방법에 대한 지침을 찾고 있습니다. 아래의 코드 스 니펫을 참조하십시오. 어떤 도움이라도 대단히 감사합니다.파이썬을 사용하여 행렬의 행렬식을 찾는 방법

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

이 코드는 전혀 의미가 없습니다. 당신은 몇 가지 튜토리얼을 읽어서 시작해야합니다 ... – Julien

+1

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

+0

일반적으로 gaussian elimination을보고 싶습니다 컴퓨팅에서 제곱 된 행렬의 행렬식을 찾는 데 사용됩니다. 다음은 좋은 읽을 거리가 될 수있는 또 다른 링크입니다. http://www.geeksforgeeks.org/determinant-of-a-matrix/ – user1767754

답변

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

의견을 보내 주신 모든 분들께 감사드립니다. –