LR Zerlegung ohne Pivotisierung in Matlab

Neue Frage »

steviehawk Auf diesen Beitrag antworten »
LR Zerlegung ohne Pivotisierung in Matlab
Meine Frage:
Hallo Leute, ich habe ein Programm geschrieben, dass mir zu einer Matrix A die LR Zerlegung vornimmt. Ich möchte es dahingehend verbessern, dass es mir einen Fehler ala: Zerlegung nicht möglich ausgibt wenn es eben nicht möglich ist.

Hier mal das Programm:

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
 function [L,R] = myLR(A) ?stimmt eine Zerlegung der Matrix A in eine Unterdreiecksmatrix L
                         %und eine Oberedreiecksmatrix R

                        
n = size(A);

 for k=1:n-1
     
     for i=k+1:n
         
        A(i,k) = A(i,k)/A(k,k);
 
        for j=k+1:n  
        
        A(i,j) = A(i,j)-A(i,k)*A(k,j);
        
        
        end
     end
 end
 
 

 R = triu(A);
 
 L = tril(A,-1) + eye(n,n);
   
    
 


So ich dachte erst, an den Ansatz über die Determinante der Hauptminore (also der Unterhauptmatrizen) oder wie man die nennt. Die muss ja immer verschiedenen von Null sein, dass es ohne Pivotisierung geht. Nur habe ich das Problem, dass Matlab anscheinend keine Determinante bestimmen kann, zumindest nicht besonders gut, vielleicht schnell, aber nicht genau, statt 0 kommt in Matlab z.B.: 1,5*10-8 oder so raus..

In unserem Skript steht, dass die Pivotelemente nicht null werden dürfen, das habe ich dann so implementiert:

code:
1:
2:
3:
4:
 if A(i,k) = 0
disp('Zerlegung nicht möglich')
end


am Ende des Programms. Aber für die Matrix

code:
1:
2:
3:
4:
5:
6:
7:
 
         -1     3    -2    -1
          3   -15     7     3
B =       2   -12     5     6
          5   -21    14     9

 


wird eine LR Zerlegung bestimmt obwohl die Determinante des 3x3 Hauptminors = 0 ist.

Also kann es über die Pivotelemente in Programm wohl nicht gesteuert werden oder was mache ich da falsch??

Gibt es einen anderen Weg??


Meine Ideen:
Danke für die Hilfe!!

Sorry, das ist falsch hier in Analysis, kann das jemand in Software-Abteilung bzw, in Numerik verschieben?? Danke
Neue Frage »
Antworten »



Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »