Du er ikke logget inn. Så lenge du ikke er logget inn går du glipp av muligheten for å holde styr på din egen progresjon.

Logg inn

Valgte tags:

Filtrering:

Skriv ut:

1.1.9: Irrasjonale tall og maskinnøyaktighet

Programmer følgende:

b = 2**0.5
a = b*b
print(a)
print(a-2)

Forklar resultatet!

Vis løsningsforslag

I denne oppgaven ser vi en typisk unøyaktighet på datamaskinen. Første operasjonen setter b lik roten av to. Siden roten av to er et irrasjonalt tall, har det uendelig mange desimaler. Datamskinen må derfor runde av tallet med maskinnøyaktighet. Dette er grunnen til at a=b*b (altså roten av to ganger roten av to) ikke blir nøyaktig lik to. Dette er også grunnen til at vi får et veldig lite tall når vi tar a-2. a-2 ville vanligvis gitt 0, men på grunn av unøyaktigheter på datamaskinen får vi et veldig lite tall i størrelsesorden 10^(-16). Dette er altså størrelsesordenen til unøyaktigheten.