Benutzer-Werkzeuge

Webseiten-Werkzeuge


schule:nullstellen

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
schule:nullstellen [2014-06-18 17:03] – [Python-Quelltext] marco.bakeraschule:nullstellen [2017-04-19 08:39] (aktuell) – Externe Bearbeitung 127.0.0.1
Zeile 1: Zeile 1:
 ====== Nullstellen ====== ====== Nullstellen ======
 +
 +===== Taschenrechner =====
 +
 +{{:schule:casiofx991-oben.jpg|(cc) Stefan-Xp}}
 +
 +Für quadratische und kubische Funktionen kann unser [[Taschenrechner]] das Ergebnis direkt berechnen. Schaue dir dafür die Anleitung zum Menüpunkt MODE -> EQN genauer an.
 +
 +Für komplexere Gleichungen kann der Taschenrechner auch versuchen, eine Nullstelle zu berechnen. Evt. findet er aber nicht alle Nullstellen. Dazu gibst du die Gleichung in den Rechner ein und drückst SHIFT SOLVE. Nun fragt der Rechner nach einem Startwert - wir versuchen z.B. den Wert 10 und erhalten die Ausgabe
 +
 +  x² - 6x + 5 = 0
 +  X = 5
 +  L-R = 0
 +
 +Die letzte Zeile sieht seltsam aus. Sie gibt an, wie weit wir von der Nullstelle entfernt sind. L steht hier für die linke Seite und R für die rechte Seite der Gleichung. Ein Wert von 0 besagt, dass wir die Nullstelle exakt ermittelt haben.
 +
 +
 +
 +===== Newton Verfahren =====
  
 Isaac Newton hat vor über 300 Jahren ein [[wpde>Newton-Verfahren|Verfahren]] vorgeschlagen, um nicht-lineare Gleichungen zu lösen. So findet das Verfahren etwa eine Lösung für die folgende Gleichung Isaac Newton hat vor über 300 Jahren ein [[wpde>Newton-Verfahren|Verfahren]] vorgeschlagen, um nicht-lineare Gleichungen zu lösen. So findet das Verfahren etwa eine Lösung für die folgende Gleichung
  
-x³ + 2 x² - 5 x - 6 = 0+x² - 6 x + 5 = 0
  
 Das Verfahren beginnt mit einer Schätzung und verbessert diese mit jedem Schritt ein wenig. Die erste Schätzung heißt x0, die zweite dann x1, und so weiter. Die Verbesserung x1 ergibt sich aus der Schätzung x0 wie folgt. Das Verfahren beginnt mit einer Schätzung und verbessert diese mit jedem Schritt ein wenig. Die erste Schätzung heißt x0, die zweite dann x1, und so weiter. Die Verbesserung x1 ergibt sich aus der Schätzung x0 wie folgt.
Zeile 9: Zeile 27:
 x1 = x0 - f(x0) / f´(x0) x1 = x0 - f(x0) / f´(x0)
  
-In dieser Gleichung ist f(x) = x³ 2x² -5x -6 und f´(x) die Ableitung von f(x) also f´(x) = 3x² + 4x 5.+In dieser Gleichung ist f(x) = x² - 6x und f´(x) die Ableitung von f(x)also f´(x) = 2x 6.
  
-Schaue wir uns einmal an, wie sich die Werte entwickeln, wenn wir mit der Schätzung x=beginnen.+Schauen wir uns einmal an, wie sich die Werte entwickeln, wenn wir mit der Schätzung x=10 beginnen.
  
   x      f(x)   f´(x)   x-f(x)/f´(x)   x      f(x)   f´(x)   x-f(x)/f´(x)
Zeile 26: Zeile 44:
   -3.65  40.27  -13.31  -0.63   -3.65  40.27  -13.31  -0.63
   -0.63  9.16   -7.26   0.63   -0.63  9.16   -7.26   0.63
-  0.63   1.59   -4.73   0.97 +   0.63  1.59   -4.73   0.97 
-  0.97   0.11   -4.06   0.99 +   0.97  0.11   -4.06   0.99 
-  0.99   0.0008 -4.0003 0.9999999904+   0.99  0.0008 -4.0003 0.9999999904
  
-Hier erkennen wir, wie die Werte von x gegen 1 streben, während f(x) gegen 0 strebt. Einsetzen von x=1 und x=5 ergibt auch tatsächlich in beiden Fällen den Wert 0. Wir haben unsere Werte gefunden.+Hier erkennen wir, wie die Werte von x gegen 1 streben, während f(x) gegen 0 strebt. Einsetzen von x=1 und x=5 ergibt auch tatsächlich in beiden Fällen den Wert 0. Wir haben unsere Lösungen gefunden.
  
 Leider funktioniert das Verfahren nicht immer. Prüfe doch einmal, was für die Gleichung f(x) = x³ - 2x + 2 und den Startwert x=0 passiert. Was kannst du feststellen? Leider funktioniert das Verfahren nicht immer. Prüfe doch einmal, was für die Gleichung f(x) = x³ - 2x + 2 und den Startwert x=0 passiert. Was kannst du feststellen?
  
-Man kann das Verfahren natürlich auch mit beliebigen anderen Gleichungen durchführen. Und weil es so einfach ist, habe ich ein kleines Python-Programm geschrieben, das für quadratische Gleichungen die Lösung ermittelt. Versuche doch einmal, das Programm für kubische Gleichungen oder Gleichungen vierten Grades zu erweitern.+Man kann das Verfahren natürlich auch mit beliebigen anderen Gleichungen durchführen. 
  
 ===== Python-Quelltext ===== ===== Python-Quelltext =====
 +
 +Weil das Newton-Verfahren so einfach ist, habe ich ein kleines [[Python]]-Programm geschrieben, das für quadratische Gleichungen die Lösung ermittelt. Versuche doch einmal, das Programm für kubische Gleichungen oder Gleichungen vierten Grades zu erweitern.
  
 <code python> <code python>
Zeile 73: Zeile 93:
 </code> </code>
  
-Das Programm kann nun mit newton(a,b,c, startwert) aufgerufen werden, wobei a,b,c und d für die Koeffizienten in f(x) = ax² + bx + c stehen.+Das Programm kann nun mit ''newton(a,b,c, startwert)'' aufgerufen werden, wobei ''a''''b'' ,''c'' und ''d'' für die Koeffizienten in f(x) = ax² + bx + c stehen.
  
 +===== Haskell-Quelltext =====
 +
 +Auch in der Programmiersprache Haskell lässt sich der Algorithmus leicht aufschreiben.
 +
 +<code haskell>
 +
 +newton :: (Fractional a, Ord a) => (a->a) -> (a->a) -> a -> a
 +newton f f' x
 + | (abs $ f x) < 0.001 = x
 + | otherwise     = newton f f' xNeu
 + where 
 + xNeu = x - (f x)/(f' x)
 +
 +</code>
  
schule/nullstellen.1403103811.txt.gz · Zuletzt geändert: 2017-04-19 08:39 (Externe Bearbeitung)