LAB 1. FELANALYS 1 Inledning 2 Flyttal

January 8, 2018 | Author: Anonymous | Category: Math
Share Embed Donate


Short Description

Download LAB 1. FELANALYS 1 Inledning 2 Flyttal...

Description

TANA18/18 mars 2015

LAB 1. FELANALYS 1

Inledning

I laborationerna anv¨ ands matrishanteringsprogrammet MATLAB. som genomg˚ aende anv¨ander dubbel precision vid ber¨ akningarna.

1.1

Inneh˚ all

Du ska 1. best¨ amma den avrundningsenhet µ, som MATLAB anv¨ander (dubbel precision). 2. best¨ amma st¨ orsta och minsta tal som kan lagras. 3. studera hur ber¨ akningsfelen p˚ averkar resultaten i olika situationer. 4. anv¨anda MATLAB:s grafik f¨ or att illustrera. 5. tolka praktiska resultat

2

Flyttal

Ett bin¨art (basen b = 2) flyttal representeras som en f¨oljd av nollor och ettor i ett s.k. ord. I MATLAB anv¨ ands 64 bin¨ ara positioner (dubbel precision) f¨or att lagra ett flyttal. Exponentdelens storlek best¨ ammer hur stort talomr˚ ade som kan anv¨andas. Alla tal st¨orre a¨n ett visst tal lagras som inf medan tal vars absolutbelopp a¨r mindre a¨n ett visst tal s¨atts till noll. Taldelens storlek best¨ ammer vilken noggrannhet som kan erh˚ allas.

2.1

Avrundningsenheten, µ, och maskinepsilon, εM

Ett positivt bin¨ art flyttal, x, kan skrivas som x = m·2exp , d¨ar m ¨ar taldelen och 1 ≤ m < 2. Om t bitar anv¨ ands f¨ or att lagra taldelens br˚ akdel blir ¨ovre gr¨ansen f¨or relativa felet vid flyttalslagring av talet x |∆x| εM ≤ = µ = 0.5 · 2−t . |x| 2 Eftersom endast ett begr¨ ansat utrymme finns f¨or att lagra taldelen blir 1 + x = 1 vid flyttalslagring om x ¨ ar alltf¨ or litet. I IEEE-standarden, som anv¨ands av MATLAB, g¨aller att 1 + x = 1, f¨ or alla x ≤ µ. Detta kan anv¨andas f¨or att praktiskt best¨amma µ. Uppgift 2.1 Best¨ amning av t och µ Ber¨akna a = 1 + 0.5 · 2−n . Pr¨ ova med olika positiva heltal n mellan 50 och 60 och best¨ am det minsta n f¨ or vilket a = 1 (enbart 1 skrivs ut). S˚ a l¨ange a > 1 skrivs det avrundade v¨ ardet ut (exempelvis 1.0000). Ange t, som ¨ ar det minsta n f¨ or vilket a = 1? R¨akna ut v¨ ardet p˚ a avrundningsenheten µ. Svar: µ =

1

Svar: t =

Uppgift 2.2 Best¨ amning av antal signifikanta siffror fo ¨r ett flyttal Best¨ am en gr¨ ans f¨ or beloppet av absoluta felet vid lagring av talen b = e30 ( i MATLAB: b=exp(30) )

och

c = 0.1318 .

Utnyttja att ¨ ovre gr¨ ansen f¨ or relativa felet ¨ar ≤ µ.

Ange v¨ arden p˚ a b och c med felgr¨anser. Svar: b =

c=

Hur m˚ anga korrekta decimaler1 har n¨armev¨ardena till b respektive c? F¨or b g¨ aller:

f¨or c g¨aller:

Hur m˚ anga signifikanta siffror1 har n¨armev¨ardena till b respektive c? F¨or b g¨ aller:

f¨or c g¨aller:

Hur m˚ anga decimala signifikanta siffror2 f˚ ar man ungef¨ar f¨or ett godtyckligt flyttal i MATLAB? Observera att antalet signifikanta siffror ¨ar 0.3 · t + 1. St¨ammer detta med vad du erh¨oll f¨or b och c?

Svar: Svar:

Uppgift 2.3 Best¨ amning av det st¨ orsta flyttal som kan lagras. Studera a = 1.99999 · 2n , d¨ ar n ¨ar ett positivt heltal. Best¨am det st¨orsta n, som ger ett v¨arde p˚ a a. Ange i decimal form ett ungef¨ arligt v¨arde p˚ a det st¨ orsta talet som kan lagras.

Svar:

Uppgift 2.4 Best¨ amning av det minsta positiva tal som kan lagras. Best¨am p˚ a motsvarande s¨ att det minsta positiva tal som kan lagras genom att ber¨akna a = 2−n .

1 2

Anv¨ and regeln i rutan p˚ a sid 13 i Eld´en/Wittmeyer-Koch. Se tumregeln i slutet p˚ a kap 2.5 i Eld´en/Wittmeyer-Koch

2

Svar:

3

Andragradsekvationer

R¨otterna till ekvationen ax2 + bx + c = 0 ges av f¨oljande uttryck

x1 =

−b +



b2 − 4ac , 2a

x2 =

−b −



