"File: Lower-Upper decomposition" D_(a):=DIMENSION(a) I_(n):=IDENTITY_MATRIX(n) E_(a,i):=ELEMENT(a,i) EE_(a,i,j):=ELEMENT(a,i,j) E_(a,k)-EE_(a,k,j)*E_(a,i)/EE_(a,i,j) E_(a,i)/EE_(a,i,j) IF(k=i,E_(a,i)/EE_(a,i,j),E_(a,k)-EE_(a,k,j)*E_(a,i)/EE_(a,i,j)) IF(kD_(a) OR j>D_(a`) SUM(ABS(EE_(a,s,j)),s,i,D_(a)) NEXT(a,i,j):= H_(a,i,j):= H_(DOWN(a,i,j),i+1,j+1) IF(EE_(a,i,j)=0,NEXT(a,i,j),H_(DOWN(a,i,j),i+1,j+1),H_(DOWN(a,i,j),i+1,j+1)) H_(a,i,j):=IF(i>D_(a) OR j>D_(a`),a,IF(EE_(a,i,j)=0,NEXT(a,i,j),H_(DOWN(a,i,j)~ ,i+1,j+1),H_(DOWN(a,i,j),i+1,j+1))) [["Row Interchange Required"]] NEXT(a,i,j):=IF(SUM(ABS(EE_(a,s,j)),s,i,D_(a))=0,H_(a,i,j+1),[["Row Interchang~ e Required"]],[["Row Interchange Required"]]) APPEND(a`,I_(D_(a)))` VECTOR(E_(a,k),k,D_(a)-n+1,D_(a))` L_(a,n):=IF(D_(a)=1,a^(-1),VECTOR(E_(a,k),k,D_(a)-n+1,D_(a))`) "*****************************" "USER FUNCTIONS" UPPER(a):=H_(a,1,1) LOWER(a):=L_(H_(APPEND(a`,I_(D_(a)))`,1,1)`,D_(a))^(-1) "************************" "INSTRUCTIONS" "If A is a square matrix that can be put in lower triangular" "form without row interchanges, then..." "UPPER(A) gives an upper triangular matrix" "LOWER(A) gives a lower triangular matrix" "LOWER(A) UPPER(A) =A" "#################" "Example" a:=[[1,3,2,4],[3,5,6,7],[4,5,3,4],[1,2,3,3]] "Simplify the following to see the lower-upper decomposition of A" [LOWER(a),UPPER(a)]