from math import * def f(x): return sin(x) a = 3; b = 4 fa = f(a); fb = f(b) if fa*fb>0: print "Ikke motsatt fortegn i a og b" exit() # Funksjonen exit() avbryter programmet n = 100 # Max antall iterasjoner i = 0 # Tellevariabel m = a # Startverdi for m. Neste midtpunkt blir sammenlignet med dette more = True # Logisk variabel som brukes til aa kontrollere loekka. Vi oensker aa komme # inn i loekka. Vi oensker aa komme inn foerste gang, derfor True while more: i = i + 1 mp = m # Ta vare paa gammelt midtpunkt m = (a+b)/2.0 # Nytt midtpunkt fm = f(m) print "%i: (%1.16f, %1.16f) f(m)=%e" %(i, a, b, fm) if fa*fm<0: # b erstattes med m b = m fb = fm elif fm*fb<0: # a erstattes med m a = m fa = fm else: # Her er fm==0 saa vi kan avslutte break more = i