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

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

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

Sammanfattninga av kursens block inför tentan

Block 2: Lineära system

Tentamen i Beräkningsvetenskap I (1TD393)

Tentamen i Beräkningsvetenskap II, 5.0 hp,

Omtentamen i DV & TDV

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

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

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

Tentamen i: Beräkningsvetenskap I och KF

Konvergens för iterativa metoder

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

Tentamen i: Beräkningsvetenskap I och KF

LABORATION cos (3x 2 ) dx I =

Icke-linjära ekvationer

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

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

Gruppuppgifter 1 MMA132, Numeriska metoder, distans

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

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

Varning!!! Varning!!!

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

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

Tentamen i Beräkningsvetenskap II, 5.0 hp,

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

Tentamen i Beräkningsvetenskap II, 5.0 hp,

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

Tentamen i Beräkningsvetenskap II, 5.0 hp,

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

LÖSNINGSFÖRSLAG TILL TENTAMEN 2 SF1664

Tentamen i Beräkningsvetenskap II, 5.0 hp,

FMNF15 HT18: Beräkningsprogrammering Numerisk Analys, Matematikcentrum

Tentamen del 1 SF1546, , , Numeriska metoder, grundkurs

Fel- och störningsanalys

Ickelinjära ekvationer

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

Linjära ekvationssystem

Fel- och störningsanalys

Tentamen i Beräkningsvetenskap II, 5.0 hp,

Tentamen i Beräkningsvetenskap II, 5.0 hp,

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

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

Linjära ekvationssystem

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

2 Matrisfaktorisering och lösning till ekvationssystem

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

Tentamen i Beräkningsvetenskap II, 5.0 hp,

Tentamen i Teknisk-Vetenskapliga Beräkningar

Sammanfattning (Nummedelen)

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

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

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

Icke-linjära ekvationer

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

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

SF1625 Envariabelanalys Lösningsförslag till tentamen

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:

Numerisk Analys, MMG410. Lecture 12. 1/24

Interpolation Modellfunktioner som satisfierar givna punkter

TMA226 datorlaboration

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

Ordinära differentialekvationer,

MMA132: Laboration 2 Matriser i MATLAB

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

Lösningsanvisningar till vissa av de icke obligatoriska workout-uppgifterna i Beräkningsvetenskap II

Lösningsförslag till tentamensskrivningen i Numerisk analys

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

7 november 2014 Sida 1 / 21

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

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

Laboration 4. Numerisk behandling av integraler och begynnelsevärdesproblem

Kapitel 4. Iterativ lösning av ekvationer

Föreläsning 8: Aritmetik och stora heltal

LAB 4. ORDINÄRA DIFFERENTIALEKVATIONER. 1 Inledning. 2 Eulers metod och Runge-Kuttas metod

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

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.

DN1212 för M: Projektrapport. Krimskramsbollen. av Ninni Carlsund

SF1625 Envariabelanalys Lösningsförslag till tentamen DEL A

f (a) sin

Numerisk Analys, MMG410. Lecture 13. 1/58

Föreläsning 5. Approximationsteori

Föreläsning 1. Numeriska metoder grundkurs II, DN1240. Carina Edlund Mottagningstid i rum 4516: onsdagar kl.

Tentamen: Numerisk Analys MMG410, GU

Tentamen del 2 SF1511, , kl , Numeriska metoder och grundläggande programmering

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

Maclaurins och Taylors formler. Standardutvecklingar (fortsättning), entydighet, numerisk beräkning av vissa uttryck, beräkning

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

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

Numeriska metoder, grundkurs II. Dagens program. Gyllenesnittminimering, exempel Gyllenesnittetminimering. Övningsgrupp 1

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

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

Block 1. 5 augusti 2003 Sammanfattning 1 (11) Teknisk databehandling DV1 vt Begrepp

Tentamen del 1 SF1511, , kl , Numeriska metoder och grundläggande programmering

Transkript:

Lösningsanvisningar till de icke obligatoriska workoutuppgifterna 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. 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. 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. Tillsammans med svaret i föregående deluppgift ger detta att relativa felet i x är högst ca 10 9.1 10 7 < 10. 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. LU-faktorisering ger 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 på lösningar till tidigare system i följden av ekvationssystem.) 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 ( (2/)n + n 2) t f. Tiden för att först göra LU-faktorisering och därefter lösa varje nytt system med framåtsubstitution och bakåtsubstitution blir ca (2/)n t f + m ( n 2 + n 2) t f. Tidsvinsten då LU-faktorisering blir alltså ca (m 1)(2/)n mn 2. 1

