Lösningsanvisningar till de icke obligatoriska workoutuppgifterna

Relevanta dokument
Lösningsanvisningar till de icke obligatoriska workoutuppgifterna

Lösningsanvisningar till de icke obligatoriska workoutuppgifterna

Lösningsförslag Tentamen i Beräkningsvetenskap I, 5.0 hp,

Facit Tentamen i Beräkningsvetenskap I (1TD393) STS ES W K1

Facit Tentamen i Beräkningsvetenskap I, STS ES W K1

Facit Tentamen i Beräkningsvetenskap I, STS ES W K1

Sammanfattninga av kursens block inför tentan

Tentamen i Beräkningsvetenskap I och KF, 5.0 hp,

Block 2: Lineära system

Tentamen i Beräkningsvetenskap I (1TD393)

Tentamen i Beräkningsvetenskap I/KF, 5.0 hp,

Tentamen i Beräkningsvetenskap I och KF, 5.0 hp,

Tentamen i Beräkningsvetenskap I (nya versionen), 5.0 hp, Del A

FÖRSÄTTSBLAD TILL TENTAMEN. ELLER (fyll bara i om du saknar tentamenskod): Datum: 16 januari Bordsnummer:

Tentamen i Beräkningsvetenskap II, 5.0 hp,

Tentamen i: Beräkningsvetenskap I och KF

Tentamen i Beräkningsvetenskap I, DV, 5.0 hp, OBS: Kurskod 1TD394

Omtentamen i DV & TDV

Föreläsning 14: Exempel på randvärdesproblem. LU-faktorisering för att lösa linjära ekvationssystem.

Linjära ekvationssystem

Facit Tentamen i Beräkningsvetenskap I (1TD393 - nya versionen, 5hp!)

Tentamen i: Beräkningsvetenskap I och KF

Linjära ekvationssystem

Varning!!! Varning!!!

Använd gausseliminering med radpivotering. Spara minnesutrymme genom att lagra både Ä och Í i den datastruktur som inledningsvis innehåller

Konvergens för iterativa metoder

Tentamen i Beräkningsvetenskap I (nya versionen), 5.0 hp, Del A

Icke-linjära ekvationer

LABORATION cos (3x 2 ) dx I =

ELLER (fyll bara i om du saknar tentamenskod): Datum: 32 maj Bordsnummer: Kontrollera att du fått rätt tentamensuppgifter

Facit Tentamen i Beräkningsvetenskap I (1TD393) STS ES W K1

Teorifrågor. 6. Beräkna konditionstalet för en diagonalmatris med diagonalelementen 2/k, k = 1,2,...,20.

Fel- och störningsanalys

2 Matrisfaktorisering och lösning till ekvationssystem

NUMPROG, 2D1212, vt Föreläsning 1, Numme-delen. Linjära ekvationssystem Interpolation, Minstakvadratmetoden

Lösningsförslag till inlämningsuppgift 3 i Beräkningsprogrammering Problem 1) function condtest format compact format long

Fel- och störningsanalys

ELLER (fyll bara i om du saknar tentamenskod): Datum: 32 maj Bordsnummer: Kontrollera att du fått rätt tentamensuppgifter

Fallstudie: numerisk integration Baserad på läroboken, Case Study 19.9

Gruppuppgifter 1 MMA132, Numeriska metoder, distans

LABORATION 2. Trapetsregeln, MATLAB-funktioner, ekvationer, numerisk derivering

FMNF15 HT18: Beräkningsprogrammering Numerisk Analys, Matematikcentrum

Tentamen i Beräkningsvetenskap II, 5.0 hp,

Tentamen del 1 SF1546, , , Numeriska metoder, grundkurs

Tentamen i Beräkningsvetenskap II, 5.0 hp,

NUMPROG, 2D1212, vt Föreläsning 9, Numme-delen. Stabilitet vid numerisk behandling av diffekvationer Linjära och icke-linjära ekvationssystem

