Vind de nulpunten van f (x) = ax − xa

Vind alle nulpunten van de functie f (x) = ax − xa (a > 0, x ≥ 0).
Dit is de probleemfunctie:
Eigenlijk ziet dit er heel simpel uit, maar in dit geval geldt zeker dat schijn bedriegt. Om de nulpunten te vinden moet ik de functie gelijk aan nul stellen en oplossen voor x:
Op deze manier zie je vrij gemakkelijk dat x = a een oplossing is. Door de vorige vergelijking anders op te schrijven is dat wellicht nog duidelijker:
Of nog anders:
Maar we willen niet zien dat x = a een oplossing is, we willen een duidelijke wiskundige uitdrukking in de vorm van:
Bovendien zijn er misschien nog meer oplossingen die we ook boven water moeten zien te krijgen. Daarom ga ik de functie eerst eens nader onderzoeken. Om te beginnen bekijk ik het punt x = 0:
Voor x = 0 is de functiewaarde dus altijd gelijk aan één. En we hebben gezien dat er altijd een nulpunt is bij x = a:
En hoe gedraagt de functie zich voor grote waarden van x:
Ik bekijk dit eerst voor a < 1:
Voor a < 1 gaat de functiewaarde naar −∞ en is er dus alleen een nulpunt bij x = a.

Figuur 1
De grafiek van f (x) voor a = 0.001 (de rode lijn),
a = 0.01 (de lichtgroene lijn), a = 0.05 (de oranje lijn),
a = 0.1 (de paarse lijn), a = 0.2 (de donkerblauwe lijn),
a = 0.3 (de grijze lijn), a = 0.4 (de donkerbruine lijn),
a = 0.5 (de lichtbruine lijn), a = 0.6 (de donkergroene lijn),
a = 0.7 (de gele lijn), a = 0.8 (de lichtblauwe lijn)
en a = 0.9 (de violet lijn)
Vervolgens bekijk ik de situatie voor a = 1:
Ook voor a = 1 gaat de functiewaarde naar −∞ en is er dus alleen een nulpunt bij x = a, oftewel bij x = 1.

Figuur 2
De grafiek van f (x) voor a = 1 (de rode lijn)
Tenslotte bekijk ik de situatie voor a > 1:
Dit moet ik anders aanpakken:
Waar het feitelijk op neerkomt is dat ax altijd sneller groeit dan xa (voor a > 1 en grote waarden van x), dus voor a > 1 komt de functie uiteindelijk weer boven de x-as uit.

Figuur 3
De grafiek van f (x) voor a = 1.5 (de rode lijn),
a = 1.7 (de lichtgroene lijn), a = 1.9 (de oranje lijn),
a = 2.1 (de paarse lijn), a = 2.3 (de donkerblauwe lijn),
a = 2.5 (de grijze lijn), a = 2.7 (de donkerbruine lijn),
a = 2.9 (de lichtbruine lijn), a = 3.1 (de donkergroene lijn),
a = 3.3 (de gele lijn), a = 3.5 (de lichtblauwe lijn)
en a = 3.7 (de violet lijn)
De logische volgende vraag is of de functie slechts twee nulpunten heeft voor a > 1, of dat de functie meer dan eens onder de x-as duikt. Of anders gesteld: is het minimum in bovenstaande figuur het enige minimum? Dat ga ik uitzoeken door de functie te differentiëren en vervolgens de afgeleide gelijk aan nul te stellen. Eerst bepaal ik de afgeleide van de functie:

Figuur 4
De grafiek van f’ (x) voor a = 1.5 (de rode lijn),
a = 1.7 (de lichtgroene lijn), a = 1.9 (de oranje lijn),
a = 2.1 (de paarse lijn), a = 2.3 (de donkerblauwe lijn),
a = 2.5 (de grijze lijn), a = 2.7 (de donkerbruine lijn),
a = 2.9 (de lichtbruine lijn), a = 3.1 (de donkergroene lijn),
a = 3.3 (de gele lijn), a = 3.5 (de lichtblauwe lijn)
en a = 3.7 (de violet lijn)
Vervolgens stel ik de afgeleide gelijk aan nul om minima (of maxima) te vinden:
Indien ik dit zou kunnen oplossen dan zou ik ook wel mijn oorspronkelijke probleem, vergelijking (1), rechtstreeks hebben kunnen oplossen. Hiermee kom ik dus niet verder, maar het is wel interessant om naar het minimum te kijken bij x = a:
Indien a = e dan is er één minimum, een absoluut minimum, en dat is tevens een nulpunt (want ik had x = a gesteld). Met andere woorden: de beide nulpunten vallen dan samen. In onderstaande grafiek laat ik a oplopen van a = 1 tot a = e, het linker nulpunt ligt bij x = a en het rechter nulpunt nadert vanaf rechts totdat ze voor a = e samenvallen. Tegelijkertijd gaat het minimum van de grafiek langzaam omhoog totdat het voor a = e op de x-as ligt.

