Matlab < Sonstiges < Hochschule < Informatik < Vorhilfe
|
Status: |
(Frage) überfällig | Datum: | 16:51 Mi 11.10.2006 | Autor: | Riley |
Hallo!
Kann mir jemand helfen eine schleife in matlab zu programmieren?
ich hab eine Matrix [mm] A_1 [/mm] gegeben und soll nun zuerst die LU-zerlegung berechnen, und damit eine neue Matrix [mm] A_2=U_1*L_1 [/mm] definieren. von dieser neuen matrix wieder die LU-zerlegung bilden, LU umdrehen usw.
dieses verfahren sollte dann gegen eine obere dreiecksmatrix konvergieren mit den eigenwerten von [mm] A_1 [/mm] auf der diagonalen.
sobald die differenz von [mm] A_k [/mm] und [mm] A_{k+1} [/mm] kleiner als [mm] 10^{-10} [/mm] ist, soll die schleife verlassen werden und die anzahl der benötigten iterationen sowie die letzten berechnete matrix angezigt werden.
hab das mal so angefangen:
A=[2 -1 0; -1 2 -1; 0 -1 2];[L,U]=lu(A);B=U*L; k=0;
while norm(B-A, 'fro')<= 1D-10;[L,U]=lu(A);A=U*L; k=k+1;
end
das problem ist nur, dass die schleife damit nicht funktioniert. wie muss ich das mit dem A bzw B eingeben,dass davon immer wieder die LU-zerlegung gebildet wird?
viele grüße
ps: schon gefragt:http://www.matheboard.de
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 17:20 So 15.10.2006 | Autor: | matux |
$MATUXTEXT(ueberfaellige_frage)
|
|
|
|