Plotter Newtonverfahren < Mathe-Software < Mathe < Vorhilfe
|
Status: |
(Frage) beantwortet | Datum: | 13:28 So 06.12.2009 | Autor: | repingi |
Hallo,
ich suche für das Newtonverfahren (Zur Bestimmung von Nullstellen) eine Art Plotter, in den man den Startwert, die Funktion und ihre erste Ableitung eingeben kann. Das Programm sollte dann alle sich der Nullstelle nähernden Werte rausgeben.
Ich bin bis jetzt nur darauf gestoßen, wie man sich das für jeden Startwert einzeln und erneut selber programmieren kann. Dies ist allerdings unmöglich, wenn man viele Durchläufe betrachten möchte.
Ich wäre über Tipps dankbar.
Ich habe diese Frage in keinem Forum auf anderen Internetseiten gestellt.
Viele Grüße, Repingi ;)
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 13:43 So 06.12.2009 | Autor: | Denny22 |
> Hallo,
Hallo
> ich suche für das Newtonverfahren (Zur Bestimmung von
> Nullstellen) eine Art Plotter, in den man den Startwert,
> die Funktion und ihre erste Ableitung eingeben kann. Das
> Programm sollte dann alle sich der Nullstelle nähernden
> Werte rausgeben.
Mit welcher Software arbeitest Du denn? Möchtest Du Dir eine Funktion programmieren, die diesen Plot erzeugt? Wenn ja, dann benötigen wir Informationen zu Deiner verwendeten Software.
Kurzum könntest Du alle Iterationswerte, die Dir das Newton-Verfahren liefert in einem Vektor abspeichern. Du könntest dann die Funktion z.B. [mm] $f:\IR\rightarrow\IR$ [/mm] in einer Umgebung um die Nullstelle plotten und anschließend die Punkte Deines obigen Vektors (mit den Approximationen der Nullstelle) durch Marker (Markierungen) in den Plot auf die x-Achse plotten. Das nur als Grundidee. Beachte jedoch: Das Newton-Verfahren konvergiert nur lokal (quadratisch), d.h. ob das Verfahren letztlich tatsächlich konvergiert, hängt von der Wahl des Startwertes ab.
> Ich bin bis jetzt nur darauf gestoßen, wie man sich das
> für jeden Startwert einzeln und erneut selber
> programmieren kann.
"Für jeden Startwert einzel" ist auch sinnvoll, da es nicht notwendig konvergiert. Für 2-3 Startwerte könnte man den Vektor mit den berechneten Iterationswerten auch noch in eine Abbildung packen (wenn Du die Punkte unterschiedlich markierst). Aber für beliebig viele Startwerte diese erzeugten Folgen in ein und dieselbe Abbildung zu plotten (was Du, wie ich es verstanden haben, vor hast) ist nicht sehr sinnvoll!
>Dies ist allerdings unmöglich, wenn
> man viele Durchläufe betrachten möchte.
Viele Durchläufe mit ein und demselben Startwert? Wieso sollte das nicht funktionieren?
> Ich wäre über Tipps dankbar.
> Ich habe diese Frage in keinem Forum auf anderen
> Internetseiten gestellt.
>
> Viele Grüße, Repingi ;)
Gruß
Denny
|
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 16:12 So 06.12.2009 | Autor: | Frasier |
Hallo Repingi,
geht es nur um die Ausgabe der [mm] x_n?
[/mm]
Das müsste sich doch schnell in jeder Programmiersprache realisieren lassen.
Beispiel [mm] f(x)=x^2-2x-5 [/mm] in Matlab:
function newtonverfahren
clc;
format long;
function ret=f(x)
ret=x.^2-2.*x-5;
end
function ret=df(x)
ret=2*x-2;
end
x(1)=1.1;
for n=1:10
x(n+1)=x(n)-f(x(n))/df(x(n));
end
x'
end
liefert:
ans =
1.100000000000000
31.049999999999976
16.124833610648906
8.760766094792853
5.266942822985190
3.836550905279009
3.475897931551059
3.449630579048097
3.449489746831718
3.449489742783178
3.449489742783178
geht gegen 1+Wurzel(6)
Falls du kein Matlab hast geht das auch so ähnlich in Octave, das ist kostenlos und du könntest darin auch plotten.
Eine Lösung in Excel habe ich bei Google auch gefunden.
lg
F.
|
|
|
|