Figuur 5
De grafiek van f (x) voor a = 1 (de rode lijn),
in stapjes oplopend tot a = e (de violet lijn)
Ik zal even de minima en maxima duidelijk aangeven.

Figuur 6
De grafiek van f (x) voor a = 1 (de rode lijn),
in stapjes oplopend tot a = e (de violet lijn),
met de absolute minima (de gele punten)
en de lokale maxima (de lichtblauwe punten)
In onderstaande grafiek laat ik a aflopen van a = 2e tot a = e, het rechter nulpunt ligt bij x = a en het linker nulpunt nadert vanaf links totdat ze voor a = e samenvallen. Tegelijkertijd gaat het minimum van de grafiek langzaam omhoog totdat het voor a = e op de x-as ligt.

Figuur 7
De grafiek van f (x) voor a = 2e (de rode lijn),
in stapjes aflopend tot a = e (de violet lijn)
Ik zal weer even de minima en maxima duidelijk aangeven.

Figuur 8
De grafiek van f (x) voor a = 2e (de rode lijn),
in stapjes aflopend tot a = e (de violet lijn),
met de absolute minima (de gele punten)
en de lokale maxima (de lichtblauwe punten)
Voor a ≤ 1 is er dus één nulpunt en dat ene nulpunt ligt bij x = a. Voor a > 1 zijn er twee nulpunten, het ene nulpunt ligt bij x = a en het tweede nulpunt ligt tussen x = 1 en x = e indien a > e en het tweede nulpunt ligt voorbij x = e indien a < e. Wanneer a = e dan vallen beide nulpunten samen en vormen een raakpunt bij x = e.

Ik kan natuurlijk de computer met brute kracht de nulpunten uit laten rekenen (zie deze pagina) en dat levert onderstaande grafiek op.

Figuur 9
De grafiek van de nulpunten van f (x):
x = a (de rode lijn) en het andere nulpunt (de groene lijn)
Zowel x als y loopt van nul tot en met tien en in dit geval is het wel illustratief om de grafiek verticaal op te rekken zodat het grafiekgebied vierkant wordt.

Figuur 10
De grafiek van de nulpunten van f (x):
x = a (de rode lijn) en het andere nulpunt (de groene lijn)
Wat hier aan de hand is wordt duidelijk(er) wanneer ik de grafiek 45 graden linksom draai.

Figuur 11
De grafiek van de nulpunten van f (x):
x = a (de rode lijn) en het andere nulpunt (de groene lijn)
De groene lijn is perfect symmetrisch ten opzichte van de rode lijn en is dus een involute functie.

Hoe gaan we dat tweede nulpunt vinden, dat is de grote uitdaging. Rechtstreeks vergelijking (2), het nulstellen van de functie, proberen op te lossen gaat echt niet lukken:

Taylor

Een andere optie is om de functie te ontwikkelen in een Taylor-reeks, echter de term ax is daar wel geschikt voor maar de term xa niet. Dit probleem is op te lossen door de hele functie te verschuiven, bijvoorbeeld één naar links, want we weten inmiddels dat er alleen een tweede nulpunt is voor a > 1. De functie komt er dan zo uit te zien (hierin is s de toegepaste verschuiving):

Nu kan ik de gehele functie probleemloos omzetten in een Taylor-reeks, in de tabel met Taylor-reeksen vinden we:
En in de tabel met Taylor-reeksen vinden we ook:
Helaas, ook dit pad gaat niet naar een oplossing leiden. In de eerste plaats convergeert de Taylor-reeks van (x + s)a alleen voor x < s, dus dat gaat sowieso al niet werken. En al zou de Taylor-reeks wel convergeren dan zit ik opgescheept met een polynoom met oneindig veel termen waarvan ik vervolgens de nulpunten moet zien te vinden. Voor een tweedegraads functie lukt dat simpel (zie deze pagina), voor een derdegraads functie is het al een stuk ingewikkelder (zie deze pagina), een vierdegraads functie daar wil ik niet eens over nadenken en voor hogere orde polynomen is niet eens een oplossing mogelijk. Kortom, ontwikkelen in een Taylor-reeks gaat niet werken.

