Cholesky-Zerlegung Matlab < Numerik < Hochschule < Mathe < Vorhilfe
|
Aufgabe | function[L]= cholesky(A)
[n,m]=size(A);
L=zeros(n,n);
b=0;
L(1,1)=sqrt(A(1,1));
for k=2:n
for i=k:n
for j=1:k-1
b= b + L(i,j)*L(k-1,j);
end
L(i,k-1)=(A(i,k-1)-b)/L(k-1,k-1);
b=0;
end
for e= 1:k-1
b= b + L(k,e);
end
[mm] L(k,k)=sqrt(A(k,k)-(L(k,e)^2));
[/mm]
b=0;
end |
Es handelt sich um eine Cholesky - Zerlegung mittels Matlab.
Ich saß jetzt ewig an diesem Programm. Mein Tutor meinte, es funktioniere nicht und ich müsse es jetzt nochmal verbessern. Den Fehler finde ich leider nicht.
Könnte mir bitte jemand helfen?
Viele Grüße
Ich habe diese Frage in keinem Forum auf anderen Internetseiten gestellt.
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 10:16 So 01.04.2012 | Autor: | ullim |
Hi,
unter diesem Link ist eine Herleitung angegeben mit Matlab Code
Cholesky
Ansonsten hier auch nochmal ein anderes Codebeispiel.
< +---
function[A]= cholesky(A)
n=size(A);
for i = 1:n
for j = 1:i-1
Summe = A(i,j);
for k = 1:j-1
Summe = Summe - A(i,k)*A(j,k);
end
A(i,j) = Summe / A(j,j);
end
Summe = A(i,i);
for k= 1:i-1
Summe = Summe - A(i,k)*A(i,k);
end
A(i,i)=sqrt(Summe);
end
for i = 1:n
for j = i+1:n
A(i,j) = 0;
end
end
end
---+>
|
|
|
|