Tentamen i Beräkningsvetenskap II, 5.0 hp,

Tentamen i Beräkningsvetenskap II, 5.0 hp,

a = a a a a a a ± ± ± ±500

Del I: Lösningsförslag till Numerisk analys,

Tentamen i Beräkningsvetenskap II, 5.0 hp,

LÖSNINGSFÖRSLAG TILL TENTAMEN 2 SF1664

Institutionen för Matematik TENTAMEN I LINJÄR ALGEBRA OCH NUMERISK ANALYS F1, TMA DAG: Fredag 30 augusti 2002 TID:

Kurs DN1215, Laboration 3 (Del 1): Randvärdesproblem för ordinära differentialekvationer

Tentamen i Teknisk-Vetenskapliga Beräkningar

Tentamen, del 2 Lösningar DN1240 Numeriska metoder gk II F och CL

Ickelinjära ekvationer

Tentamen i Beräkningsvetenskap II, 5.0 hp,

MMA132: Laboration 2 Matriser i MATLAB

Tentamen i Beräkningsvetenskap II, 5.0 hp,

Matematisk analys för ingenjörer Matlabövning 2 Numerisk ekvationslösning och integration

Icke-linjära ekvationer

TENTAMEN I LINJÄR ALGEBRA OCH NUMERISK ANALYS F1, TMA671

Föreläsning 5. Approximationsteori

Ordinära differentialekvationer,

Datoraritmetik. Från labben. Från labben. Några exempel

7 november 2014 Sida 1 / 21

2D1240 Numeriska metoder gk II för T2, VT Störningsanalys

SF1625 Envariabelanalys Lösningsförslag till tentamen

Akademin för utbildning, kultur och kommunikation MMA132 Numeriska Metoder Avdelningen för tillämpad matematik Datum: 2 juni 2014

Block 5: Ickelineära. ekvationer? Läroboken. Löpsedel: Icke-lineära. ekvationer. Vad visade laborationen? Vad visade laborationen?

Numerisk Analys, MMG410. Lecture 12. 1/24

Linjära ekvationssystem. Avsnitt 1. Vi ska lära oss en metod som på ett systematiskt sätt löser alla linjära ekvationssystem. Linjära ekvationssystem

TMA226 datorlaboration

Prov 1 2. Ellips 12 Numeriska och algebraiska metoder lösningar till övningsproven uppdaterad a) i) Nollställen för polynomet 2x 2 3x 1:

Moment 5.5 Övningsuppgifter I 5.60a. 5.60b, 5.60.c, 61

Teknisk Beräkningsvetenskap I Tema 3: Styvhetsmodellering av mjuk mark med icke-linjära ekvationer

Sammanfattning (Nummedelen)

5B1146 med Matlab. Laborationsr. Laborationsgrupp: Sebastian Johnson Erik Lundberg, Ann-Sofi Åhn ( endst tal1-3

TMV166 Linjär algebra för M. Datorlaboration 2: Matrisalgebra och en mekanisk tillämpning

Moment Viktiga exempel Övningsuppgifter

f(x + h) f(x) h f(x) f(x h) h

Kort sammanfattning av Beräkningsvetenskap I. Varning!!! Varning!!!

TANA09 Föreläsning 5. Matrisnormer. Störningsteori för Linjära ekvationssystem. Linjära ekvationssystem

SF1669 Matematisk och numerisk analys II Lösningsförslag till tentamen DEL A. r cos t + (r cos t) 2 + (r sin t) 2) rdrdt.

Vectorer, spannet av vektorer, lösningsmängd av ett ekvationssystem.

Lösningsförslag till tentamensskrivningen i Numerisk analys

Institutionen för Matematik TENTAMEN I LINJÄR ALGEBRA OCH NUMERISK ANALYS F1, TMA DAG: Torsdag 28 aug 2008 TID:

KTH 2D1240 OPEN vt 06 p. 1 (5) J.Oppelstrup

