%Serie 2 Aufgabe 4 Marco Weber function [L,R] = lr(A) A=rand(4) ;n=size(A,1); L=eye(n) for k=1:n-1 %Die letzte Spalte muss nicht mehr betrachte werden, %da sich diese autmoatisch ergibt %Einschub %maximum jeder Spalte suchen [spalt,zeile] %geht, da man immer die Untermatrix betrachtet, %wenn k erhöht wird m=max(abs(A(k:n,k:n)),[],2) %Spaltenvektor mit maximas %relatives verhältnis jedes Spaltenelement mit %dem dazugehörigen Maximum q=abs(A(k:n,k))./m; %grösstes pivotelement wählen (relativ) wählen [qp,p_index]=max(q) %für denn fall, dass Pivot==0 if(qp==0) error(['pivot element ist 0 in Zeile',num2str(k)]); end %den index von qmax neu definieren, %sollte immer an k'ter stelle stehen if (p_index~=k) %zeilenvertauschen A([k,p_index])=A([p_index,k]) %Vertauschungsmatrix anpassen: L([k,p_index],1:k+1)=L([p_index,k],1:k+1) end L(k+1:n,k)=A(k+1:n,k)./A(k,k); A(k+1:n,k:n)=A(k+1:n,k:n) - L(k+1:n,k)*A(k,k:n); end R=A; return