Nullstellen finden(Newton?) |
06.12.2008, 15:08 | Pfirsich | Auf diesen Beitrag antworten » | |||||
Nullstellen finden(Newton?) ich soll von einer gleichung nullstellen finden und dabei das newton verfahren anwenden, bzw laut google ist es wohl eine abgewandelte form: Xn= Xn-1 - f(Xn-1)/f ' (Xn-1) Leider habe ich keine ahnung wie man diese Formel anwenden kann. Also klar, ableitung kann ich und ich denke für jedes x der funktion/ableitung Setzte ich dann Xn-1 ein, aber wie komme ich auf n-1 (für x kann ich ja alles einsetzten, aber ich weiß nicht was n bedeutet) Ich hoffe mir kann jemand helfen, lieben Gruß, Pfirsich |
|||||||
06.12.2008, 15:16 | klarsoweit | Auf diesen Beitrag antworten » | |||||
RE: Nullstellen finden(Newton?) n steht für die Anzahl der Iterationsschritte. Du mußt für die Iteration einen Startwert x_0 vorgeben, der schon einigermaßen in der Nähe der vermuteten Nullstelle liegt. |
|||||||
06.12.2008, 15:39 | Pfirsich | Auf diesen Beitrag antworten » | |||||
Ja, da bin ich mir auch nicht sicher. hatte jetzt zb für x=1 den Wert -6 raus und für x=2 den Wert 0,58. Da zwischen 0,58 und - 6 null liegt müsste für einen x wert zwischen 1 und 2 null rauskommen oder? Also hab ich versuchgt näher dranzukommen: x=1.8 ergibt -0.32 und x=1.9 ergibt 0,17. Kann ich jetzt 1,8 oder 1,9 als startwert nehmen?....Aber die Anzahl der iterationsschritte kann ich ja nicht vorher oder? |
|||||||
06.12.2008, 15:46 | tigerbine | Auf diesen Beitrag antworten » | |||||
Wie lautet denn die Funktion? |
|||||||
06.12.2008, 15:59 | Pfirsich | Auf diesen Beitrag antworten » | |||||
f(x)= 2+ (x-3)^3 * Wurzel(x) |
|||||||
06.12.2008, 16:07 | tigerbine | Auf diesen Beitrag antworten » | |||||
Klarsoweit sagte schon, dass man "in der Nähe" der Nullstelle starten sollte. Den Wert -6 verstehe ich nun nicht so ganz, aber du siehst schon mal das es (mind) 2 Nullstellen gibt. |
|||||||
Anzeige | |||||||
|
|||||||
06.12.2008, 16:16 | Pfirsich | Auf diesen Beitrag antworten » | |||||
Wenn man in die gleichung 1 einsetzt kommt doch -6 raus? Dein Graph bestätig meine annahme zu der einen nullstelle, die andere liegt wie es auch zu meiner wertetabelle passt zwischen null und eins. Ich hab aber immer noch nicht verstanden wie ich die genaue nullstelle ausrechne.kann ich schreiben: Xn= Xn-1 - f(Xn-1)/f ' (Xn-1) 1,9 = 1,9-1 - f(1,9-1) / f ' (1,9 - 1) oder entspricht 1,9 nicht Xn sondern nur x?? |
|||||||
06.12.2008, 16:22 | tigerbine | Auf diesen Beitrag antworten » | |||||
Du kannst die Nullstelle nicht ausrechnen, sondern nur approximieren. Du legst im Startwert eine Tangente an die Funktion und bestimmst deren Nullstelle. Das ist deine nächste Näherung. http://de.wikipedia.org/wiki/Newton-Verf...tion_am_Graphen Wo ist denn deine Funktion definiert? Kann man also die erste Nullstelle mit dem Verfahren berechnen? Wie sieht es mit der zweiten aus? `
|
|||||||
06.12.2008, 16:32 | Pfirsich | Auf diesen Beitrag antworten » | |||||
achso danke, das war mir auch noch nicht klar. Ich denke die funktion hat einen definitionsbereich von 0 bis plus unendlich für alle reellen zahlen. aber ich hab keine was das damit zu tun hat ob ich die nullstellen mit diesem verfahren berechnen kann... Als startwert würde ich wie gesagt 1,9 nehmen. Da muss ich dann eine Tangente anlegen?? Benutze ich dann garnicht die unten genannte gleichung? Und ehrlich gesagt verstehe ich das was bei dir unter code steht nicht, zb was unter punkt 2 und 3 steht Edit: Achso und ich muss das newton verfahren nehmen sonst würde das nicht in der aufgabe stehen, falls das gerade nicht deutlich rüber kam Was bei wikipedia steht ist irgendwie eine andere formel, da wird mit xn+1 und nicht mit xn-1 gerechnet...ist wohl irgendwie umgestellt |
|||||||
06.12.2008, 16:50 | Felix | Auf diesen Beitrag antworten » | |||||
Was du hier gemacht hast, ist sicher falsch denn soweit ich weiß, ist es nicht sondern . Sei := 1,9. Dann ergibt sich : . Das berechnest du und du hast einen Wert für x1. Dann berechnest du x2 nach dem selben Verfahren und so weiter, je nachdem welche Genaugikeit gewünscht ist. @ Edit: Statt kann man natürlich auch schreiben. |
|||||||
06.12.2008, 16:54 | tigerbine | Auf diesen Beitrag antworten » | |||||
2:, 3: sind nur Infos für den Benutzer. Das Programm muss doch die Funktion und Ableitung erstmal kennen. wichtig ist nur die Tabelle für dich. Beim Newton Verfahren liegt der Haken im Kleingedruckten. Es konvergiert nur in einer Umgebung der Nullstelle. Die Umgebung für deine zweite ist recht groß, die für die erste eher klein. Wir müssen schon einmal so nah dran sein, dass die Tangente eine pos. Nullstelle hat, denn neg Werte können wir nicht mehr in die Iteration einsetzen und das Verfahren bricht ab. |
|||||||
06.12.2008, 17:02 | Pfirsich | Auf diesen Beitrag antworten » | |||||
@ Felix Danke, ich meinte die Formel auch so wie du es aufgeschrieben hast, aber ich hab das programm dafür nicht mehr. Rechnet man denn tatsächlich mal n+1 bzw n-1 oder ist das nur eine formale sache? In deinem Beispiel konnte ich das jedenfalls nicht erkennen. Welche zahlen nehme ich denn zu berechnung von x2? ich muss sicher irgendwas an der 1,9 ändern? @tigerbine: achso, wusste nicht dass es sich um ein programm handelt. Die tabelle verstehe ich aber ehrlich gesagt auch nicht. Also zb wie man von x_n+1 auf x_n kommt |
|||||||
06.12.2008, 17:12 | tigerbine | Auf diesen Beitrag antworten » | |||||
Nein, die Tabelle tabelliert die Werte für die Rekursionformel: Deswegen muss man ja auch einen Startwert eingeben. In der letzten Spalte steht die Differenz von |
|||||||
06.12.2008, 17:15 | Pfirsich | Auf diesen Beitrag antworten » | |||||
Hm ok versteh ich nicht Wofür braucht man denn den delta wert? Der komtm doch in der formel nicht vor! |
|||||||
06.12.2008, 17:19 | tigerbine | Auf diesen Beitrag antworten » | |||||
Wann willst du denn aufhören zu iterieren? |
|||||||
06.12.2008, 17:26 | Pfirsich | Auf diesen Beitrag antworten » | |||||
hm das ist nicht vorgegeben aber ich denk mal ich brauch den taschenrechner und der kann maximal 10 stellen anzeigen achso, das war jetzt drauf bezogen ja klar bei null...aber die letzten reihen sind identisch...? |
|||||||
06.12.2008, 17:27 | Felix | Auf diesen Beitrag antworten » | |||||
Naja Wenn du für 1,9 einsetzt und das ausrechnest dann bekommst du einen Wert für , den du dann einsetzt und ausrechnest um zu bekommen es geht so weiter und die Werte die du bekommst, werden immer näher an der Nullstelle liegen(vorrausgesetzt, dein Startwert ist nah genug gewählt) lg |
|||||||
06.12.2008, 17:34 | Pfirsich | Auf diesen Beitrag antworten » | |||||
@Felix: Dankeschön, jetzt weiß ich zumindest was ich machen muss (was ja das wichtigste ist). Die Formel selber mit x und n usw versteh ich noch nicht, aber ich hab die hoffnung noch nicht aufgegeben. |
|||||||
06.12.2008, 17:34 | tigerbine | Auf diesen Beitrag antworten » | |||||
Das liegt nur daan, dass nicht mehr Stellen ausgegeben werden. Intern stimmt die Genauigkeit erst im letzten Schritt. |
|||||||
06.12.2008, 17:39 | tigerbine | Auf diesen Beitrag antworten » | |||||
Die erste Nullstelle:
|
|||||||
06.12.2008, 21:16 | Pfirsich | Auf diesen Beitrag antworten » | |||||
Ob ihrs glaubt oder nicht ich sitze immer noch an dieser aufgabe ich habe jetzt mit folgendem gerechnet: x_0=1,889 x_1= 1,889 - ( f(1,889) / f' (1,889)) = 1,863897996 x_2= X_1 - ( f(x_1) / f'(x_1)) = 1,86431804 An diesem punkt ist mir dann aufgefallen, dass das ergebnis von der rechnung ziemlich lange bräuchte um null zu werden bzw, dass es überhaupt nicht das ziel ist, dass null rauskommt. Jetzt ist die Frage: Was ist das ziel? Muss ich das ergebnis jeder rechnung in die funktion einsetzten um zu sehen wie nah es an der 0 ist da wäre ausprobieren statt lange zu rechnen doch fast schneller) oder kann man das direkt mit in die formel einbinden? Lieben Gruß, Pfirsich Edit: Das ist doch das, was du tigerbine eben erklärt hast oder? Ich muss einfach x_2 - x_1 rechnen und hab dann das raus, was bei dir delta heißt (in meinem fall 4,20044 * 10 ^(-4) Edit2: Meint ihr das reicht? Für x_3 hab ich nämlich den gleichen wert wie für x_2 raus. Mein Taschenrechner hat nunmal nicht mehr stellen, aber ein wert von ~ 0,0004 als nullstelle ist nicht sehr genau |
|||||||
07.12.2008, 01:35 | tigerbine | Auf diesen Beitrag antworten » | |||||
1. Das delta sagt, wie weit x_n+1 und x_n auseinanderliegen. 2. Die Iterationsfolge hat ja zum Ziel x_n+1=x_n 3. Das wird in den meisten Fällen nicht 100% übereinstimmen, also muss man entscheiden, wie genau man es gerne hätte. Wenn deine TR genauigkeit erreicht ist, ist eben Schluss. Da wir x berechnen. 4. Je nachdem wie Steil die Funktion in der Nullstelle ist, kann es natürlich sein, dass wir im zugehörten Funktionswertefall viel weiter von der gewünschten "Null" weg sind. Damit müssen wir leben. |
|||||||
07.12.2008, 02:55 | mYthos | Auf diesen Beitrag antworten » | |||||
Zumindest 8 Stellen hat der TR, die Nullen vor der eigentlichen Ziffernfolge zählen nicht. 0,0004 stimmt auf keinen Fall, du hättest 0,0055 erreichen müssen. Vom Startwert 0,00000001 (0 geht nicht, weil sonst in den Nenner 0 kommt) ausgehend, ist nach 6 Iterationsschritten ein Wert erreicht, der sich nicht mehr ändert. Du wirst wohl noch wo einen Fehler drin haben. [attach]9329[/attach] mY+ |
|||||||
07.12.2008, 03:03 | tigerbine | Auf diesen Beitrag antworten » | |||||
Gruß an den anderen Schlaflosen. Ich glaube der Threadsteller meint den Funktionswert y und nicht den x-Wert der Nullstelle. Was spukt Excel denn da aus (wenn wir uns ein paar mehr stellen anschauen) |
|||||||
07.12.2008, 13:17 | Pfirsich | Auf diesen Beitrag antworten » | |||||
Ja, meiner hat 10 Stellen und zeigt damit 4,20044*10^(-4), aber das Problem der zuwenigen stellen liegt ja nicht hier sondern in der vorherigen rechnung, da ich für X_1und X_2 keine genaueren als 10 stellige werte bekomme Der Wert 4,20044*10^(-4) ist ja die Differenz von x_2 und X_1 und sollte im besten Fall null sein. Wie schreibt man das dann? Ich muss später nämlich mit nullstellen, also dem x wert weiterrechnen. Sage ich dann x1=X_2? Also, dass ich eine nullstelle bei einem x wert von in meinem fall 1,864318104 hab? Edit: Den wert für X_6=5.548247322*10^-3 hab ich auch, aber das ist die erste nullstelle, oben hab ich die ganze zeit die zweite berechnet |
|||||||
07.12.2008, 13:37 | tigerbine | Auf diesen Beitrag antworten » | |||||
Du sagt, dass die nullstelle ungefähr diesem Wert entspricht. Gekennzeichnet durch |
|||||||
07.12.2008, 13:53 | Pfirsich | Auf diesen Beitrag antworten » | |||||
Danke |
|||||||
07.12.2008, 14:02 | mYthos | Auf diesen Beitrag antworten » | |||||
Es stimmt, dass die Differenz zweier nahezu gleicher Werte immer ungenauer wird, je mehr sich die beiden angleichen, das ist eine Eigenheit aller arithmetischen Rechenprogramme, die intern meistens mit einer festen Stellenanzahl rechnen. Aber diese Differenz dient ja nur zum Ausllösen der Abbruchbedingung und mit dieser wird ja nicht weitergerechnet. Da dies ein absoluter Fehler ist, kann man das umgehen, indem man auch den relativen Fehler berechnet, welcher ebenfalls gegen Null gehen soll. Im Excel-Sheet ist auch eine Spalte f(x)/f '(x) zu sehen, die die Konvergenz anzeigt. Auch dieser Wert soll immer kleiner werden. Dein x muss also ungeachtet der von dir berechneten Differenzen auf jeden Fall zumindest den Wert 0,00554825 annehmen. Für die zweite Nullstelle gelten die gerade besprochenen Verhältnisse analog! In Excel ziehe ich die Formelzeile so lange herunter, bis bei x_(n+1) zwei gleiche Zahlenwerte (innerhalb der geforderten Dezimalstellenzahl) erscheinen, das war's. @bine Excel kann in diesem Blatt maximal 17 Dezimalstellen anzeigen (wenn man höher formatiert, kommen ab der 18. Stelle lauter Nullen), x = 0,00554825066804319000 ergibt sich bereits nach der 8. Iteration. Man sieht, dass die Konvergenz recht gut ist. [attach]9335[/attach] mY+ |
|||||||
07.12.2008, 14:05 | tigerbine | Auf diesen Beitrag antworten » | |||||
Hallo mYthos, ja die Konvergenz ist hier gut. Die Ausdrucksweise des Threadstellers ist eben etwas verwirrend, da nicht so ganz klar wurde, worauf er sich nun bezog. |
|||||||
07.12.2008, 14:16 | Pfirsich | Auf diesen Beitrag antworten » | |||||
Dazu hab ich nochmal ne Frage. Und zwar war die uns vorgegebene Forml die erstere, also x_n= x_n-1 usw aber wie ich es bisher aufgeschrieben hab, bzw wie es bei euch in den Tabellen stand war doch die 2. formel oder? Wie würde das mit der ersten gehen? Der startwert war ja immer X_0, also n=0. Wäre damit x_n-1 nicht x_-1?? also: X_n= X_n-1 - .... x_0 = 1,9 1,9 = X_n-1 - (f (x_n - 1)) ... aber wie kommt man hier auf x_n-1??? man rechnet ja nicht einfach 1,9 -1, da man in der folgenden, umgestellten rechnung auch nicht einach 1,9 + 1 rechnet sondern damit ja nur der nächste schritt gemeint, ist aber ich kann ja schlecht einen schritt zurück gehen x_n+1 = X_n... x_0=1,9 x_1= 1,9 - (f(1,9)/ f ' (1,9) Edit: Danke, das mit Excel werde ich mir merken. Im moment sollte ich es zwar nicht benutzen, da wir das in der Klausur auch nicht können, aber in zukunft werden wir das sicher auch nutzen. |
|||||||
07.12.2008, 14:17 | tigerbine | Auf diesen Beitrag antworten » | |||||
Das ist nun doch völlig egal. Bei uns heißt der Startwert eben x0, bei dir dann x_-1 Oder ihr nehmt n als natrürliche Zahl an, die ja mit der Eins beginnen, und kommt somit auf x0. Vom Ergebnis macht das keinen Unterschied. |
|||||||
07.12.2008, 15:35 | Pfirsich | Auf diesen Beitrag antworten » | |||||
Nein, egal ist das nicht. Es wäre einfach falsch. Ich darf nämlich nicht die eine formel hinschreiben und dabei die andere verwenden. Mein problem ist einfach, dass ich nicht weiß, wie dann die Tabelle aussieht, bei euch steht doch links in der spalte immr n und darunter dann 0,1,2 usw, wie würde das bei mir dann aussehen und vor allem wir rechnet man das dann? du meintest ja gerade schon, anstatt x_0= 1,9 müsste der Startwert bei mir mit X_-1=1,9 bezeichnet werden. Oder meinst du x_n-1? WEil x_-1 als solches kommt ja in der formel nicht vor |
|||||||
07.12.2008, 15:37 | tigerbine | Auf diesen Beitrag antworten » | |||||
Du musst es wissen. Ich bleibe bei meiner Aussage. Es ist entscheidend wie man von einem Wert zum anderen kommt, und nicht wie ich den Index nenne. Ferner habe ich gefragt, was du für n nehmen darfst. Ist es zuviel verlangt, konkrete Fragen zu beantworten? |
|||||||
07.12.2008, 15:50 | Pfirsich | Auf diesen Beitrag antworten » | |||||
Entschuldige, für mich hörte sich die frage nach n wie eine aussage an. Ich hoffe, ich habe deine fragerichtig verstanden: Auf n komme ich in dem ich gucke welche zahl möglichst nahe an null liegt. Das mache ich durch ausprobieren, in dem ich zuerest eine wertetabelel von 1bis ca 5 anlege und dann weiter ausprobiere. Laut unserer lehrerin solllen wir folgendes machen, was ich aber nicht verstehe: "Der startpunkt soll (x_0, f(X_0)) sein, welcher vorzugsweise nah an eienr nullstelle liegt. Mit der iterationsmethode rechnet man x_1 aus, indem man die nullstelle der tangente im startpunkt nimmt." Ich denke mal damit ist aber einfach nur die formel gemeint |
|||||||
07.12.2008, 16:00 | tigerbine | Auf diesen Beitrag antworten » | |||||
Nein, ich meinte aus welcher MENGE n stammen darf. SOLL n eine NATÜRLICHE ZAHL sein, so ist n=1 der kleinste Wert, so kommst du auf x0 als Startwert. Wir haben die nat. Erweitert um 0 genommen, kommen somit auch mit unserer Formel dazu den Startwert x0 zu nennen. Das einzige was sich ändert ist die Bezeichnung in der n-spalte. Wir schreiben 0,1,2, du eben 1,2,3. die WERTE sind GLEICH. |
|||||||
07.12.2008, 16:10 | Pfirsich | Auf diesen Beitrag antworten » | |||||
Achso sorry, das mit den natürlichen zahlen hab ich noch nie verstanden. Wären also kommazahlen bzw brüche keine natürlichen zahlen, richtig? Aber ich denke für n soll das schon so sein, wie du sagst. Mein problem hab ich übrigens gefunden, ich gehöre nämlich leider zu den leuten denen -1 + 1 rechnen schwer fällt. So ergeben die formeln natürlich sinn. Ich dachte nur bis gerade noch, ich müsste n weiter in minus rutschen lassen, also n spalte: -1, -2,...und naja ist ja auch egal, hat ja eh keinen sinn ergeben. Dankeschön nochmal für deine mühe : und entschuldigung für meine dummen blockaden |
|||||||
07.12.2008, 16:11 | tigerbine | Auf diesen Beitrag antworten » | |||||
Schönen Sonntag. |
|||||||
07.12.2008, 16:33 | Airblader | Auf diesen Beitrag antworten » | |||||
Achtung, es kann sehr wohl so sein, denn air |
|||||||
07.12.2008, 16:38 | tigerbine | Auf diesen Beitrag antworten » | |||||
Obwohl das links schon ein Bruch ist, nur eben nicht vollständig gekürzt. Also kommt die Linke Seite (Darstellung) nicht in den nat. Zahlen vor. |
|||||||
07.12.2008, 16:43 | Airblader | Auf diesen Beitrag antworten » | |||||
Das wäre aber schon eine sehr tiefgehende Ansicht. In aller Regel würde man durchaus als 'richtige Aussage' durchgehen lassen. Wobei mMn doch beide das völlig gleiche Objekt beschreiben; nicht unterscheidbar sind ... also kann man überhaupt 'richtigerweise' so penibel sein? air |
|
Verwandte Themen
Die Beliebtesten » |
Die Größten » |
Die Neuesten » |
|