언어/python

정밀한 값이 아니다 파이썬 행렬

파아랑새 2016. 4. 4. 23:12
import numpy as np
from scipy import linalg
import math
A_Mat = np.array([[1,2],[3,4]])
A_Mat_INV = [[0.0,0.0],[0.0,0.0]]
Mat_ = [[0,0],[0,0]]
for row_index in range(0,2):
for col_index in range(0,2):
print(A_Mat[row_index][col_index],end= ' ')
if(col_index == 1):
print()
A_Mat_INV = linalg.inv(A_Mat) #정확한 값이 아니다.
print(A_Mat_INV)
Indentity_Mat = np.array([[0.0,0.0],[0.0,0.0]])
sum = 0.0
for k in range(0,2):
for row_index in range(0,2):
sum = 0.0
for col_index in range(0,2):
sum += A_Mat[k][col_index]*A_Mat_INV[col_index][row_index]

Indentity_Mat[k][row_index] = sum

print(Indentity_Mat)
#-------------------------------------------------------------------------
det_A = (A_Mat[0][0]*A_Mat[1][1])-(A_Mat[0][1]*A_Mat[1][0])
print("det_A", det_A)
Mat_[0][0] = A_Mat[1][1]/det_A
Mat_[0][1] = -A_Mat[0][1]/det_A
Mat_[1][0] = -A_Mat[1][0]/det_A
Mat_[1][1] = A_Mat[0][0]/det_A
for row_index in range(0,2):
for col_index in range(0,2):
print(Mat_[row_index][col_index],end= ' ')
if(col_index == 1):
print()
for k in range(0,2):
for row_index in range(0,2):
sum = 0.0
for col_index in range(0,2):
sum += A_Mat[k][col_index]*Mat_[col_index][row_index]

Indentity_Mat[k][row_index] = sum

print(Indentity_Mat)

print(Mat_ == A_Mat_INV)