b2 − 4ac . 2a

Uppgift 3.1 MATLAB-k¨ orning Anv¨and format long e, som skriver ut 16 siffror. L˚ at a = 1.1 och c = 0.7 hela tiden medan vi ska anv¨anda tv˚ a olika v¨arden p˚ a b (se tabellen). Ge a, c och b v¨ arden, r¨ akna sedan ut x1 och x2 med formeln. Best¨ am ocks˚ a de “exakta” v¨ ardena p˚ a r¨otterna med hj¨alp av MATLAB-funktionen roots som anropas med roots([a,b,c]) Fyll i antalet signifikanta siffror i tabellen nedan. Det fungerar om ni tittar p˚ a hur m˚ anga siffror som o ammer. ¨verensst¨ b

Antal sign. siffror i x1

Antal sign. siffror i x2

8.48 · 105

(i MATLAB: b=8.48e5)

8.48 · 107 Uppgift 3.2 Tolkning av resultaten Vilken rot (x1 eller x2 ) f˚ ar d˚ alig noggrannhet?

Svar:

F¨orklara varf¨ or just den roten f˚ ar d˚ alig noggrannhet. Svar: F¨orklara varf¨ or problemet med d˚ alig noggrannhet o¨kar n¨ar beloppet av b blir st¨orre. Svar: Uppgift 3.3 Alternativ formel Ta fram en alternativ formel f¨ or att ber¨akna r¨otterna.(Se boken, sid 20) Svar: Uppgift 3.4 MATLAB-resultat med den alternativa formeln R¨akna ut b˚ ada r¨ otterna med den nya formeln och fyll i tabellen: b

Antal sign. siffror i x1

Antal sign. siffror i x2

8.48 · 105 8.48 · 107 Vilken rot f˚ ar s¨ amst resultat i detta fall ?

Svar:

J¨amf¨ or med k¨ orningen i Uppgift 3.1 och f¨orklara skillnaden. Svar:

3

4

Praktisk ber¨ akning av ett gr¨ ansv¨ arde

Vi ska studera f (x) =

1 − cos x . x2

Om vi Maclaurin-utvecklar cos x och s¨atter in i f (x) erh˚ alls g(x) =

1 x2 x4 − + − · · ·. 2! 4! 6!

Uppgift 4.1 Gr¨ ansv¨ ardet Best¨ am gr¨ ansv¨ ardet f¨ or f (x) d˚ a x → 0.

Svar: lim f (x) = x→0

Uppgift 4.2 MATLAB-ber¨ akningar Vi ska r¨ akna ut f (x) f¨ or x = 1, 10−1 , 10−2 , . . . , 10−16 , f¨or att se om de praktiskt best¨amda f (x)-v¨ ardena n¨ armar sig gr¨ansv¨ardet n¨ar x minskar. Skriv i MATLAB: (eller i en skript-fil) format long e x=logspace(0,-16,17) x=x(:) f=(1-cos(x))./x.^2 [x f f-gr¨ ansv¨ ardet ] format

st¨ aller om utskriftsformatet. ger de ¨onskade x-v¨ardena. ger en kolumnvektor. ./ och .^ g¨or elementvis division resp upph¨ojt till. genererar en tabell. st¨ aller tillbaks utskriftsformatet.

Svara p˚ a f¨ oljande fr˚ agor: F¨or vilket x hamnade vi n¨ armast gr¨ansv¨ardet?

Svar:

Hur stor ¨ ar avvikelsen fr˚ an gr¨ ansv¨ardet i detta fall?

Svar:

Uppgift 4.3 Illustrationer Vi vill studera lite noggrannare hur n¨ara gr¨ansv¨ardet vi kan komma och ska d¨arf¨or rita f (x) i intervallet x ∈ [3 · 10−5 , 10−3 ] ( x=linspace(3e-5,1e-3,2000); ). Best¨ am sedan f f¨ or dessa x-v¨ arden och plotta: plot(x,f) (Utnyttja tidigare MATLAB-kommandon som kan plockas fram genom att skriva f¨orsta tecknet/tecknen (tex f) och upp˚ at-pil. Skriv semikolon efter uttrycket, s˚ a undertrycks utskriften.) Tyv¨arr kan vi inte, med hj¨ alp av skalan p˚ a y-axeln, se hur n¨ara gr¨ansv¨ardet vi har hamnat. Rita d¨ arf¨ or en bild av felfunktionen ( fel=abs(f-gr¨ ansv¨ ardet) ). Ta ut en papperskopia av felkurvan eller g¨or en skiss. a felkurvan och rita f¨or hand en kurva som ligger precis ovanf¨or F¨olj topparna p˚ v¨ardena. Studera den och ange minsta felgr¨ans och motsvarande x-v¨arde= xopt . xopt ≈

Minsta felgr¨ ans ≈ Uppgift 4.4 Tolkning av resultatet

Identifiera trunkeringsfelet, RT , (=andra termen i g(x)) och felet fr˚ an ber¨akningarna, RB , i felkurvan. Markera i figuren ungef¨ar f¨or vilka x RT resp. RB dominerar.

4

View more...

Comments

Copyright � 2017 NANOPDF Inc.
SUPPORT NANOPDF