Mailinglisten-Archive |
Am Donnerstag, 18. November 2004 16:14 schrieb Andreas Brandl: > Claudius Ceteras schrieb: > >>was die Lösung angeht würde ich die dennoch mit Mathlab oder Maple > >>(Shareware) nochmal verifizieren .. zumal bei numerischer > >>Differentiation sehr schnell die Fehler wachsen können .. > > > > Ist kein numerisches Verfahren im eigentlichen Sinne. Es ist einfach eine > > Formel die ausgerechnet wird, keine Iteration o.ä., was den Fehler > > wachsen lassen könnte... > > à propos Fehler: ich verarbeite ja keine ausgewachsenen > Gleichungssysteme, sondern nur S-Förmige oder lineare Kostenfunktionen. > (ist für eine Schulwebsite bzw. BWL-Stoff des Wirtschaft-LK 12./13. Klasse) > > Wo kann bei der von dir genannten Lösung bei der (einfachen) > Ausgabenstellung ein Fehler (abgesehen von diversen Bugs :) ) auftauchen? > > Ich möchte es aber schon über Iterationsverfahren o.Ä. lösen, weil mich > die Materie einfach interessiert. > > Danke! > > Andi Hallo Andreas, für Gleichungen 2. und dritten Grades gibt es Lösungsverfahren, welche dir mit Sicherheit alle Lösungen angeben. Für Gleichungen vom Grad 2 hat Claudius dir das ja schon beschrieben, für den 3. Grand ist das in Formelheften irgendwo notiert, z.B. in der Formelsammlung von Bartsch. Ich kann dir nur empfehlen, KEIN Iterationsverfahren zu machen, wenn du es nicht tatsächlich machen musst. Diese Lösungsvefahren erzeugen EINE Nullstelle zu EINEM Anfangswert der Iteration. Nur Leider weiss man nicht schon vorher,welche Anfangswerte auf welchen Nullstellen führen. 1. Frage: Wann weisst du, dass du alle nullstellen hast? Das ist noch einfach: Ein Polynom vom grad N hat genau N Nulstellen. Das kannst du also durch Nachzählen der gefundenen Nullstellen testen 2. Wie findese du die letzt Nullstelle? Naja,so wie alle anderen, du gibst dir irgend einen startwert vor, lässt dein Iterationsverfahren darauf los und hoffst, eine neue Nullstellen zu finden. Und da liegt genau der Fallstrick: Du hoffst. Kann schon sein, dass du beim ersten Versuch gleich eine neue Nullstelle findest. Kann auch sein, dass du sie nach 100 versuchen nicht findest. Kann auch sein das du in endlos-Schleifen gerätst. Das Iterationverfahren ist nicht besonders angenehm: Es kann sich in bestimmten Bereichen für die Startwerte sogar chaotisch verhalten, d.h. Eine kleine Änderung im Startwert führt zu einer völlig anderen Nullstelle. Ich kann dir nur davon abraten, das Iterationverfahren zu verwenden, wenn du mit Polynomen arbeitest, die mit pq-Formel oder ähnlich zu lösen sind. Diese Formeln kannst du einfach in PHP giessen und auf deine Koeffizienten anwenden. Die einziegen Schwierigkeit besteht dann darin, die komplexen Nullstellen herauszufinden. Aber wahrscheinlich gibt es auch eine PHP-Klasse für komplexe Zahlen, und dann hast du nicht mal mehr das Problem. gruss ralf
php::bar PHP Wiki - Listenarchive