Derdemachts-wortel met de hoger-lager methode
Op deze pagina:
De derdemachtswortel van een getal kan het eenvoudigst uitgrekend worden via machtsverheffing van het getal tot een derde. De N-de machtswortel van een getal is getal tot de macht 1 gedeeld door N.
In Python: getal**(1/N).
>>> 8**(1/3)
2.0
Zelf een Python script maken waarmee de derdemachtswortel van een getal berekend wordt via de hoger-lager methode kan ook.
De hoger-lager methode is een manier om snel een gezochte waarde te vinden in een groot zoekgebied. De methode is snel omdat steeds de helft van het overgebleven zoekgebied afvalt.
De methode werkt als volgt: bepaal het midden van het zoekgebied. Bepaal dan of de gezochte waarde hoger of lager is als dat middden. Het gedeelte van het zoekgebied waar de gezochte waarde dan niet in ligt, valt dan af, zo blijft steeds de helft van het zoekgebied over. Dan weer op zoek naar het midden van het overgebleven zoekgebied en het hele proces herhalen totdat uiteindelijk de gezochte waarde gevonden wordt.
#!/usr/bin/env python3
getal = float(input("Geef een getal waarvan de derdemachtswortel van bepaald moet worden: "))
nauwkeurigheid = 0.0001
aantalpogingen = 0
teken = 1
if getal < 0:
teken = -1
getal *= teken
laag = 0
hoog = getal
if getal < 1:
laag = getal
hoog = 1
probeer = (hoog + laag)/2.0
while abs(probeer**3 - getal) >= nauwkeurigheid:
if (probeer**3 < abs(getal)):
laag = probeer
else:
hoog = probeer
probeer = (hoog + laag)/2.0
aantalpogingen += 1
probeer *= teken
getal *= teken
print("aantal pogingen :",aantalpogingen)
print(probeer,"is bij benadering de derdemachtswortel van",getal)