We weten dat x = a een oplossing is, een nulpunt, en na een tijd(je) nadenken zou de gedachte op kunnen komen (bij mij kwam die gedachte in ieder geval wel op): helpt het om het tweede nulpunt te schrijven als een functie van het eerste nulpunt? Dat ben ik dus gaan proberen, allereerst schreef ik x als de som van a (het bekende nulpunt) plus een onbekende factor k (die zowel positief als negatief kan zijn):
Het op te lossen probleem wordt dan:
Het onoverkomelijke probleem is nu de rechterterm waarin (a + k) achter de natuurlijke logaritme staat. Dat laat zich niet splitsen en een uitweg zou kunnen zijn om weer aan een Taylor-reeks te denken, maar dat stuit vervolgens weer op convergentieproblemen en een niet op te lossen polynoom met oneindig veel termen.

Volgende poging, ik schrijf x als het product van a (het bekende nulpunt) en een onbekende factor k:
Het op te lossen probleem wordt dan:
Nu heb ik a als een functie van k en volgens vergelijking (21) is het andere nulpunt dan:
Ik heb beide nulpunten geschreven als een functie van k, of anders gezegd: de functie die de beide nulpunten weergeeft heb ik geparametriseerd met de parameter k. Daar kan ik natuurlijk ook een plaatje van maken.

Figuur 12
De grafiek van de nulpunten van f (x):
x = a (de rode lijn) en het andere nulpunt (de groene lijn)
En dit levert (uiteraard) dezelfde grafiek op als figuur 10.

Dit is een mooie stap voorwaarts, maar ik heb nu beide nulpunten uitgedrukt als functie van een nieuwe variabele k en mijn doel is om beide nulpunten uit te drukken als functie van a:
Ik heb geprobeerd om x uit te drukken als de som van a (het bekende nulpunt) plus een onbekende factor k (die zowel positief als negatief kan zijn), maar dat leverde niets op. Vervolgens schreef ik x als het product van a (het bekende nulpunt) en een onbekende factor k, en dat bracht mij de geparametriseerde functie volgens figuur 12. Ik zou ook nog kunnen proberen om x als een macht van a te schrijven, maar dat gaat mij niet verder helpen omdat ak gelijk is aan ak:

Kan ik een manier vinden om k als functie van a te schrijven? Ik weet immers dat x = a een nulpunt is en wanneer ik k kan uitrekenen als functie van a en vervolgens vergelijking (24) ter hand neem dan vind ik het andere nulpunt. De uitweg daarvoor is om k = a te stellen, daarna x uit te rekenen volgens vergelijking (24), een correctie aan te brengen op de waarde van k, daarna weer x uit te rekenen, enzovoort. Een iteratief proces dus. Hoe ziet dit er in de praktijk uit? Ik laat dat zien voor de willekeurige waarde a = 5.555.
nkn1n2
05.555000000000000000001.000000000000000000005.55500000000000000000
15.555000000000000000001.457092661312737608248.09414973359225741375
23.015850266407742586251.729100082549915402875.21470694460381206558
33.356143321803930520671.671777538034120641945.61072501981503044915
43.300418301988900071521.680442972864184413485.54616474308959080175
53.309253558899309269781.679051771588839323795.55640805070655666795
63.307845508192752601821.679273041181475577885.55477578630132725095
73.308069721891425350871.679237795683602479565.55503570775662500006
83.308034014134800350821.679243408516123530015.55499431338299650528
93.308039700751803845541.679242514640696055515.55500090562171476734
103.308038795130089078191.679242656994569616705.55499985577536552568
113.308038939354723552511.679242634324022693845.55500002296847192713
123.308038916386251625381.679242637934417031195.55499999634215959326
133.308038920044092032121.679242637359444242325.55500000058252880349
143.308038919461563228641.679242637451011444065.55499999990722946629
153.308038919554333762351.679242637436428923645.55500000001477415687
163.308038919539559605481.679242637438751260655.55499999999764714395
173.308038919541912461531.679242637438381417235.55500000000037470372
183.308038919541537757801.679242637438440316595.55499999999994032662
193.308038919541597431191.679242637438430936585.55500000000000950328
203.308038919541587927911.679242637438432430395.55499999999999848656
213.308038919541589441351.679242637438432192505.55500000000000024102
223.308038919541589200331.679242637438432230385.55499999999999996162
233.308038919541589238711.679242637438432224355.55500000000000000611
243.308038919541589232601.679242637438432225315.55499999999999999903
253.308038919541589233571.679242637438432225165.55500000000000000016
263.308038919541589233421.679242637438432225185.55499999999999999998
273.308038919541589233441.679242637438432225185.55500000000000000000
Bij n = 0 staan de beginwaarden: k = a en n2 = a, en n1 = n2/k = 1. Bij de 27e iteratiestap zijn beide nulpunten bepaald tot op twintig cijfers achter de komma. Merk op dat: Dit is precies zoals de vergelijkingen (23) en (24) voorspellen. Bij iedere iteratiestap heb ik eerst de nieuwe waarde van k uitgerekend:
En vervolgens de nieuwe waarden van n1 en n2 volgens de vergelijkingen (24) en (22):

