Fixpunktiteration < Nichtlineare Gleich. < Numerik < Hochschule < Mathe < Vorhilfe
|
Status: |
(Frage) beantwortet | Datum: | 12:45 Sa 25.07.2015 | Autor: | Jellal |
Hallo Leute, kann mir mal jemand sagen, ob ich richtig liege?
Zur Lösung eines nichtlinearen Gleichungssystems
f(x)=0 mit f: [mm] \IR^{n}-->\IR^{n} [/mm] soll ich eine Fixpunktiterationsvorschrift angeben.
Ich habe jetzt einfach angesetzt mit:
x+f(x)=x
also g(x)=x mit g=x+f(x)
Iterationsvorschrift: [mm] x_{k+1}=g(x_{k})
[/mm]
Anschließend:
Geben Sie den Pseudocode einer Funktion Fixp an, die höchstens N Schritte der Iteration mit Start x0 durchführt und das Ergebnis der Iteration und die Anzahl der tasächlich benötigten Iterationen it zurückgibt.
Verwenden Sie als Abbruchkriterium, ob die Norm des Funktionswertes der aktuellen Iterierten kleiner als tol ist.
f darf ich als fertige Funktion zur Auslesung von f(x) übernehmen.
Mein Code:
Übergebe [mm] f,x_{0},N,tol
[/mm]
for k=1...N
[mm] x_{k}=x_{k-1}+f(x_{k-1})
[/mm]
it=k
if [mm] ||f(x_{k}||
return [mm] x_{k}, [/mm] it
stopp
end
return [mm] x_{k}, [/mm] it
Gruß
Jellal
|
|
|
|
An einem einfachen Beispiel kann man sofort erkennen, dass das Verfahren nicht funktioniert.
[mm] x^2=4 [/mm] hat u.a. die Lösung x=2.
Umformung auf 0: [mm] x^2-4=0.
[/mm]
Somit: f(x) = [mm] x^2-4.
[/mm]
Nun addieren wir auf beiden Seiten x und erhalten die It.Vorschrift
[mm] x_{n+1}= x^2_n-4+x_n.
[/mm]
Start bei [mm] x_0=2,1 [/mm] führt der Reihe nach auf 2,51 4,8101 23,94 ..., also keine gute Idee!
Außerdem soll es sich um ein GleichungsSYSTEM handeln, das auch noch mehrdimensional ist, wie z.B.
[mm] x^2-3x [/mm] = 1
x+y+z = 4
y + [mm] z^2 [/mm] = 2
umgeformt zu
[mm] x^2-3x [/mm] - 1 = 0
x+y+z - 4 = 0
y + [mm] z^2 [/mm] - 2 = 0
mit einer möglichen Lösung x=2, y=1, z=1.
Tipp: Schau dir mal das Newtonsche Näherungsverfahren an.
|
|
|
|
|
Status: |
(Frage) beantwortet | Datum: | 17:25 Sa 25.07.2015 | Autor: | Jellal |
Hey,
also ich sehe gerade in der Musterlösung, dass meine Lösung schon so gewollt ist.
Man soll halt aus f(x)=0 eine Gleichung der Form [mm] \phi(x)=x [/mm] machen und die haben da genau die gleiche genommen.
Das Newton-Verfahren ist ja irgendwie ein Spezifalfall dazu, aber hier nicht gefragt.
Dein Einwand macht natürlich Sinn, weiß ich auch nicht, wie man den aufheben kann.
Es hängt ja auch von der Funktion f ab, ob ein bestimmtes Verfahren konvergiert...
|
|
|
|
|
Es kann sein, dass bei mehrdimensionalen Funktionen das von dir angegebene Verfahren gelegentlich zum Erfolg führt - was ich aber sehr bezweifle - aber im eindimensionalen Fall versagt es (bis auf Spezialfälle) immer.
Unter einer Iteration versteht man tatsächlich die Suche nach einer Lösung der Gleichung [mm] \phi(x)=x, [/mm] wobei man einen Wert [mm] x_n [/mm] in [mm] \phi(x) [/mm] einsetzt und das Ergebnis [mm] x_{n+1} [/mm] nennt, das man dann wieder einsetzt usw. Wenn das Verfahren konvergiert (also die Folge [mm] x_n), [/mm] ist am Ende [mm] \phi(x_n)=x_{n+1}=x_n [/mm] eine gesuchte Lösung.
Bei meinem Beispiel: [mm] x_{n+1}=\bruch{x^2_n+4}{2x_n} [/mm] (Heron-Verfahren für [mm] \wurzel{2}) [/mm] erhält man für [mm] x_0=1 [/mm] der Reihe nach
1 2,5 2,05 2,00060975... 2,000000093 ...
also rasche Konvergenz gegen 2 (die Anzahl der Nullen hinter dem Komma verdoppelt sich mindestens nach jedem Schritt).
Versuche mal, mit deinem Verfahren überhaupt irgendeine einfache Gleichung zu lösen (aber nicht sofort die Lösung einsetzen, nur einen Näherungswert).
Beim obigen Verfahren kannst du sogar mit [mm] x_0 [/mm] = 1000 starten, du erhältst
1000 500,002 250,005 125,0105 62,521 31,2926 15,71 7,98 4,24 2,59 2,067 2,0011 2,000000307 ...
|
|
|
|