Untitled
unknown
python
a year ago
1.5 kB
6
Indexable
from matrixOperations import * from q1e import * #def matrix_minor(matrix, row, col): # return [row[:col] + row[col+1:] for row in (matrix[:row]+matrix[row+1:])] #def matrix_determinant(matrix): # if len(matrix) == 2: # return matrix[0][0]*matrix[1][1] - matrix[0][1]*matrix[1][0] # determinant = 0 # for c in range(len(matrix)): # determinant += ((-1)**c)*matrix[0][c]*matrix_determinant(matrix_minor(matrix, 0, c)) # return determinant def matrix_inverse(matrix): determinant = det(matrix) if determinant == 0: raise ValueError("A matriz não é invertível.") if len(matrix) == 2: return [[matrix[1][1]/determinant, -1*matrix[0][1]/determinant], [-1*matrix[1][0]/determinant, matrix[0][0]/determinant]] cofactors = [] for r in range(len(matrix)): cofactor_row = [] for c in range(len(matrix)): matrix_minor = minor(matrix, r, c) cofactor_row.append(((-1)**(r+c)) * det(matrix_minor)) cofactors.append(cofactor_row) cofactors = transpose(cofactors) for r in range(len(cofactors)): for c in range(len(cofactors)): cofactors[r][c] = cofactors[r][c]/determinant return cofactors # Exemplo de uso: matrix = [[4, 7, 9], [5, 2, 3], [1, 6, 8]] vector = [1,2,3] print("Número condição:", frobenius(matrix_inverse(matrix)) * frobenius(matrix)) print("Estimativa:", frobenius(matrix) * frobenius(matrix_inverse(mult(matrix, vector))) / frobenius(vector))
Editor is loading...
Leave a Comment