Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- a = [[1,1,1],[4,3,-1],[3,5,3]]
- b = [1,6,4]
- c = [[1,-3,7],[-2,6,1],[0,3,-2]]
- def chechDeterminants(c):
- if c[0][0] == 0:
- print("Determinant is 0. Re-ordering")
- swap(c)
- elif c[0][0]*c[1][1]-c[0][1]*c[1][0] == 0:
- print("Determinant is 0. Re-ordering")
- swap(c)
- elif c[0][0]*c[1][1]*c[2][2]+c[0][1]*c[1][2]*c[2][0]+c[0][2]*c[1][0]*c[2][1]-c[0][2]*c[1][1]*c[2][0]-c[0][1]*c[1][0]*c[2][2]-c[0][0]*c[1][2]*c[2][1] == 0:
- print("Determinant is 0. Re-ordering")
- swap(c)
- else:
- LU(c)
- def swap(c):
- secondRow = c[1]
- lastRow = c[2]
- c[1] = lastRow
- c[2] = secondRow
- print("Reordered Matrix B:")
- for i in range(len(c)):
- print(c[i])
- chechDeterminants(c)
- def LU(a):
- n = len(a)
- L = [[0 for i in range(n)]for i in range(n)]
- for i in range(n):
- L[i][i] = 1
- U = [[0 for i in range(n)]for j in range(n)]
- for i in range(n):
- for j in range(n):
- if i == 0:
- U[i][j] = a[i][j]
- else:
- U[i][j] = 0
- for i in range(n):
- for j in range(n):
- if j == 0 and i > 0:
- L[i][j] = a[i][j]/U[0][0]
- else:
- if i == 1:
- U[i][j] = a[i][j]-(L[i][0]*U[i-1][j])
- if i == 2:
- if j == 1:
- L[i][j] = (a[i][j]-(L[i][j-1]*U[i-2][j]))/U[i-1][j]
- if j == 2:
- U[i][j] = (a[i][j]-(L[i][j-2]*U[i-2][j])-(L[i][j-1]*U[i-1][j]))
- print("L Matrix")
- for i in range(len(L)):
- print(L[i])
- print("U Matrix")
- for i in range(len(U)):
- print(U[i])
- return L, U
- def B(L,b,U):
- B = [0,0,0]
- n = len(b)
- for i in range(n):
- B[i] = b[i]/L[i][i]
- for j in range(n):
- if j != i:
- B[i] -= L[i][j]*B[j]
- print("B Matrix (LY)")
- print(B)
- X(U,B)
- def X(U,B):
- X = [0,0,0]
- n = len(B)
- for i in range(n-1,-1,-1):
- X[i] = B[i]/U[i][i]
- for j in range(n):
- if j != i:
- X[i] += U[i][j]*X[j]
- print("Result!")
- print(X)
- print("Matrix A:")
- for i in range(len(a)):
- print(a[i])
- L, U = LU(a)
- B(L,b,U)
- print("----------------")
- print("Matrix B")
- for i in range(len(c)):
- print(c[i])
- chechDeterminants(c)
Add Comment
Please, Sign In to add comment