ich habe als aufgabe zwei Funktionen zu schreiben die zum einen die Vorwärts zum anderen die Rückwärtssubstitution für ein gestaffeltes System realisiert
naja nun weis ich ja wie die Funktion für die einzelnen stellen aussehen
Xn=(1/An,n)*Bn
Xn-1(=1/An-1,n-1)=(Bn-1-An-1,nXn)
X1=1/A1,1*(B1-A1,2X2- ... -A1,nXn)
(Kursiv geschriebenes sind Index)
aber wie soll ich das in die Funktionen bekommen habe an schleifen gedacht aber wie und wo und was gebe ich rein?
in dem zweiten Teil der Aufgabe bekomme ich eine Matrix gegeben die ich dann durch die Funktionen berechnen muss
hoffe es kann mir jemand bei meinem Problem Helfen
schon mal angefangen, das Problem zu implementieren? Im Prinzip lassen sich die Gleichungen fast zeilenweise (mit zwei Schleifen) in MATLAB Code übertragen. Wo hängst Du genau?
Titus
Salomon_san
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 27.05.2009, 15:33
Titel:
also ich habe jetzt mitlerweile die Vorwärtssubstitution fertig
weis aber nicht wie ich die rückwärts mache (habe in der Vorlesung bissel geschlafen sorry)
function x = forsub( A, B )
[m,n] = size(A);
if m~=n,
error('The input matrix, A, is not a square matrix.')
end
x(1) = B(1)/A(1,1);
for i = 2:1:m
x(i) = (B(i)-A(i,1:i-1)*x(1:i-1)')/A(i,i);
end
x = x';
jetzt habe ich noch ein weiteres Problem in der zweiten Aufgabe soll ich eine (n,n)Matrix erstellen die auf der hauptdiagonale überall "1" hat und auf den zwei rechts und links daneben "2" dazu noch ein vektor der an allen stellen bis auf die letzte eine "3" hat an der letzten steht eine "1" habe da schon bissel rumprobiert will aber nciht klappen
for i=20:20:60
e = ones(n);
z= 2* e;
A = spdiags([e,z],[0,1],n,n);
end
for i=20:20:60
b(i,1)=3;
end
B=[b(i,1)];
Erstens ist das effizienter, da nicht in der for-Schleife immer das x wächst, zweitens spart das das x=x' am Ende.
Titus
Salomon_san
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 27.05.2009, 16:44
Titel:
hi,
so habe jetzt auch noch eine funktion für die Rücksubstitution muss nur noch den zweiten Teil der Aufgabe hinbekommen ahbe da aber absolut kein plan wie meine Ansätze stehen ja hier schon
function b=rueck(A,b)
n=size(A,1);
b(n,=b(n,/A(n,n);
for i=n-1:-1:1
b(i,=b(i,-A(i,i+1:n)*b(i+1:n,;
b(i,=b(i,/A(i,i);
end;
habe mir den zweiten Teil der Frage nochmal angeschaut:
Zitat:
in dem zweiten Teil der Aufgabe bekomme ich eine Matrix gegeben die ich dann durch die Funktionen berechnen muss
Tut mir leid, die Frage verstehe ich nicht .
Titus
Einstellungen und Berechtigungen
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.