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

Zwei Größen ändern sich in EINER SCHLEIFE

 

Clemensum
Forum-Newbie

Forum-Newbie


Beiträge: 1
Anmeldedatum: 15.12.15
Wohnort: Wien
Version: ---
     Beitrag Verfasst am: 15.12.2015, 21:40     Titel: Zwei Größen ändern sich in EINER SCHLEIFE
  Antworten mit Zitat      
Hallo liebe Mat_Lab Liebhaber, bin neu hier und dankbar, dass es so hilfreiche Leute wie euch gibt! Smile

Wir sollen in Matlab das Sekantenverfahren programmieren und damit dann die Nullstellen der Funktion x-exp(-x) schnell ausrechnen lassen.

Als erstes habe ich eine Funktion mit drei Eingabewerten (die zu betrachtende Funktion und zwei anfängliche Schätzwerte der Nullstellen bzw. die Punkte die die Sekante verbinden soll) und dann einen Ausgabewert (naja, die approximative Koordinate für die Nullstelle)

Code:
function y = Sekanten(u,x0,x1);

f = inline(u,'x');

i=0;
while i<=20 %ab hier hab ich das Problem: In der Schleife ändern sich gleichzeitig ZWEI Größen; immer die zwei neuen Sekantenverbindungspunkte. Wie schaffe ich es, dass sie sich gleichzeitg ändern. Beim Newton-Verfahren musste ich nur eine Größe ändern, das hat prima geklappt und das Programm hat 20 Annäherungen berechnet und die letzte davon wie erwartet ausgegeben!

x = x-(x-y)/(f(x)-f(y))*f(x); %das y ist in der Rekursion der Schätzwert davor! Aber wie man das y definiert, fällt mir leider nicht ein, weil es ja wiederum durch eine zweiwertige Rekursion definiert werden müsste. Wie handhabt man so etwas?
i = i+1;
end
y=x;
end
 

Freu mich sehr auf eure Tipps! Smile
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 16.12.2015, 11:26     Titel:
  Antworten mit Zitat      
Hallo,

das "y = x" vor das "x = ..." in die Schleife ziehen.

Es macht den Code übrigens verständlicher, wenn man sinnvolle Variablennamen wählt, z.B. xnew und xold.
Denke auch daran, dass du die Eingabeargument x0 und x1 der Funktion sinnvoll verwendest.

Grüße,
Harald
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 - 2025 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.