# -*- coding: utf-8 -*-
"""
Created on Fri Sep  2 10:03:09 2022

@author: 2017
"""

#Halveringsmetoden for å estimere nullpunkt til kontinuerlige funksjoner. 


def f(x):               #En funksjon.  
#Denne kan endres for å løse andre likninger
   return     x**2 -2                      #4-x**2
    

a=1    # To verdier slik at f(a) og f(b) har motsatt fortegn.
b=2
if f(a ) == 0 :
       print("en løsning er " , a)
if f(b ) == 0 :
       print("en løsning er " , b)       

N=10  #Antall itterasjoner med halvering av intervallet.
#Bredden på intervallet blir da (b-a)*10**(-n)
for i in range(0,N):  
    c= (a+b)/2
    if f(c ) == 0 :
          print("en løsning er " , c)
    elif  f(a)*f(c)>=0 :  #Oppdaterer a hvis f(a) og f(c) har samme fortegn.
        a=c
    elif f(b)*f(c)>0:
        b=c
print(f"En løsning mellom {a} og {b}")   
# Med innrykk skrives intervallet opp for hvert steg i løkken.
    
    #print(b-a) lengden på intervallet det er en løsning i.
   