2D1250 Tillämpade numeriska metoder II Läsanvisningar och repetitionsfrågor:

TMA 671 Linjär Algebra och Numerisk Analys. x x2 2 1.

Approximation av funktioner

M0043M Integralkalkyl och Linjär Algebra, H14, Linjär Algebra, Föreläsning 11

1. (Dugga 1.1) (a) Bestäm v (3v 2u) om v = . (1p) and u =

Denna föreläsning. DN1212 Numeriska metoder och grundläggande programmering FN Standardform för randvärdesproblem

Akademin för utbildning, kultur och kommunikation MMA132 Numeriska Metoder Avdelningen för tillämpad matematik Datum: 13 jan 2014

Interpolation Modellfunktioner som satisfierar givna punkter

Föreläsning 8: Aritmetik och stora heltal

SKRIVNING I VEKTORGEOMETRI Delkurs

LAB 1. FELANALYS. 1 Inledning. 2 Flyttal. 1.1 Innehåll. 2.1 Avrundningsenheten, µ, och maskinepsilon, ε M

Transkript:

Lösningsanvisningar till de icke obligatoriska workoutuppgifterna Intro till vektorer, matriser och Gausselimination 8. Den euklidiska normen x = x 1 + x + x n och x 1 + x + ( ) x n = x 1 x x n 9. Vi ska beräkna v u : 1 1 1 3 7 = 1 4 4 6 x 1 x. x n = x T x. = 69. 10. Snygga till ekvationssystemet och ställ på matrisform ger: 0 1 13 0 1 13 Aug = 0 3 13 0 3 13 1 1 1 0 0 0 13 13 6 6 Lös ur detta ut I 3, sedan I, sedan I 1 (bakåtsubstitution), vilket ger I 1 = 6, I = 5, I 3 = 1 (enheten blir ampere). 11. Ställ upp Aug: Aug = 1 1 3 0 4 3 1 1 multiplikatorer: l 1 = 1 l 31 = 1 0 0 1 0 5 5 3 För att hitta nästa multiplikator får man 0. Tricket då är att göra radbyte mellan rad och rad 3: 1 0 5 5 3 0 0 1 Sedan kan man lösa ut de obekanta med bakåtsubstitution och får då lösningen x 1 = 17 10, x = 13 5, x 3 =. 1

1. Ställ upp Aug: Aug = 1 1 0 4 3 1 1 multiplikatorer: l 1 = 1 l 31 = 1 0 0 0 0 5 5 3 Här blir hela den andra raden 0 (utom högerledet). Nollraden säger att 0 x 1 + 0 x + 0 x 3 = dvs 0 =, vilket är omöjligt. Om man gör ett radbyte liksom föregående uppgift blir den tredje raden fortfarande en nollrad, så det löser inte problemet. Det här ekvationssystemet saknar då lösning. Man säger att matrisen här är singulär. Saknar singulära problem alltid lösning? Nej, om högerledet istället varit b = 1 hade man fått 1 0 0 0 0 0 5 5 3. Den andra ekvationen säger här att 0 = 0, vilket är sant. Det finns nu oändligt många lösningar. Programvara, t ex Matlab, upptäcker i sådana här fall att matrisen är singulär. Följande resultat får man om man försöker lösa problemet i Matlab: >> x = A\b Warning: Matrix is singular to working precision. x = NaN -Inf Inf Vad NaN och Inf betyder tas upp senare i kursen.

13. (a) Sätt och P A blir (testa!) P = P = 0 0 0 1 0 1 0 0 0 0 1 0 1 0 0 0 1 1 1 0 1 0 1 1 1. (b) Sätt och P A blir P = P = 0 0 0 1 0 0 1 0 0 1 0 0 1 0 0 0 1 1 0 1 1 0 1 1 1. 3

