Lösungen

1. LU-Zerlegung:

(Untersuchung und Herleitung im Falle einer 3 x 3-Matrix)

Das Beispiel einer abstrakten 3 x 3-Matrix:

Konstruktion von U  (die Elementarsubstitutionen werden in Matrizenoperationen abgebildet):

Sei a1 nicht 0 (sowie weiter unten auch die Nenner nie 0 - ansonst eine Zeilenvertauschung vorgenommen werden müsste...):

Remove["Global`*"]

A30 = {{a1,b1,c1},{a2,b2,c2},{a3,b3,c3}}; 
K31 = {{0,0,0},{0,0,0},{A30[[3]][[1]]/A30[[1]][[1]],0,0}};
Map[MatrixForm,{A30, K31}]

H13 = IdentityMatrix[3]- K31; H13 // MatrixForm

U1 = H13.A30//Simplify; U1 //MatrixForm

K21 = {{0,0,0},{U1[[2]][[1]]/U1[[1]][[1]],0,0},{0,0,0}}; K32 // MatrixForm

H12 = IdentityMatrix[3]-K21; H12 // MatrixForm

U2 = H12.U1//Simplify; U2 //MatrixForm

Sei -((a2 b1)/a1) + b2 nicht 0:

K32 = {{0,0,0},{0,0,0},{0,U2[[3]][[2]]/U2[[2]][[2]],0}}; K32 // MatrixForm

H23 = IdentityMatrix[3]-K32; H23 // MatrixForm

U3 = H23.U2//Simplify; U3 //MatrixForm

In einem Schritt:

U3 = H23.H12.H13.A30//Simplify; U3 //MatrixForm

Uresult = U3;

Konstruktion von L mittels inverser Matrix:

L U = A ==> L = A InverseU. Daher ist die Inverse der Dreiecksmatrix U zu bestimmen. 
Ansatz:  U * InverseU = E. Die Berechnung von InverseU ist hier einfach. Die Sukzessive Berechnung der Elemente von InverseU zeigt rasch, dass InverseU ebenfalls eine obere Dreiecksmatrix sein muss.

U = {{u11,u12,u13},{0,u22,u23},{0,0,u33}}; U // MatrixForm

InvU = {{v11,v12,v13},{0,v22,v23},{0,0,v33}}; InvU // MatrixForm

U.InvU// MatrixForm

InvU.U// MatrixForm

solv = Solve[U.InvU == IdentityMatrix[3],{v11,v12,v13,v22,v23,v33}] // Flatten

Hier hat man ein lineares Gleichungssystem mit 6 Unbekannten, das man nach dem Rückwärtseinsetzungsverfahren rasch und problemlos lösen kann.

InvU = InvU /.solv; InvU // MatrixForm

Kontrolle:

Inverse[U] // MatrixForm

Ersetzung der künstlichen Koeffizienten in U durch die von A30:

UFlat = Flatten[U];
U3Flat = Flatten[U3];
rul = Table[UFlat[[k]]->U3Flat[[k]],{k,1,Length[UFlat]}]

L = A30.InvU; Lresult = L/.rul //Simplify; Lresult // MatrixForm

Kontrolle:

Lresult.Uresult //Simplify // MatrixForm

Simplify[Lresult.Uresult] == A30

0. Materialbereitstellung

A2 = {{1,2},{1,-1}}; 
B2 = {{3,5},{4,7}}; 
C2 = {{4,1},{5,6}};
Map[MatrixForm,{A2,B2,C2}]

A3 = {{1,2,3},{1,-1,0},{-2,1,5}}; 
B3 = {{3,5,1},{4,7,9},{3,2,6}}; 
C3 = {{4,1,3},{5,6,5},{5,8,8}};
Map[MatrixForm,{A3,B3,C3}]

A4 = {{1,2,3,4},{1,-1,0,1},{-2,1,5,2},{-2,2,1,5}}; 
B4 = {{3,5,1,1},{4,7,9,5},{3,2,6,8},{5,6,5,1}}; 
Map[MatrixForm,{A4,B4}]

