n=3
2 1 -3
-1 3 2
3 1 -3
n=4
8 1 3 2
2 9 -1 -2
1 3 2 -1
1 0 6 4
#/*********** LU Decomposition for solving linear equations **********/
#n=3
n=4
print("Enter the order of matrix ! ",n)
a= [ [0.0 for i in range(n+1)] for j in range(n+1) ] #[n][n],
l= [ [0.0 for i in range(n+1)] for j in range(n+1) ] #[n][n],
u= [ [0.0 for i in range(n+1)] for j in range(n+1) ] #[n][n],
'''
a =[ [0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0, 0.0 , 0.0 ],
[0.0 ,2.0 , 1.0 , -3.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0, 0.0 ] ,
[0.0 ,-1.0 , 3.0 , 2.0, 0.0 , 0.0 , 0.0 , 0.0 , 0.0, 0.0 ] ,
[0.0 ,3.0 , 1.0 , -3.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0, 0.0] ,
[0.0 ,0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0, 0.0 ] ,
[0.0 ,0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0, 0.0 ] ,
[0.0 ,0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0, 0.0 ] ,
[0.0 ,0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0, 0.0 ] ,
[0.0 ,0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0, 0.0 ] ]
'''
a =[ [0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0, 0.0 , 0.0 ],
[0.0 , 8.0 , 1.0 , 3.0 , 2.0 , 0.0 , 0.0 , 0.0 , 0.0, 0.0 ] ,
[0.0 , 2.0 , 9.0 , -1.0, -2.0 , 0.0 , 0.0 , 0.0 , 0.0, 0.0 ] ,
[0.0 , 1.0 , 3.0 , 2.0 , -1.0 , 0.0 , 0.0 , 0.0 , 0.0, 0.0] ,
[0.0 , 1.0 , 0.0 , 6.0 , 4.0 , 0.0 , 0.0 , 0.0 , 0.0, 0.0 ] ,
[0.0 ,0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0, 0.0 ] ,
[0.0 ,0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0, 0.0 ] ,
[0.0 ,0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0, 0.0 ] ,
[0.0 ,0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0, 0.0 ] ]
# //print the new matrix
print("Enter all coefficients of matrix :")
for i in range(1,n+1):
for j in range(1,n+1):
print( "a[",i,"][",j,"]=",round(a[i][j],4),'\t',end='')
print("")
#//********** LU decomposition *****//
for k in range (1 , n+1):
u[k][k]=1;
for i in range (k, n+1):
sum1=0.0
for p in range (1, k):
sum1+=l[i][p]*u[p][k]
l[i][k]=a[i][k]-sum1
for j in range (k+1 , n+1):
sum1=0.0
for p in range(1, k):
sum1+=l[k][p]*u[p][j]
u[k][j]=(a[k][j]-sum1)/l[k][k]
#//******** Displaying LU matrix**********//
print("\n\nL matrix is ")
for i in range(1,n+1):
for j in range(1,n+1):
print( "L[",i,"][",j,"]=",round(l[i][j],4),'\t',end='')
print("")
print("\n\nU matrix is ")
for i in range(1,n+1):
for j in range(1,n+1):
print( "U[",i,"][",j,"]=",round(u[i][j],4),'\t',end='')
print("")
========= RESTART: F:/2018-09勤益科大數值分析/數值分析/PYTHON/EX6-5-1.py ========
Enter the order of matrix ! 4
Enter all coefficients of matrix :
a[ 1 ][ 1 ]= 8.0 a[ 1 ][ 2 ]= 1.0 a[ 1 ][ 3 ]= 3.0 a[ 1 ][ 4 ]= 2.0
a[ 2 ][ 1 ]= 2.0 a[ 2 ][ 2 ]= 9.0 a[ 2 ][ 3 ]= -1.0 a[ 2 ][ 4 ]= -2.0
a[ 3 ][ 1 ]= 1.0 a[ 3 ][ 2 ]= 3.0 a[ 3 ][ 3 ]= 2.0 a[ 3 ][ 4 ]= -1.0
a[ 4 ][ 1 ]= 1.0 a[ 4 ][ 2 ]= 0.0 a[ 4 ][ 3 ]= 6.0 a[ 4 ][ 4 ]= 4.0
L matrix is
L[ 1 ][ 1 ]= 8.0 L[ 1 ][ 2 ]= 0.0 L[ 1 ][ 3 ]= 0.0 L[ 1 ][ 4 ]= 0.0
L[ 2 ][ 1 ]= 2.0 L[ 2 ][ 2 ]= 8.75 L[ 2 ][ 3 ]= 0.0 L[ 2 ][ 4 ]= 0.0
L[ 3 ][ 1 ]= 1.0 L[ 3 ][ 2 ]= 2.875 L[ 3 ][ 3 ]= 2.2 L[ 3 ][ 4 ]= 0.0
L[ 4 ][ 1 ]= 1.0 L[ 4 ][ 2 ]= -0.125 L[ 4 ][ 3 ]= 5.6 L[ 4 ][ 4 ]= 4.8052
U matrix is
U[ 1 ][ 1 ]= 1 U[ 1 ][ 2 ]= 0.125 U[ 1 ][ 3 ]= 0.375 U[ 1 ][ 4 ]= 0.25
U[ 2 ][ 1 ]= 0.0 U[ 2 ][ 2 ]= 1 U[ 2 ][ 3 ]= -0.2 U[ 2 ][ 4 ]= -0.2857
U[ 3 ][ 1 ]= 0.0 U[ 3 ][ 2 ]= 0.0 U[ 3 ][ 3 ]= 1 U[ 3 ][ 4 ]= -0.1948
U[ 4 ][ 1 ]= 0.0 U[ 4 ][ 2 ]= 0.0 U[ 4 ][ 3 ]= 0.0 U[ 4 ][ 4 ]= 1
>>>
======== RESTART: F:/2018-09勤益科大數值分析/數值分析/PYTHON/EX6-5-1.py ===========
Enter the order of matrix ! 3
Enter all coefficients of matrix :
a[ 1 ][ 1 ]= 2.0 a[ 1 ][ 2 ]= 1.0 a[ 1 ][ 3 ]= -3.0
a[ 2 ][ 1 ]= -1.0 a[ 2 ][ 2 ]= 3.0 a[ 2 ][ 3 ]= 2.0
a[ 3 ][ 1 ]= 3.0 a[ 3 ][ 2 ]= 1.0 a[ 3 ][ 3 ]= -3.0
L matrix is
L[ 1 ][ 1 ]= 2.0 L[ 1 ][ 2 ]= 0.0 L[ 1 ][ 3 ]= 0.0
L[ 2 ][ 1 ]= -1.0 L[ 2 ][ 2 ]= 3.5 L[ 2 ][ 3 ]= 0.0
L[ 3 ][ 1 ]= 3.0 L[ 3 ][ 2 ]= -0.5 L[ 3 ][ 3 ]= 1.5714
U matrix is
U[ 1 ][ 1 ]= 1 U[ 1 ][ 2 ]= 0.5 U[ 1 ][ 3 ]= -1.5
U[ 2 ][ 1 ]= 0.0 U[ 2 ][ 2 ]= 1 U[ 2 ][ 3 ]= 0.1429
U[ 3 ][ 1 ]= 0.0 U[ 3 ][ 2 ]= 0.0 U[ 3 ][ 3 ]= 1
>>>
沒有留言:
張貼留言