11. Se läroboken, kap 9.4 12. Studera Fig 9.6 i läroboken. Gausselimineringen av koefficientmatrisen sker där i de två första raderna inuti den första for-loopen (beräkning av factor och av f(k)). Antalet flyttalsoperationer i dessa två rader är sammanlagt (en division, en multiplikation och en subtraktion). For-loopen går n 1 varv så det totala antalet flyttalsoperationer för LU-faktoriseringen blir ca n. 1. 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. 2

Integraler 6. I uppgift c var steglängden h 1 = 1/4 och diskretiseringsfelet upskattades med tredjedelsregeln till ca -0.042. 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 2 = 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 2. Det medför att när h ändras med en faktor d, till dh, så ändras felet med en faktor d 2. För att lösa uppgiften ska du alltså finna det värde på d som gör att d 2 0.042 = 0.5 10 6. Detta ger att d 0.0045. Den sökta steglängden är alltså ca 0.0045 (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.25 (1.00 + 4 0.9 + 2 0.74 + 4 0.4 + 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 (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 2. Slutsatsen blir att funktionsfelet är högst (1 0)0.5 10 2 = 0.5 10 2. 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 2. Detta innebär att Q har beräknats med ca två korrekta decimaler.

8. För härledning av 15-delsregeln: se kap 18.2.1 i läroboken. Härledning av övre gräns för funktionsfelet: 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 [(f(x 0) f(x 0 )) + 4 Triangelolikheten ger nu 2 n 2 k=2,4,... S(h) S(h) h [ f(x 0) f(x 0 ) + 4 2 n 2 k=2,4,... h ɛ + 4 = h n 1 k=1,,... (f(x k ) f(x k )) + (f(x k ) f(x k )) + (f(x n ) f(x n ))] n 1 k=1,,... f(x k ) f(x k ) + f(x k ) f(x k ) + f(x n ) f(x n ) ] n 1 k=1,,... ɛ + 2 n 2 k=2,4,... ) ( ɛ + 4 n 2 ɛ + 2n 2 + ɛ 2 = h nɛ = hnɛ ɛ + ɛ 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 (c 0 + c 1 x) dx = a 0 (c 0 + c 1 a) + a 1 (c 0 + c 1 b) a Detta kan skrivas om som c 0 (b a) + c 1 (b 2 a 2 )/2 = c 0 (a 0 + a 1 ) + c 1 (a 0 a 0 a + a 1 b) 4

För att detta ska stämma måste a 0 + a 1 = b a a 0 a + a 1 b = (b 2 a 2 )/2 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)/2. 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 2*ones(1,n-1) 1] trap = (b-a)/2*coeff*fx 5

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 2 (10). 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å 12 korrekta decimaler skulle vi alltså behöva åstadkomma ytterligare 11 korrekta decimaler, vilket skulle kräva ca 11. 6. iterationer. Eftersom det måste vara ett helt antal iterationer blir svaret att det krävs ytterligare 7 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 12 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 2 y = 0. Vi tillämpar nu Newton-Raphsons metod på denna ekvation och får: x k+1 = x k (x 2 k y)/2x k Efter förenkling blir detta: x k+1 = (x k + y/x k ) /2 Vi provar formeln för fallet då y =. Enligt uppgiften ska vi ha tre signifikanta siffror vilket innebär att absolutbeloppet av relativa felet 6

bör vara högst ca 0.5 10. Vi uppskattar absolutbeloppet av relativa felet med (x k x k 1 )/x k. Med x 0 = får vi: k x k (x k x k 1 )/x k 1 2 0.5 2 1.72142857142857 0.155 1.72050810014728 5. 10 5 Efter tre iterationer kan vi alltså säga att = 1.7 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 2 E, där 1 m < 2. Då kan vi konstatera att y = m 2 E/2. Vi kan enkelt räkna ut 2 E/2 om E är jämn. Om vi antar att 2 1/2 finns förberäknad och lagrad i datorn kan vi även räkna ut 2 E/2 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/2 c 2 /8. Genom att sätta x 0 = (1 + c/2 c 2 /8) 2 E/2 får vi alltså en mycket noggrann startgissning. Om vi tillämpar ovanstående på y = får vi följande. I basen 2 är y = 1.1 2 1. Startgissningen blir då x 0 = 1.00111 2 1/2 i bas 2. I bas 10 blir detta x 0 = 1.7257277914221. Om vi itererar med detta som utgångspunkt får vi: k x k (x k x k 1 )/x k 1 1.720716587278 0.0049 2 1.720508076948 1.2 10 5 1.7205080756888 7.2 10 11 4 1.7205080756888 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 mycket noggrant. Resultatet x överensstämmer i samtliga decimaler med det resultat som operationen sqrt() 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 f(x) = 7

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 ~(eq <= 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 8

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. 9