Linjära system 7. (a) Falskt. Kondition är en egenskap hos problemet oberoende av precisionen i beräkningarna. (b) Falskt. Pivotering påverkar algoritmens stabilitet och har inget med konditionstalet att göra. (c) Rätt. Utan pivotering är algoritmen instabil och då kan avrundningsfel ackumuleras så att noggrannheten i den beräknade lösningen blir mycket dålig. 8. (a) Hela sista raden i U består av nollor. Därmed kan vi dra slutsatsen att koefficientmatrisen i denna uppgift är singulär och att systemet saknar entydig lösning. Elimineringen i högerledet resulterar i att sista ekvationen i Ux = d blir 0 = 0. Slutsatsen blir att ekvationssystemet har oändligt många lösningar. (b) Att Matlab hittar en lösning är en effekt av flyttalsräkning. I flyttalsberäkningar blir inte sista ekvationen riktigt 0 = 0. Om man tittar på element U 33 ser man att sista elementet inte blir 0, utan 0.0000 och man kan anta att det finns avrundningsskräp i någon decimal. Det gör att Matlab felaktigt löser problemet. Däremot varnar Matlab att konditionstalet är väldigt högt. Om man beräknar det exakta (Matlabs backslash använder en uppskattning av konditionstalet) konditionstalet så ser man att det ligger på storleksordningen 10 16 vilket, när dubbel precision används, betyder att matrisen kan vara singulär. Det här är ett exempel på att man inte okritiskt kan acceptera lösningar från programvaror, utan man måste ha kunskaper i hur beräkningsprogramvaror faktiskt fungerar. 9. (a) Givet att endast de två termerna skilda från 0 är behäftade med mätfel blir relativa felet i högerledet (0.005 + 0.005)/(5000 + 6000) 9.1 10 7. (b) Relativt fel i x är enligt känd formel högst produkten av konditionstalet och relativa felet i högerledet. Nu är enligt uppgiften cond(a) 10 3. Tillsammans med svaret i föregående deluppgift ger detta att relativa felet i x är högst ca 10 3 9.1 10 7 < 10 3. Detta är mindre än 1 % fel. (c) Om konditionstalet är 10 6 blir relativa felet i x högst ca 10 6 9.1 10 7 9.1 10 1. Felet kan alltså vara större än 1 % i detta fall. 10. Om man utnyttjar LU-faktorisering ger det väsentligt kortare exekveringstid när vi vill lösa en följd av av ekvationssystem där alla systemen har samma koefficientmatris A och de olika högerleden inte är kända samtidigt. (Det kan till exempel vara så att varje nytt högerled beror 4

på lösningar till tidigare system i följden av ekvationssystem.) Man utför LU-faktorisering av matrisen en gång, sedan utför man framåtoch bakåtsubstitution för varje högerled. De relevanta parametrarna för att uttrycka tidsvinsten är m (antalet ekvationssystem som ska lösas), n (A är en n n-matris) och t f (ungefärlig exekveringstid för en flyttalsoperation). Tiden för att lösa varje nytt system med gausseliminering och bakåtsubstitution blir ca m ( (/3)n 3 + n ) t f. Tiden för att först göra LUfaktorisering och därefter lösa varje nytt system med framåtsubstitution och bakåtsubstitution blir ca (/3)n 3 t f + m ( n + n ) t f. Tidsvinsten då LU-faktorisering blir alltså ca (m 1)(/3)n 3 mn. 11. En tridiagonal matris har strukturen: d 1 f 1 e 1 d f A =......... e n 1 d n 1 f n 1 e n d n De underdiagonala elementen e i kommer att nollställas i eliminationsprocessen. Elementen på diagonalen förändras enligt d i = d i faktor f i 1, i =,..., n. De överdiagonala elementen f i förändras inte alls eftersom f i = f i faktor 0 = f i, i =,..., n 1. Högerledet b uppdateras som vanligt genom b i = b i faktor b i 1, i =,..., n. Vi tänker oss nu för enkelhets skull att vi lagrar diagonalerna i vektorer e, d respektive f och högerledet b. Algoritmen för Gausselimination blir då % Gausselimination av matris och högerled for k = :n faktor = e((k)/d(k-1) d(k) = d(k) - faktor*f(k-1): b(k) = b(k) - faktor*b(k-1); end Sedan utförs bakåtsubstitution, där vi för varje rad n, n 1,..., 1 nu enbart har tre element att hantera. Det blir då: 5

% Bakåtsubstitution x(n) = b(n)/d(n); for k = n-1: -1:1 x(k) = (b(k) - f(k)*x(k+1))/d(k); end 1. Se lösningsförslaget ovan. LU-faktorisering innehåller enbart elimination av koefficientmatrisen (högerledet elimineras i framåtsubstitutionen). Vi tittar alltså enbart på elimineringen av koefficientmatrisen, och i lösningen ovan sker det i de två första raderna inuti for-loopen (beräkning av faktor och av d(k)). Antalet flyttalsoperationer i dessa två rader är sammanlagt 3 (en division, en multiplikation och en subtraktion). For-loopen går n 1 varv så det totala antalet flyttalsoperationer för LU-faktoriseringen blir (n 1) 3 3n. 13. Sätt inledningsvis piv = 1:n. Ändra vidare i algoritmen för LU-faktorisering så att piv(k) och piv(i) används som radindex i koefficientmatrisen. När två rader ska byta plats med varandra håller vi ordning på detta genom att låta värdena piv(i) och piv(k) byta plats med varandra i piv. På så vis kommer raderna i koefficientmatrisen att bearbetas i rätt ordning (enligt radpivoteringen) utan att vi fysiskt behöver byta plats på raderna i koefficientmatrisen. 14. Operationen P b ersätts av att vi tar elementen i b i den ordning som anges av piv. I övrigt behövs inga förändringar av algoritmen. 6

Integraler 6. I uppgift 3c var steglängden h 1 = 1/4 och diskretiseringsfelet upskattades med tredjedelsregeln till ca -0.04. Absolutbeloppet av diskretiseringsfelet var alltså något mindre än 0.5 10 1, vilket innebär att integralen approximerades med en korrekt decimal. Vi söker nu steglängden h = d (1/4) så att absolutbeloppet av diskretiseringsfelet blir 0.5 10 6 (vilket innebär sex korrekta decimaler). Diskretiseringsfelet i trapetsmetoden är proportionellt mot h. Det medför att när h ändras med en faktor d, till dh, så ändras felet med en faktor d. För att lösa uppgiften ska du alltså finna det värde på d som gör att d 0.04 = 0.5 10 6. Detta ger att d 0.00345. Den sökta steglängden är alltså ca 0.00345 (1/4) 8.6 10 4. Om vi vill göra en motsvarande analys för fallet med Simpsons formel så ska vi utnyttja att diskretiseringsfelet då är proportionellt mot h 4. Om vi med Simpsons formel skulle ha fått diskretiseringsfelet ɛ med steglängd 1/4, så skulle steglängden för att få sex korrekta decimaler bli d (1/4) där d 4 ɛ = 0.5 10 6. 7. (a) Av de metoder vi behandlat kan vi förvänta oss att Simpsons formel ger den noggrannaste lösningen. Simpsons formel tillämpad på våra data blir: Q 0.5 3 (1.00 + 4 0.93 + 0.74 + 4 0.43 + 0.00) = 0.66 (b) Vi behöver ta hänsyn till diskretiseringsfelet och funktionsfelet. Diskretiseringsfelet kan vi uppskatta med 15-delsregeln. Då behöver vi räkna ut Simpson-värdet för steglängden 0.5: Q 0.5 3 (1.00 + 4 0.74 + 0.00) = 0.66 Diskretiseringsfelet enligt 15-delsregeln blir då: (0.66 0.66)/15 = 0. Absolutbeloppet av funktionsfelet är enligt känd formel högst (b a)ɛ, där [a, b] är integrationsintervallet och ɛ är en övre gräns för felet i de enskilda funktionsvärdena. I vårt fall är b a = 1 0. Funktionsvärdena är enligt uppgiftstexten givna med två korrekta decimaler, så ɛ = 0.5 10. Slutsatsen blir att funktionsfelet är högst (1 0)0.5 10 = 0.5 10. Totalt blir felet summan av diskretiseringsfelet och funktionsfelet. Enligt de uppskattningar vi gjort ovan blir absolutbeloppet av det totala felet i vårt fall alltså högst ca 0.5 10. Detta innebär att Q har beräknats med ca två korrekta decimaler. 7

8. Vi ska först härleda 15-delsregeln. Diskretiseringsfelet vid beräkning av en integral med Simpsons metod kan skrivas som I = S(h) + E(h), där I är den exakta integralen, S(h) är den beräknade integralen med Simpsons metod och E(h) betecknar diskretiseringsfelet. För Simpsons metod beror E(h) av h som ( b a 180 h4 f (4) eller O(h 4 ). Vi beräknar integralen med två steglängder, h och h och får då I = S(h) + E(h) = S(h) + O(h 4 ) I = S(h) + E(h) = S(h) + O((h) 4 ) = S(h) + 16O(h 4 ). Om vi antar att f (4) är ungefär lika vid beräkning med de två olika steglängderna medför det att S(h) + O(h 4 ) S(h) + 16O(h 4 ) vilket ger O(h 4 ) S(h) S(h) 15 dvs vilket skulle visas. E(h) S(h) S(h), 15 Förutom diskretiseringsfel införs också funktionsfel. Härledning av övre gräns för detta fel: Vi konstaterar först att det vi talar om är S(h) S(h), där S(h) är Simpsons formel med exakta funktionsvärden och S(h) är Simpsons formel med de faktiskt använda funktionsvärdena, som kan vara behäftade med avrundnings- och/eller mätfel. Vi betecknar de exakta funktionsvärdena med f(x) och de approximativa med f(x). Enligt föregående uppgift är f(x) f(x) < ɛ. Vi får S(h) S(h) = h 3 [(f(x 0) f(x 0 )) + 4 Triangelolikheten ger nu n k=,4,... S(h) S(h) h 3 [ f(x 0) f(x 0 ) + 4 n k=,4,... h ɛ + 4 3 = h 3 n 1 k=1,3,... (f(x k ) f(x k )) + (f(x k ) f(x k )) + (f(x n ) f(x n ))] n 1 k=1,3,... f(x k ) f(x k ) + f(x k ) f(x k ) + f(x n ) f(x n ) ] n 1 k=1,3,... ɛ + n k=,4,... ) ( ɛ + 4 n ɛ + n + ɛ = h 3nɛ = hnɛ 3 ɛ + ɛ 8

Eftersom h = (b a)/n följer nu att S(h) S(h) (b a)ɛ, vilket skulle bevisas. 9. Ett allmänt förstagradspolynom har formen f(x) = c 0 +c 1 x. Uppgiften går ut på att bestämma a 0 och a 1 så att formeln i uppgiften gäller med exakt likhet för förstagradspolynom. Notera att eftersom det handlar om att härleda trapetsformeln, så betecknar x 0 integrationsintervallets nedre gräns, a, och x 1 den övre gränsen, b. Det vill säga a 0 och a 1 ska bestämmas så att: b a Detta kan skrivas om som (c 0 + c 1 x) dx = a 0 (c 0 + c 1 a) + a 1 (c 0 + c 1 b) c 0 (b a) + c 1 (b a )/ = c 0 (a 0 + a 1 ) + c 1 (a 0 a 0 a + a 1 b) För att detta ska stämma måste a 0 + a 1 = b a a 0 a + a 1 b = (b a )/ I detta ekvationssystem betraktas a och b som givna. Genom att lösa ekvationssystemet får vi fram vi fram värden på de obekanta a 0 och a 1, närmare bestämt: a 0 = a 1 = (b a)/. När vi sätter in dessa värden i formeln i uppgiften ser vi att resultatet har blivit trapetsformeln. Uppgiften visar alltså ett alternativt sätt att härleda trapetsformeln. Simpsons formel kan härledas på motsvarande vis. Den är exakt för tredjegradspolynom. 10. Givet integrationsgränserna a och b, antalet delintervall n samt en Matlab-funktion som beskriver integranden f(x), så kan trapetsformeln implementeras på följande vis: x = linspace(a,b,n+1) fx = f(x) coeff = [1 *ones(1,n-1) 1] trap = (b-a)/*coeff*fx 9

Ickelineära ekvationer 4. Tänkbara svårigheter: Startgissning x 0 nära kurvans minimipunkt gör att x 1 hamnar långt från nollställena. Ett olyckligt val av startgissning enligt ovan kan göra att iterationsprocessen divergerar. Om man skulle råka välja minimipunkten som startgissning så blir det division med noll. Det finns två lösningar i närheten av x = 1, den ena mindre än och den andra större än 1. Om man är ute efter en specifik lösning och råkar välja startgissningen för långt ifrån den, så kan eventuellt få konvergens mot den andra lösningen i stället. 5. Beträffande bisektionsmetoden vet vi att den övre gränsen för absolutbeloppet av felet halveras i varje iteration. Det innebär att det krävs log (10) 3.3 iterationer för att felet ska delas med 10 (vilket innebär att vi har fått ytterligare en korrekt decimal). I uppgift 1 gav bisektionsmetoden en lösning med en korrekt decimal. För att få 1 korrekta decimaler skulle vi alltså behöva åstadkomma ytterligare 11 korrekta decimaler, vilket skulle kräva ca 11 3.3 36.3 iterationer. Eftersom det måste vara ett helt antal iterationer blir svaret att det krävs ytterligare 37 iterationer. Beträffande Newton-Raphsons metod vet vi att konvergenshastigheten är kvadratisk. Tumregelsmässigt kan vi då säga att när vi är nära en lösning så fördubblas antalet korrekta decimaler i varje iteration. I uppgift 1 gav Newton-Raphson en lösning med två korrekta decimaler. Efter ytterligare två iterationer kommer vi då att ha ca 8 korrekta decimaler. Sedan ger nästa iteration teoretiskt ytterligare en fördubbling av antalet korrekta decimaler. Svaret är alltså att det krävs ytterligare tre iterationer för att vi ska ha nått minst 1 korrekta decimaler. 6. Vi betraktar y som givet och vill beräkna y. Första steget är att formulera en ekvation till vilken y är en lösning. Ett naturligt val är x y = 0. Vi tillämpar nu Newton-Raphsons metod på denna ekvation och får: x k+1 = x k (x k y)/x k Efter förenkling blir detta: x k+1 = (x k + y/x k ) / Vi provar formeln för fallet då y = 3. Enligt uppgiften ska vi ha tre signifikanta siffror vilket innebär att absolutbeloppet av relativa felet 10

bör vara högst ca 0.5 10 3. Vi uppskattar absolutbeloppet av relativa felet med (x k x k 1 )/x k. Med x 0 = 3 får vi: k x k (x k x k 1 )/x k 1 0.5 1.731485714857 0.155 3 1.7305081001478 5.3 10 5 Efter tre iterationer kan vi alltså säga att 3 = 1.73 med tre signifikanta siffror. Med formeln ovan kan man få en mycket noggrann approximation av y efter bara ett fåtal iterationer om man väljer startgissningen på ett smart vis. Om man skriver y > 0 som ett flyttal i normaliserad form så blir y = m E, där 1 m <. Då kan vi konstatera att y = m E/. Vi kan enkelt räkna ut E/ om E är jämn. Om vi antar att 1/ finns förberäknad och lagrad i datorn kan vi även räkna ut E/ för udda värden på E. Vidare innebär normaliseringen att m = 1 + c, där 0 c < 1. Taylorutveckling ger då att m 1 + c/ c /8. Genom att sätta x 0 = (1 + c/ c /8) E/ får vi alltså en mycket noggrann startgissning. Om vi tillämpar ovanstående på y = 3 får vi följande. I basen är y = 1.1 1. Startgissningen blir då x 0 = 1.00111 1/ i bas. I bas 10 blir detta x 0 = 1.7357779141. Om vi itererar med detta som utgångspunkt får vi: k x k (x k x k 1 )/x k 1 1.730716587378 0.0049 1.7305080769438 1. 10 5 3 1.7305080756888 7. 10 11 4 1.7305080756888 0 Observera att de två sista iterationerna gav samma resultat. I detta fall skulle det alltså ha räckt med tre iterationer för att beräkna 3 mycket noggrant. Resultatet x 3 överensstämmer i samtliga decimaler med det resultat som operationen sqrt(3) ger i Matlab. 9. Uppskattningen är densamma som vi använde i beräkningarna i uppgift 6 ovan. Den bygger på att absoluta felet kan uppskattas med skillnaden mellan x k och x k 1. För att få en approximation av relativa felet dividerar man sedan approximationen av absoluta felet med x k. Vi visar nu att x k x k 1 är en approximation av absoluta felet x x k 1, där x betecknar den exakta men okända lösningen till 11

f(x) = 0. Eftersom x är en lösning till problemet gäller att f(x ) = 0. Det ger sambandet: f(x k 1 ) = f(x ) f(x k 1 Nu använder vi medelvärdessatsen och får att: f(x k 1 ) = f(x ) f(x k 1 = f (c) x x k 1, där c är en (okänd) punkt mellan x och x k 1. Ur sambandet ovan följer att x x k 1 = f(x k 1 ) / f (c) När vi är nära x är det rimligt att anta att f (c) f (x k 1 ). Om vi sätter in detta i sambandet ovan får vi att det absoluta felet approximeras av f(x k 1 ) / f (x k 1 ). Slutligen noterar vi att när Newton- Raphsons metod används så är f(x k 1 ) / f (x k 1 ) = x k x k 1. Därmed har vi visat att x k x k 1 är en approximation av absoluta felet x x k 1. Notera att vi i algoritmen använder denna uppskattning för att bedöma om x k (inte x k 1 ) är tillräckligt noggrann. Vid konvergens vet vi att noggrannheten ökar väsentligt för varje ny iteration, så felet i x k kommer i praktiken att vara betydligt mindre än det uppskattade felet för x k 1. 10. while ~(ea <= es iter >= maxit) xrold = xr; xr = xr - func(xr)/dfunc(xr); iter = iter + 1; if xr ~= 0, ea = abs((xr-xrold)/xr)*100: end end Observera att villkoret i while-loopen ovan även kan formuleras så här: eq > es & iter < maxit 11. Bedömningen av om det tentativa värdet var tillräckligt bra bör bestå av två delar: Värdet ligger fortfarande kvar i intervallet [a, b] Det uppskattade felet i approximationen har minskat Båda dessa villkor bör vara uppfyllda för att det tentativa värdet ska accepteras. Det första villkoret är enkelt att testa och behöver inte motiveras närmare. Det andra villkoret förutsätter att vi har ett sätt att uppskatta felet i det tentativa värdet. Därvid kan vi exempelvis använda den feluppskattning som visades i uppgift 9 ovan. Vi utför den uppskattningen 1

för x (k+1) och jämför med motsvarande uppskattning för x (k) (som vi gjorde när x (k) beräknades och som vi antar att vi har sparat i en variabel). Om denna jämförelse tyder på att x (k+1) är noggrannare än x (k) så anser vi att det andra villkoret ovan är uppfyllt. Som teoretisk motivering för denna del kan du använda samma resonemang som i uppgift 9. 13