Page 56 - Demo
P. 56

TI Python BootCamp Python ITERATIES ITERATIES & FUNCTIES
De iteratiefunctie is N(x) = x - f (x) en genereert de volgende rij: f '(x)
x0, x1=x0-f(x0),x2=x1-f(x1), x3=x2-f(x2),x4=x3-f(x3),... f '(x0) f '(x1) f '(x2) f '(x3)
Een code voor de methode van Newton-Raphson:
def iterate(fx,x0,n): ¨¨global x ¨¨iterlst=[x0]
¨¨for i in range(0,n+1):
# Bepalen numerieke afgeleide ¨¨¨¨e=0.001
¨¨¨¨x=iterlst[i]+0.001 ¨¨¨¨y2=eval(fx) ¨¨¨¨x=iterlst[i]-0.001 ¨¨¨¨y1=eval(fx) ¨¨¨¨df=round((y2-y1)/(2*e),5)
# Bepalen volgend punt iteratieproces ¨¨¨¨x=iterlst[i] ¨¨¨¨iterlst.append(iter[i]-(eval(fx))/df) ¨¨iterlst.pop()
¨¨return iterlst
functie=input("Functie in x: ") start=float(input("Startwaarde: ")) aantal=int(input("# Iteraties: "))
iteratie=iterate(functie,start,aantal) nulpunt=iteratie[len(iteratie)-1]
print("NEWTON-RAPHSON")
print("De benadering van een nulpunt van f(x)={} in de buurt van x={} is x={}".format(functie,start,nulpunt)) print(iteratie)
            Zoals al aangegeven behandelen we de exacte voorwaarde voor convergentie hier niet. De bovenstaande code convergeert niet altijd en kan zelfs leiden tot een error, b.v. ZeroDivisionError: divide by zero. Hou er ook rekening mee dat het hier over een numerieke benadering gaat voor de afgeleide en dat de grootte van 𝜀 (of e in de code) een rol speelt.
© 2020 T3 Nederland – T3 Vlaanderen 6 www.t3nederland.nl – www.t3vlaanderen.be



















































































   54   55   56   57   58