www.vorhilfe.de
- Förderverein -
Der Förderverein.

Gemeinnütziger Verein zur Finanzierung des Projekts Vorhilfe.de.
Hallo Gast!einloggen | registrieren ]
Startseite · Mitglieder · Impressum
Forenbaum
^ Forenbaum
Status VH e.V.
  Status Vereinsforum

Gezeigt werden alle Foren bis zur Tiefe 2

Navigation
 Startseite...
 Suchen
 Impressum
Das Projekt
Server und Internetanbindung werden durch Spenden finanziert.
Organisiert wird das Projekt von unserem Koordinatorenteam.
Hunderte Mitglieder helfen ehrenamtlich in unseren moderierten Foren.
Anbieter der Seite ist der gemeinnützige Verein "Vorhilfe.de e.V.".
Partnerseiten
Weitere Fächer:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
Forum "Matlab" - Lösen Lgs mit LR-Zerlegung
Lösen Lgs mit LR-Zerlegung < Matlab < Mathe-Software < Mathe < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "Matlab"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

Lösen Lgs mit LR-Zerlegung: Frage (überfällig)
Status: (Frage) überfällig Status 
Datum: 08:02 Di 09.05.2017
Autor: Noya

Aufgabe
Ziel der Aufgabe ist Gleichungssysteme zu lösen, verwenden Sie dazu die LR-Zerlegung von letzter Woche ohne Pivotisierung. Desweiteren kommen folgende Teilprogramme hinzu:
(a) Eine Vorwärtssubstitution z = forward (L,b)
(b) Eine Rückwärtssubstitution x = backward(R,z)
(c) Ein Hauptprogramm x=solveLGS(A,b), das alle obigen Programme verwendet, um das lineare Gleichungssystem Ax = b für A [mm] \in \IR^{nxn} [/mm] und b [mm] \in \IR^n [/mm] zu lösen.

Hallo ihr Lieben,

ich bin totaler Neuling in Matlab und habe einige Schwierigkeiten meine Gedanken umzusetzen.


1. LR-Zerlegung
function [L,R]=lr(A)
%Bestimmt LR Zerlegung von A,s.d A=L*R mit L untere Dreiecksmatrix, mit 1 auf der Diagonalen und R %obere Dreiecksmatrix.
R = A;            
[n,m] = size(A);
L = eye(n); %Einheitsmatrix
if n~=m  
    error('Die Matrix ist nicht quadratisch')
end
if R(n,n) == 0 %letzte Element muss extra geprüft werden
    error ('Die Matrix ist nicht ohne Pivotisirung oder Permutation LR-zerlegber');
end
for i=1:n-1
    for k=i+1:n
       if R(i,i) == 0
           error ('Die Matrix ist nicht ohne Pivotisirung oder Permutation LR-zerlegber');
         else
           L(k,i) = R(k,i) / R(i,i);
           for j = i : n
           R(k,j) = R(k,j) - L(k,i)*R(i,j);
           end
       end  
    end    
end

das ist meine Funktion für die LR-Zerlegung. Sie funktioniert fehlerfrei.Sicherlich kann man das verschönern, aber ich verstehe das so.


2.Vorwärtselimination
function [z] = forward( L, b ) %Löse L*z=b
N=size(L); %L [mm] \in [/mm]  z [mm] \in \IR^{NxN} [/mm]
z=1:N; %soll die Dimension von z angeben z [mm] \in \IR^N [/mm]
b=1:N; &soll die Dimension von b angeben  b [mm] \in \IR^N [/mm]

for i=1:N
    z(i)=b(i);
    for k=1:i-1
    z(i)= z(i)-L(i,k)*z(k);
    end
end

Was ist hier falsch?
ich habe mir zur hilfe einfach mal eine 3x3-matrix genommen und z berechnet. so erhalte ich, dass
[mm] z_i=b_i-\sum^{i-1}_{k=1}l_{i,k}*z_k [/mm] und [mm] z_1=b_1 [/mm]


3.Rückwärtselimination
function [x] = backward( R, z ) % Löse z=Rx
n=size(R); %dim von R

for i=n:-1:1 %von n rückwärts bis zur 1.
    x(i)=z(i);
    for k=i+1:n
        x(i)=x(i)-R(i,k)*x(k);
    end
    x(i)=x(i)/R(i,i);
end

Könnt ihr mir helfen was hier falsch ist?
[mm] x_n=\bruch{z_n}{r_{i,i}} [/mm] ist und [mm] x_i=\bruch{1}{r_{i,i}}*(z_i-\sum^{n}_{k=i+1}r_{i,k}*x_k) [/mm]


4.Gesamtes Lösungsverfahren
function x = solveLGS( A, b ) %Löse Ax=b

%A LR-zerlegbar


A=input('Eingabe von A: ');
b=input('Eingabe von b: ');

[L,R]=lr(A)


hier würde ich gerne später drüber diskutieren wenn ich 2. und 3. hinbekommen habe.


Vielen Dank und liebe Grüße

Noya


        
Bezug
Lösen Lgs mit LR-Zerlegung: Fälligkeit abgelaufen
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 08:20 Fr 12.05.2017
Autor: matux

$MATUXTEXT(ueberfaellige_frage)
Bezug
Ansicht: [ geschachtelt ] | ^ Forum "Matlab"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien


^ Seitenanfang ^
ev.vorhilfe.de
[ Startseite | Mitglieder | Impressum ]