In: Computer Science
Find L and U Using python3 programming language( using Doolittle's Decomposition method)
3X3 Matrices
[4,-1,0],[-1,4,-1],[0,-1,4]
The L and U of given matrix can be calculated as:-
Maximum = 100;
#lud as lower and upper triangular matrix decomposition.
def lud(matrix, n):
lower = [[0 for x in range(n)]
for y in range(n)];
upper = [[0 for x in range(n)]
for y in range(n)];
# decomposing the matrix into Upper and lower triangular
matix
for i in range(n):
# Upper Triangular
for k in range(i, n):
# Sum of Lower(i, j) * Upper(j, k)
sum = 0;
for j in range(i):
sum += (lower[i][j] * upper[j][k]);
# Evaluating Upper(i, k)
upper[i][k] = mat[i][k] - sum;
# Lower Triangular
for k in range(i, n):
if (i == k):
lower[i][i] = 1; # for Diagonal as 1
else:
# Summation of Lower(k, j) * Upper(j, i)
sum = 0;
for j in range(i):
sum += (lower[k][j] * upper[j][i]);
# Evaluating Lower(k, i)
lower[k][i] = int((mat[k][i] - sum) /
upper[i][i]);
# setw is used for displaying
print("Lower Triangular\t\tUpper Triangular");
#result :
for i in range(n):
# for Lower
for j in range(n):
print(lower[i][j], end = "\t");
print("", end = "\t");
# for Upper
for j in range(n):
print(upper[i][j], end = "\t");
print("");
# given data
matrix = [[4, -1, 0],
[-1, 4, -1],
[0, -1, 4]];
#for main function
lud(mat, 3);