A24 = {{3,5,1,1},{4,7,9,5}}; 
B42 = {{1,2},{1,-1},{-2,1},{-2,2}};  
Map[MatrixForm,{A24,B42}]

X13 = {{x11,x12,x13}}; 
X31 = {{x11},{x21},{x31}}; 
X24 = {{x11,x12,x13,x14},{x21,x22,x23,x24}}; 
X42 = {{x11,x12},{x21,x22},{x31,x32},{x41,x42}};  
Map[MatrixForm,{X13,X31,X24,X42}]

b31 = {{50},{-100},{1000}}; 
b32 = {{50,203},{-100,105},{1000,-50}}; ;  
Map[MatrixForm,{b31,b32}]

Em2 = IdentityMatrix[2]; 
Em3 = IdentityMatrix[3]; 
Em4 = IdentityMatrix[4]; 
Map[MatrixForm,{Em2,Em3,Em4}]

NullMatrix[m_]:= Table[ Table[0,{k,1,m}],{k,1,m}];
NullMatrix[4]//MatrixForm

ABC = {{a,b,c,d,e},{f,g,h,i,j},{k,l,m,n,o},{p,q,r,s,t},{u,v,w,x,y}}; ABC // MatrixForm

VdM4 = {{1,2,3,4},{2,3,4,5},{-3,-2,-1,0},{3,4,5,6}}; VdM4 // MatrixForm

1. LU-Zerlegung für 3 x 3 Matrizen als Modul

(Einfach lesbarer Modul ohne kompakte Programmierung, wiederholt anwendbar!)

modulLU[{{a1_,b1_,c1_},{a2_,b2_,c2_},{a3_,b3_,c3_}}]:=
Modul[{},
A30 = {{a1,b1,c1},{a2,b2,c2},{a3,b3,c3}}; 
K31 = {{0,0,0},{0,0,0},{A30[[3]][[1]]/A30[[1]][[1]],0,0}};
Map[MatrixForm,{A30, K31}];
H13 = IdentityMatrix[3]- K31;
U1 = H13.A30//Simplify;
K21 = {{0,0,0},{U1[[2]][[1]]/U1[[1]][[1]],0,0},{0,0,0}}; 
H12 = IdentityMatrix[3]-K21; 
U2 = H12.U1//Simplify;
K32 = {{0,0,0},{0,0,0},{0,U2[[3]][[2]]/U2[[2]][[2]],0}};
H23 = IdentityMatrix[3]-K32;
U3 = H23.U2//Simplify;
Uresult = U3;
U = {{u11,u12,u13},{0,u22,u23},{0,0,u33}};
InvU = {{v11,v12,v13},{0,v22,v23},{0,0,v33}}; 
solv = Solve[U.InvU == IdentityMatrix[3],{v11,v12,v13,v22,v23,v33}] // Flatten;
InvU = InvU /.solv; 
UFlat = Flatten[U];
U3Flat = Flatten[U3];
rul = Table[UFlat[[k]]->U3Flat[[k]],{k,1,Length[UFlat]}];
L = A30.InvU; Lresult = L/.rul //Simplify;
Print["Eingabematrix = ",A30//MatrixForm];
Print["U = ",Uresult//MatrixForm];
Print["L = ",Lresult//MatrixForm];
Print["Kontrolle: L U = ",Lresult.Uresult//MatrixForm];]

modulLU[A3];

modulLU[B3];

modulLU[C3];

2. Determinantenberechnungen

(Berechnung zur Uebung von Hand bis und mit 4 x 4-Matrizen)

Det[A2]

{Det[A2], Det[B2], Det[C2]}

{Det[A3], Det[B3], Det[C3]}

{Det[A4], Det[B4]}

Det[A24]

Geht nicht!

Det[B42]

Geht nicht!

Det[X13]

Det[X31]

Det[X24]

Det[X42]

Det[b31]

Det[b32]

{Det[Em2], Det[Em3], Det[Em4], Det[NullMatrix[4]]}

Det[ABC]

Det[VdM4]