LU分解 python
阿新 • • 發佈:2018-12-15
LU分解
線上性代數中, LU分解(LU Decomposition)是矩陣分解的一種,可以將一個矩陣分解為一個單位下三角矩陣和一個上三角矩陣的乘積(有時是它們和一個置換矩陣的乘積)。LU分解主要應用在數值分析中,用來解線性方程、求反矩陣或計算行列式。
import math import numpy def LUDecompose (table): #table that contains our data #table has to be a square array so we need to check first rows,columns=numpy.shape(table) L=numpy.zeros((rows,columns)) U=numpy.zeros((rows,columns)) if rows!=columns: return for i in range (columns): for j in range(i-1): sum=0 for k in range (j-1): sum+=L[i][k]*U[k][j] L[i][j]=(table[i][j]-sum)/U[j][j] L[i][i]=1 for j in range(i-1,columns): sum1=0 for k in range(i-1): sum1+=L[i][k]*U[k][j] U[i][j]=table[i][j]-sum1 return L,U matrix =numpy.array([[2,-2,1],[0,1,2],[5,3,1]]) L,U = LUDecompose(matrix) print(L) print(U)