phpbar.de logo

Mailinglisten-Archive

[php] Differentialrechnung

[php] Differentialrechnung

Ralf Müller r_mueller at imp-ag.de
Fre Nov 19 08:50:27 CET 2004


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