Kapitel 2 Lineare und nichtlineare Gleichungen - Institut für ...
Kapitel 2 Lineare und nichtlineare Gleichungen - Institut für ...
Kapitel 2 Lineare und nichtlineare Gleichungen - Institut für ...
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
2.1 <strong>Lineare</strong> Gleichungssysteme 43<br />
Dies ergibt:<br />
j−1<br />
<br />
i = j : a jj = ljj 2 + ljk 2 bzw. l jj :=<br />
k=1<br />
j−1<br />
<br />
i>j: a ij = l ij l jj + l ik l jk bzw. l ij :=<br />
k=1<br />
j−1<br />
<br />
a jj −<br />
k=1<br />
j−1<br />
<br />
a ij −<br />
k=1<br />
l 2 jk 1/2,<br />
l ik l jk<br />
l jj .<br />
Wegen dieser <strong>Gleichungen</strong> kann man sukzessive spalten- oder zeilenweise die Matrix L<br />
berechnen. So lautet z. B. eine Spaltenversion des resultierenden Cholesky-Verfahrens:<br />
• Input: Gegeben sei die symmetrische, positiv definite Matrix A =(a ij ) ∈ R n×n .<br />
Benutzt wird nur die untere Hälfte von A, d. h. Elemente a ij mit i ≥ j.<br />
• Für j =1,...,n:<br />
l jj := (a jj − j−1<br />
k=1 l2 jk )1/2 .<br />
Für i = j +1,...,n:<br />
l ij := (a ij − j−1<br />
k=1 l ikl jk )/l jj .<br />
• Output: Nur die untere Hälfte von L (einschließlich der Diagonalen) ist definiert.<br />
Bevor das Pivotelement durch Wurzelziehen gebildet wird, prüft man natürlich, ob<br />
a kk − k−1<br />
j=1 a2 kj ≥ ist, wobei >0 eine vorgegebene kleine Zahl ist. Eine Umsetzung8<br />
in eine MATLAB-Funktion ist die folgende (wobei wir auf den oben angegebenen Test<br />
verzichten):<br />
function L=Chol(A);<br />
%****************************************************<br />
%Input-Parameter:<br />
% A n x n symmerische, positiv definite Matrix<br />
%Output-Parameter:<br />
% L n x n untere Dreiecksmatrix mit positiven<br />
% Diagonalelementen <strong>und</strong> A=L*L’.<br />
%****************************************************<br />
[n,n]=size(A);<br />
L=zeros(n); s=zeros(n,1);<br />
for j=1:n<br />
s(j:n)=A(j:n,j);<br />
for k=1:j-1<br />
s(j:n)=s(j:n)-L(j:n,k)*L(j,k);<br />
end<br />
% s(i)=A(i,j)-sum_1^(j-1)L(i,k)L(j,k), i=j,...,n<br />
L(j:n,j)=s(j:n)/sqrt(s(j));<br />
end<br />
8 Siehe C, F. van Loan (1997, S. 245).