006
20.04.2004, 22:05 Uhr
Belisar
|
Also wenn man auch die Ableitung der Funktion kennt, würde ich folgende Version schreiben. Müsste doch gehen oder?
Code: |
double nullstelle(double x,double(*f)(double),double(*fabl)(double)) { double NS=0.0, NSnew; do { NS=NSnew; NSnew=NS-f(NS)/fabl(NS); } while((0.0001<NSnew-NS)||(NSnew-NS<(-0.0001))); return NSnew; }
|
Braucht nicht zu klappen, sobald der Startwert nicht in der Nähe der Lösung liegt. Wenn man zum Beispiel auf ne Fast waagerechte Tangente stösst, landet man ziemlich weit weg...
Is eure Version wirklich das Newtonverfahren? Ich kenne es mit der Ableitung, jedenfalls das einache. Dieser Post wurde am 20.04.2004 um 22:06 Uhr von Belisar editiert. |