![]() 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