WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Vorwärts- /Rückwärtssubstitution

 

Salomon_san

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.05.2009, 14:16     Titel: Vorwärts- /Rückwärtssubstitution
  Antworten mit Zitat      
Hallo zusammen,

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

Danke schon einmal im vorraus

Grüße Salomon_san
[/i]


Titus
Forum-Meister

Forum-Meister


Beiträge: 871
Anmeldedatum: 19.07.07
Wohnort: Aachen
Version: ---
     Beitrag Verfasst am: 27.05.2009, 10:01     Titel:
  Antworten mit Zitat      
Hi,

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
Private Nachricht senden Benutzer-Profile anzeigen
 
Salomon_san

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.05.2009, 15:33     Titel:
  Antworten mit Zitat      
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)];

x=forsub(A,B);
x
 
Titus
Forum-Meister

Forum-Meister


Beiträge: 871
Anmeldedatum: 19.07.07
Wohnort: Aachen
Version: ---
     Beitrag Verfasst am: 27.05.2009, 15:55     Titel:
  Antworten mit Zitat      
Hallo,

sieht doch gut aus (also forsub)! Das einzige:
vor die Zeile x(1)= ... würde ich die Größe von x festlegen
Code:
x = zeros(n,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
Private Nachricht senden Benutzer-Profile anzeigen
 
Salomon_san

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.05.2009, 16:44     Titel:
  Antworten mit Zitat      
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,Smile=b(n,Smile/A(n,n);

for i=n-1:-1:1
b(i,Smile=b(i,Smile-A(i,i+1:n)*b(i+1:n,Smile;
b(i,Smile=b(i,Smile/A(i,i);
end;

lg
 
Salomon_san

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.05.2009, 16:51     Titel:
  Antworten mit Zitat      
Code:
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;
 
Titus
Forum-Meister

Forum-Meister


Beiträge: 871
Anmeldedatum: 19.07.07
Wohnort: Aachen
Version: ---
     Beitrag Verfasst am: 29.05.2009, 10:44     Titel:
  Antworten mit Zitat      
Hallo,

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 Sad.

Titus
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

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.