Een dergelijk iteratief proces kun je wellicht beschouwen als valsspelen, maar ik kan uiteindelijk wél beide nulpunten uitdrukken als functie van a. Let op, ik ga de vergelijkingen (25) en (26) uitschrijven met alleen maar a’tjes:







Je ziet al wat er gebeurt: dit wordt een kolossale puinhoop. Aangezien er per iteratiestap het antwoord amper één decimaal nauwkeuriger wordt is dit geen oplossing om heel blij van te worden. Voor een antwoord dat tot op twintig cijfers achter de komma nauwkeurig is moet ik doorgaan tot en met n = 27 (voor deze waarde van van a). Stel dat ik dat helemaal uit zou schrijven zoals de vergelijkingen hierboven dan heb ik uiteindelijk een vergelijking die weliswaar correct is, maar vele schermen vult en totaal onleesbaar is.

Newton

Raphson

Het goede nieuws is (er is altijd goed nieuws) dat het iteratieproces ruimte biedt voor verbetering en dan denken we natuurlijk aan de methode Newton-Raphson:

Dit is de functie f (x):
En de afgeleide had ik reeds bepaald:
Dan ziet het iteratieproces er zo uit, wederom voor de willekeurige waarde a = 5.555.
nn1
01.85914091422952261768
11.72281371626025950975
21.68251614136310553392
31.67926277649427878168
41.67924263820623786781
51.67924263743843222629
61.67924263743843222518
Omdat a > e weet ik dat het gezochte nulpunt (niet het nulpunt x = a, maar die andere) tussen één en e ligt. Daarom heb ik als startwaarde n1 = (1 + e)/2 = 1.85914091422952261768 gekozen. Het resultaat is dat ik nu al bij de 6e iteratiestap het nulpunt n1 bepaald heb tot op twintig cijfers achter de komma.

Halley

Nu hebben we de smaak te pakken, want terwijl de iteratiemethode Newton-Raphson alleen met de eerste afgeleide werkt daar betrekt de iteratiemethode van Halley ook nog de tweede afgeleide erbij:

De tweede afgeleide is:
Dan wordt dit het iteratieproces, nogmaals voor de willekeurige waarde a = 5.555.
nn1
01.85914091422952261768
11.60431836393232607517
21.66884637395687875155
31.67903715871671657358
41.67924255669416958462
51.67924263743841975550
61.67924263743843222518
Zoals je ziet maakt deze verfijning het aantal iteratieslagen niet minder (in dit geval). Daarom val ik terug op de methode Newton-Raphson en ik ga het nulpunt, vergelijking (32), uitschrijven met alleen maar a’tjes:



Ook ditmaal ontstaat er logischerwijs weer een kolossale puinhoop. Het helpt om de functieaanduidingen f (x) en f’ (x) te laten staan in plaats van die uit te drukken in a’s en x-en:





Ik zal de laatste zijn om te ontkennen dat dit een onbruikbare puinzooi is, maar dat neemt niet weg dat het een oplossing is van het probleem. Het ene nulpunt van f (x) = ax − xa is x = a (exact) en het andere nulpunt is volgens vergelijking (36f) (tot op meer dan tien decimalen nauwkeurig).