Mit der von mir erstellten Funktion erhalte ich aber nur die Lösung (x1 = 0.171334, x2 =0.0213218), unabhängig davon, welche Startwerte ich für x0 wähle.
Hat jemand eine Idee, was ich falsch mache?
Ach ja, die Rückgabe von fx stimmt glaube ich auch noch nicht, aber damit befasse ich mich dann, wenn ich alle Nullstellen habe.
Wenn du das als Startwert in deine Funktion fütterst, kommt auch wieder dasselbe heraus. Meine Vermutung ist, dass die erste Lösung einfach einen relativ großen "Einzugsbereich" hat, was die Konvergenz zu dieser Lösung angeht.
Vielleicht hilft es ja, wenn du das ganze mal plottest.
Danke erstmal für die schnelle Antwort.
Tatsächlich, wenn ich die exakte Nullstelle einsetze, kommen auch die fehlenden Nullstellen raus.
Zu deiner Erläuterung mit dem Einzugsbereich habe ich allerdings noch eine Frage: Wenn ich als Startwert x0 = (2, 5) wähle, dann müsste ja trotz des Einzugsbereiches die Nullstelle (1.608653898076899, 4.844885958753324) herauskommen, oder? Sonst würde das Verfahren diese Lösung ja einfach überspringen.
Hast Du ausserdem eine Idee, wie ich das ganze so plotten kann, dass es mir das Problem ersichtlich macht? Das habe ich leider nicht ganz auf die Reihe gekriegt.
Danke für Deine Hilfe. Ich glaube ich sehe das Problem mittlerweile deutlicher.
Ich hoffe, ich habe Dich richtig verstanden und fasse nochmals zusammen:
- Meine Matlab-Funktion stimmt soweit und funktioniert wie vorgesehen
- Daran, dass man die fehlenden Nullstellen nur durch einen sehr exakt gewählten Startwert erreichen kann, kann man mit dem Newton-Verfahren nichts ändern. Das liegt in der Gegebenheit der Aufgabe.
Danke für ein kurzes Feedback und/oder eine Korrektur!
ja, das wäre meine Interpretation. Natürlich ist nicht garantiert, dass die richtig ist :)
Wenn jedoch ein Fehler in der Funktion wäre, würde sie wohl nie zu einer richtigen Lösung konvergieren.
Fehler gefunden - ich habe bei der Ableitung ein Minus vergessen !
Nächstes mal kontrolliere ich die offensichtlichen Sachen als erstes
Ansonsten funktioniert die Funktion jetzt wie gewünscht!
Gruss
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.