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

Programmierung Newton-Verfahren

 

Metallions
Forum-Anfänger

Forum-Anfänger


Beiträge: 12
Anmeldedatum: 23.04.18
Wohnort: Duisburg
Version: ---
     Beitrag Verfasst am: 26.04.2018, 02:43     Titel: Programmierung Newton-Verfahren
  Antworten mit Zitat      
Hallo liebe Matlab-Gemeinde,

ich versuche mir gerade im Selbststudium weiter Matlab beizubringen.
Ich möchte nun gerne das Newton-Verfahren zur Bestimmung eines Maximums programmieren. Leider komme ich aber absolut nicht weiter und vorhandene Themen helfen mir leider auch nicht weiter.

Und zwar habe ich das Folgende (Algorithmus):
Ich habe Durchläufe n = 1,2,3,...
Dann muss F(x_n),F'(x_n) und F''(x_n) berechnet werden.
Die Formel des Newton Verfahren: x_n+1 = x_n - F'(x_n) / F''(x_n)
Falls dann der Betrag (x_n+1 - x_n) < Toleranz tol ist, soll das Verfahren beendet werden.
Sonst gehe zum Durchlauf n+1

Meine Eingabeparameter ist ein Startwert x_1 und die Toleranz tol
z.B.
tol =1.5;
x_1 = 2;

Die Formeln F(x_n),F'(x_n) und F''(x_n) möchte ich in einer gesonderten function-file haben. Die sieht bei mir bisher so aus:

function [F,F1,F2] = meinefunktion(x)
% Bestimmung der Zielfunktionswerte
F = 17*x^2+3x;
F1 = 34*x+3;
F2 = 34;
% Hier: F(x) ist F, F'(x) ist F1 und F''(x) ist F2

end % Ende der Funktion

Nun möchte ich das Newton-Verfahren in einem weiteren function-file (unter Verwendung des oberen function-files) programmieren, aber ich komme zum verrecken nicht drauf, wie ich den oben genannten Algorithmus hinbekomme.
Mir machen vor allem die fortlaufenden Indizes n bei dem x Probleme.

Rückgabe ist optimaler Zielfunktionswert F(x*), n und optimaler Wert x*
Das würde ich so programmieren:
disp(['x*: ',num2str(x)])
disp(['F(x*): ',num2str(F)])
disp(['Durchläufe n: ', num2str(n)])

Ich hoffe ihr könnt mir weiterhelfen.
Ich bedanke mich schon mal jetzt sehr.

Mit freundlichen Grüßen
Private Nachricht senden Benutzer-Profile anzeigen


Metallions
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 12
Anmeldedatum: 23.04.18
Wohnort: Duisburg
Version: ---
     Beitrag Verfasst am: 27.04.2018, 15:13     Titel:
  Antworten mit Zitat      
Hallo,

hat sich erledigt, da ich es selber hinbekommen habe.

Ich danke trotzdem Smile

Schöne Grüße
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.