Løsning av likninger med Python

Contents

Løsning av likninger med Python

Noen likninger kan vi lett løse ved å bruke ulike algebraiske regneregler. Vi kan for eksempel lett løse en andregradslikning ved å bruke abc-formelen. Men ofte møter vi likninger som vi ikke klarer å løse med vanlige metoder. Vi kan da løse dem numerisk. Vi skal her vise ulike strategier for å løse en likning numerisk.

Eksempel 1

Løs likningen \(3000\cdot 1.018^x = 5000\).

Løsning:

Siden vi vet at funksjonen \(f(x)=3000\cdot 1.018^x\) er voksende, så kan likningen kun ha én løsning. Vi starter med \(x=1\), sjekker om \(f(1)=5000\). Hvis ikke, øker vi verdien til \(x\) helt til vi når 5000. Vi vil med andre ord bruke en While-løkke.

def f(x):
    return 3000*1.018**x  # Lager funksjonen, så blir det mindre å skrive senere

x = 1   # Vår startverdi. Brukes i while-løkken

while f(x) < 5000:   # Så lenge f(x) er mindre enn 5000... 
    x = x + 0.001    # øker x med 0.001

print(f"Det tar {x:.2f} år før beløpet er 5000")
Det tar 28.63 år før beløpet er 5000