Een rappere Newton-Raphson Edward Omey EHSAL (Stormstraat, 000 Brussel) [edward.omey@ehsal.be]. Inleiding Bij vele kwantitatieve problemen is het nodig om nulpunten te bepalen van functies. Soms kunnen deze nulpunten expliciet gevonden worden omdat men (door toeval) de vergelijking f( = 0 exact kan oplossen. In andere situaties is het zoeken van de nulpunten niet zo evident en moeten er numerieke procedures gevolgd worden om tot een benaderende oplossing te komen. In vele toestellen is nu een SOLVER of een OPLOSSER aanwezig. Deze tool is in feite de voordeur van een ganse waaier aan technieken en wiskundige analyse! Tijd om daar even bij stil te staan.. Newton-Raphson We vertrekken van een functie f( en zoeken een punt (de punte t waarvoor f( = 0. Een populaire aanpak bestaat er in deze nulpunten numeriek te benaderen via een éénstaps iteratief schema van de vorm x ( n + ) = g( ), n = 0,,,... () Hierbij is g( een geschikte functie waarvoor g( = t en waarbij 0) oordeelkundig moet worden gekozen. Omdat g( = t noemt men t een vast punt van de functie g(. Indien men 0) = t kiest, volgt uit () dat = t voor alle waarden van n =,,... Bij de werkwijze van Newton-Raphson wordt de functie g( als volgt bepaald: Stap. Kies een startpunt 0) Stap. Bepaal f(0)) en bepaal de vergelijking van de raaklijn aan f( door het koppel (0), f(0)). De vergelijking van de raaklijn is gelijk aan: y = f ( 0)) + f '( 0))( x 0)) () Stap 3. Zoek het snijpunt van de raaklijn met de horizontale as. Via formule () vinden we hier f ( 0)) ) = snijpunt = 0) f '( 0)) We noteren dit snijpunt als ). Zie figuur. Stap 4. We vervangen 0) door ) en gaan terug naar stap. Stap 5. We bepalen achtereenvolgens ), ),...
In figuur tekenden we de raaklijn aan f( = 5 x² in 0) =. De raaklijn heeft als vergelijking y = 4(x ). Het snijpunt met de horizontale as is gelijk aan ) = 9/4=4,75. Figuur De bovenstaande procedure leidt tot een rij 0), ), ),... waarbij f ( ) n + ) = f '( ) Dit betekent dat () geldt met f ( g( = x (3) f '( Bemerk dat f( = 0 enkel en alleen als g( = t maar dat er problemen kunnen zijn indien ook f ( = 0. In de meeste gevallen kunnen we op met deze werkwijze de nulpunten vinden van afleidbare functies f(. Deze werkwijze noemt men de werkwijze van Newton-Raphson. Isaac Newton formuleerde dit procédé voor het eerst in 669. In 690 vereenvoudigde Joseph Raphson de aanpak van Newton.
Voorbeeld. We zoeken de nulpunten van f( = x² 3. We vinden hier f ( = x en g( = x (x² 3)/( = x/ + 3/(. De procedure van Newton-Raphson leidt tot de volgende tabel en figuur: n 0 5,0000000-0,5000000,8000000-3,500000,935743 -,0865385 3,747649 -,7663 4,730837 -,73308 5,730508 -,730508 6,730508 -,730508 7,730508 -,730508 8,730508 -,730508 9,730508 -,730508 0,730508 -,730508,730508 -,730508,730508 -,730508 3,730508 -,730508 4,730508 -,730508 5,730508 -,730508 6,0000000 5,0000000 4,0000000 3,0000000,0000000,0000000 0,0000000 -,0000000 -,0000000-3,0000000-4,0000000 3 5 7 9 3 5 Wanneer we als startwaarde 0) = 5 nemen, dan vinden we het eerste nulpunt van f(; bij de startwaarde 0) = 0,5 vinden we de negatieve wortel. Uit de tabel en de grafiek blijkt dat de convergentiesnelheid best meevalt.
Voorbeeld. 360 Voor de functie f ( = + ln( 6, x > 0 vinden we de volgende tabel: x n 0,000 00,000 00,000 500,000 000,000,000 70,469 86,530 96,04-088,643,000 57,863 34,974 346,66 #NUM! 3,000 38,880 357,059 357,336 #NUM! 4,000 355,6 357,695 357,696 #NUM! 5,000 357,679 357,696 357,696 #NUM! 6,000 357,696 357,696 357,696 #NUM! 7,000 357,696 357,696 357,696 #NUM! 8,000 357,696 357,696 357,696 #NUM! 9,000 357,696 357,696 357,696 #NUM! 0,000 357,696 357,696 357,696 #NUM!,000 357,696 357,696 357,696 #NUM!,000 357,696 357,696 357,696 #NUM! 3,000 357,696 357,696 357,696 #NUM! 4,000 357,696 357,696 357,696 #NUM! 5,000 357,696 357,696 357,696 #NUM! Voor de startwaarden 0) = 00, 00, 500 vinden we de benadering t 357,696. Bij de startwaarde 0) = 000 leidt het procédé niet tot een oplossing. Oefening. ) Neem andere startwaarden 0) (zoals bijvoorbeeld 0) = 5 000; 0) = 00 000; 0) = 8 000 000) en ga na of convergeert of niet. ) Schets een grafiek van f(. 3) Verklaar waarom 0) = 000 niet werkt. 4) Heeft f( nog (ee ander (e) nulpunt(e? Zo ja, zoek een goede benadering. Oefening. Werk de volgende voorbeelden uit en ga na wat er verkeerd loopt. ) f( = (x 3)³ (nulpunt voor t = 3, maar f (3) = f (3) = 0) ) f( = sin( (vele nulpunten en je weet (bijna) niet naar welk nulpunt convergeer. 3) f( = x² + (de rij oscilleert rond het minimul van f(; f( heeft géén nulpunte. Opmerking. Er bestaan ook twee-staps interatieve (en uiteraard ook drie-staps enzovoort procedures) schema s. In dit geval gebruikt men in de plaats van () een formule van de vorm x ( n + ) = g(, n )) waarbij de functie g(x,y) en 0),) op een verstandige manier moeten worden gekozen. In 6 komen een aantal andere werkwijzen aan bod.
3. MacLeod De wiskundige MacLeod paste het procédé van Newton-Raphson aan. In de plaats van de functie g( zoals in (3), gebruikte MacLeod de volgende functie: f ( g( = x (4) f '( + cf ( Hierbij is c een reële constante die we oordeelkundig moeten kiezen. De oorsprong van dit voorstel komt verder in 4 aan bod. Bij de keuze c = 0 vinden we uiteraard formule (3) terug. Voorbeeld. (vervolg) We bestuderen f( = x² 3 en gebruiken (4) met c = -/3. We vinden de volgende tabel en figuur: n 0,000 4,000-6,000,000 0,455-4,565,000,973-3,38 3,000,78 -,50 4,000,73 -,966 5,000,73 -,76 6,000,73 -,733 7,000,73 -,73 8,000,73 -,73 9,000,73 -,73 0,000,73 -,73,000,73 -,73,000,73 -,73 3,000,73 -,73 4,000,73 -,73 5,000,73 -,73 6,000,73 -,73 7,000,73 -,73 6,000 4,000,000 0,000 -,000-4,000-6,000-8,000 c = -/3 3 4 5 6 7 8 9 0 3 4 5 6 7 Oefening. Werk voorbeeld uit voor andere keuzes van c en 0). 4. Convergentiesnelheid Uit de vorige oefening zal blijken dat c een belangrijke rol speelt en dat de convergentie niet steeds even vlot verloopt. Hoe kunnen we nu op een verantwoorde manier het getal c kiezen? Om deze vraag te beantwoorden stellen we e( gelijk aan de benaderingsfout die we maken bij de n-de stap: e( = t. We vinden dan dat x ( n + ) = g( ) = g( e( +.
Via een reeksontwikkeling(zie NOOT verderop) vinden we nu dat g ( e( + = g( + e( g'( + e²( g'' ( + e³( g' ''( +... 6 Omdat f( = 0 en dus ook g( = t volgt dat x ( n + ) = t + e( g'( + e²( g''( + e³( g'''( +... 6 en e ( n + ) = e( g' ( + e²( g' '( + e³( g'''( +... 6 We berekenen nu g ( en vinden f '²( f ( f ''( g'( = ( f '( + cf ( )² g ( = 0. Uit het voorgaande volgt nu dat e( n + ) e²( g'' (. Als g ( klein is, dan verwachten we dat de convergentiesnelheid best meevalt. Bij elke stap is de volgende fout evenredig met het kwadraat van de vorige fout. Men noemt deze methode daarom een tweede-orde methode. f ''( Na (veel) rekenwerk vinden we eveneens dat g ''( = c +. Indien we c kunnen f '( kiezen zo dat g ( = 0, dan volgt dat e( n + ) e³( g''' (. In dit geval zal de 6 convergentiesnelheid nog beter zal zijn! Bij deze keuze is de methode een derde-orde methode. Het probleem hier is wel dat we t en bijgevolg ook c niet kennen. 5. Veralgemening In Omey (988) werd de aanpak van Macleod veralgemeend. Hierbij kiezen we een functie h( zodanig dat h( NIET gelijk is aan nul. Als we nu de functie F( = h(f( bekijken, dan is f( = 0 enkel en alleen als F( = 0. Mogelijke keuzes voor h( zijn: cx h ( = exp( c = e ; h ( = exp( cx²) ; h( = + x² ; h ( = + f ²( x ) ; enz. Wanneer we de methode van Newton-Raphson toepassen voor F( = h(f(, dan vinden we F( f ( h( g( = x = x (5) F'( f '( h( + f ( h'( Wanneer h( =, dan vinden we formule (3) terug. Wanneer we de keuze h( = exp(c maken, dan vinden we (4) terug.
Voorbeeld 3 We bestuderen f( = x³ 0,65x² +3,993/0000. Via een grafiek zien we dat de functie drie nulpunten heeft (in de buurt van 0, rond 0,05 en rond 0,5). We zoeken het grootste nulpunt. In de tabel hieronder staan de opeenvolgende benaderingen waaarbij we eerst werkten met (3) (volle lij en daarna met (5) (stippellij met als keuze h( = /x. formule (3) formule (5) n 0,0000000,0000000 6,68506 5,0458 4,4754387,566990 3 3,00443,33903 4,00648 0,7057454 5,3664375 0,3989899 6 0,93089 0,496805 7 0,646 0,83364 8 0,449807 0,5496 9 0,3859 0,477785 0 0,40 0,46550 0,90445 0,463840 0,65759 0,46366 3 0,49797 0,463599 4 0,464864 0,463596 5 0,463598 0,463595 6 0,463595 0,463595 7 0,463595 0,463595 8 0,463595 0,463595 9 0,463595 0,463595 0 0,463595 0,463595 8,0000000 7,0000000 6,0000000 5,0000000 4,0000000 3,0000000,0000000,0000000 0,0000000 3 5 7 9 3 5 7 9
We vinden als nulpunt bij benadering t 0,464595. We merken ook dat (5) vlugger convergeert. Voor formule (5) vinden we, net zoals in de vorige paragraaf, dat g( = t g ( = 0 h'( f ''( g ''( = + h( f '( en e( n + ) e²( g'' (. Als g ( klein is dan verwachten we dat de convergentiesnelheid goed zal zijn. Bij de keuze h ( = / f '( vinden we dat g ( = 0. In dit geval vinden we dat e( n + ) e³( g''' ( (6) 6 De enige (belangrijke!) voorwaarde is dat h( minstens in de buurt van x = t niet gelijk is aan 0. Voorbeeld 4 De hoeveelheid (in miljoene datapaketten q( die op een bepaald netwerk worden verstuurd neemt toe met de tijd t. Voor een bepaald netwerk vonden Waner en Costenoble (996) de volgende formule: exp(0,69 q( = 3 +,5exp( 0,4, t 0 De grafiek vertoont een sterk stijgend patroon. q( 80000 60000 40000 0000 00000 80000 60000 40000 0000 0 3 4 5 6 7 8 9 0 3 4 5 6 7 8
Men is nu geïnteresseerd in het tijdstip waarop q( precies gelijk is aan 0 000. Op de grafiek zien we dat er juist één dergelijk tijdstip is. Met de voorgaande methodes zoeken we nu het nulpunt van f( = q( 0000 In de volgende tabel en grafiek gebruikten we formule (3) (volle lij en formule (5) (stippellij met h( gelijk aan h( = exp(-0,345. We startten met 0) = 4. formule (3) formule (5) n 0 4,00000 4,00000 3,00905 6,37750 9,55980 9,03697 3 8,058,76066 4 6,6647 4,05766 5 5,64 4,903 6 3,76458 4,94047 7,3859 4,9405 8 0,8783 4,9405 9 9,45305 4,9405 0 8,0680 4,9405 6,78647 4,9405 5,74304 4,9405 3 5,775 4,9405 4 4,9537 4,9405 5 4,9439 4,9405 6 4,9435 4,9405 7 4,9435 4,9405 8 4,9435 4,9405 9 4,9435 4,9405 0 4,9435 4,9405 4,9435 4,9405 4,9435 4,9405 3 4,9435 4,9405 4 4,9435 4,9405 35 30 5 0 5 0 5 0 3 5 7 9 3 5 7 9 3 5
We merken dat de convergentiesnelheid bij formule (5) beduidend beter is dan bij formule (3). Oefening. Het verspreiden van nieuwe technologie kan bijvoorbeeld gemodelleerd worden als volgt (zie [6], p. 95): 3exp( 0,t ) p ( =, t 0 + exp(4,50 0,477 waarbij t de tijd is en p( het percentage firma s is die op tijdstip t een bepaalde technologie toepassen. In de grafiek zien we de opkomst en het verval van de nieuwe techniek. p( 0,8 0,7 0,6 0,5 0,4 0,3 0, 0, 0 4 7 0 3 6 9 5 8 3 34 37 40 43 ) Een techniek is goed ingeburgerd indien 50% van de bedrijven de techniek gebruiken. Op welk tijdstip gebeurt dit hier? ) Een techniek dooft uit als nog hoogstens 0% van de bedrijven de techniek gebruikt. Wanneer gebeurt dit in dit voorbeeld? 6. Andere werkwijzen Naast de formules van de vorige paragrafen zijn er nog tal van varianten. Ook zijn er procedures beschikbaar om de nulpunten te vinden van functies in meerdere variabelen. Hier gaan we niet dieper op in. 6.. Bissectie In deze procedure gaat men er van uit dat men ongeveer weet waar het nulpunt van f( ligt. Men weet bijvoorbeeld dat t in het interval [a, b] ligt en we veronderstellen hier dat f(a) < 0 < f(b). Men bepaalt nu een rij als volgt:
. [a(0), b(0)] = [a, b] en 0) = (a + b)/. als f(0)) < 0, dan is [a(), b()] = [0), b(0)] en ) = (0) + b(0))/ als f(0) > 0, dan is [a(), b()] = [a(0),0)] en ) = (a(0) + 0))/ 3.... 4. als f() < 0, dan is [a(n+), b(n+)] = [, b(] en n+) = ( + b()/ als f( > 0, dan is [a(n+), b(n+)] = [a(,] en n+) = (a( + )/ 6.. Halley s methode Dit is de methode beschreven door formule (5) met de keuze h ( = / f '(. Bij deze keuze is g( = g ( = g ( = 0 en voldoen de fouten aan (6). 6.3. Schröder s methode Dit is de methode beschreven door formule (5) met de keuze ( / f '( 6.4. Secant methode Bij deze werkwijze vertrekt men van de formules () en (3): f ( ) n + ) =. f '( ) en via de middelwaardestelling benadert men f () als volgt: f ( ) f ( n )) f '( ) n ) Door deze twee formules te combineren vinden we: f ( )( n )) x ( n + ) = ( f ( ) f ( n )) Dit is een twee-staps formule van de vorm n+)=g(,n-)). h =. Noot De reeksontwikkeling van een functie f( rond x = a is gelijk aan f ( = f ( a) + f '( a)( x a) + f ''( a)( x a)² + f '''( a)( x a)³ +... 3! De functie moet wel aan een aantal vereisten voldoen om over een zincolle uitdrukking te beschikken. Welbekende voorbeelden zijn (telkens met a = 0) = + x + x² + x³ +... x e x = + x + x² + x 3 +... 3!
Bibliografie [] A..K. Kaw (006). An interactive e-book for illustrating Newton-Raphson method of solving nonlinear equations. http://numericalmethods.eng.usf.edu/ebooks/newtonraphson_03nle_ebook.htm [] Macleod, A.J. (984). How to accelerate convergence in Newton-Raphson? Int. Journal of Math. Education, Science and Technology. Vol. 5, p. 7. [3] Omey, E. (988). Note on a paper of MacLeod. Int. Journal of Math. Education, Science and Technology. Vol. 9, p. 34-34. [4] T.R. Scavo and J.B. Thoo (995). On the geometry of Halley s method. Amer. Math. Monthly 0, 47-46. [5] E. Schröder (870). Uber unendlich viele Algorithmen zur Auflösung der Gleichungen. Math. Ann., 37-365. [6] Waner, S. en Costenoble, S. (996). Calculus applied to the real world. Harper Collins College Publisher, New York. [7] E.W. Weinstein. Secant method. Mathworld-A Wolfram Web Resource. http://mathworld.com/secantmethod.html.