Tentamen i Beräkningsvetenskap I och KF, 5.0 hp, 2015-08
Transcription
Tentamen i Beräkningsvetenskap I och KF, 5.0 hp, 2015-08
Uppsala universitet Institutionen för informationsteknologi Avdelningen för beräkningsvetenskap Tentamen i Beräkningsvetenskap I och KF, 5.0 hp, 2015-08-29 Skrivtid: 0900 − 1200 (OBS! Tre timmars skrivtid!) Hjälpmedel: Bifogat formelblad och miniräknare. För fullt uppfyllda mål och kriterier på uppgifterna krävs fullständiga räkningar och utförliga resonemang samt motivering till alla svar. Kursmål (förkortade), hur de täcks i uppgifterna och maximalt betyg (med reservation för modifieringar). Fråga nr 1 2 3 4 5 6 7 Nyckelbegrepp Algoritmer Analys Programmering 3 3 3 3 3 3 3 3 4 5 Del A 1. Vid lösning av linjära ekvationssystem Ax = b är standardmetoden baserad på LUfaktorisering med pivotering. (a) Hört i korridorerna: i. ”Det där med pivotering det gör man typ för att konditionstalet ska bli bättre”. ii. ”Pivotering det gör man för att noggrannheten ska bli bättre”. Är ovanstående sant eller falskt? Kort motivering av dina svar krävs. (b) Vad kan man säga om noggrannheten i lösningen x om cond(A) = 102 och i. högerledet b beräknas av Matlab via funktionsberäkningar, så att det enbart är fel orsakade av flyttalsrepresentationen? ii. högerledet b består av mätdata med 1% fel? För godkänt krävs en bedömning av om felet eventuellt kan bli stort eller om det kommer att vara litet i respektive fall. 1 2. Visa att du behärskar algoritmen för LU-uppdelning med pivotering, genom att utföra algoritmen på matrisen 1 4 4 A = −4 8 4 . 2 5 8 Ange LU-faktorerna och pivoteringsmatrisen P explicit. 3. Mängden vatten i Fyrisån som passerar en viss plats (dvs ett visst snitt av ån) kan beräknas med Z tn v(t) · w · h(t)dt, (60 · 60 · 24) t1 där v(t) är hastigheten vid tiden t (i m/s), w är bredden på ån och h(t) är vattennivån (höjden) vid tiden t (båda i meter). Om vi mäter höjd och bredd i meter blir resultatet i enheten m3 /dygn. Man har mätt upp hastighet och höjd några dagar i följd och fått följande värden (medelvärden över respektive dygn): t 1 h(t) (m) 2.05 v(t) (m/s) 1.02 2 2.22 1.03 3 2.18 1.50 4 2.20 1.80 5 2.00 1.80 Bredden på ån vid mätstället är w = 8m. Beräkna flödet med någon av de metoder som ingår i kursen och uppskatta även diskretiseringsfelet med Richardsonextrapolation. 4. (a) Matlabs inbyggda integral-lösare innehåller s k adaptiva metoder. Förklara kort vad det begreppet betyder (du behöver inte beskriva algoritmen). (b) För lösning av icke-linjära ekvationer används som regel iterativa metoder, t ex Newton-Raphsons. Nedan ser du en sekvens av beräknade lösningar xk från Newton-Raphsons metod och en annan metod (det spelar ingen roll vilken metod). Tyvärr vet vi inte vilken sekvens som tillhör vilken metod. Avgör detta och motivera. x0 x1 x2 x3 x4 x5 x6 x7 = 0.9 = -2.4845756 = 2.2971761 = 1.9818160 = 1.9349357 = 1.9337545 = 1.9337538 = 1.9337538 x0 x1 x2 x3 x4 x5 x6 x7 2 = = = = = = = = 1.9000000 1.9455591 1.9293465 1.9353621 1.9331618 1.9339709 1.9336740 1.9337831 5. (a) Nedanstående program beräknar Fibonacci-talen. Torrexekvera programmet då funktionen anropas med s = fibonacci(4). Med ’torrexekvering’ avses att du följer programmet och redovisar rad för rad vad som händer (och skriver ut successiva värden på parametrar etc). function fib = fibonacci(limit) if limit <= 0 fib = NaN; return; end fib = [1; 1]; n = 3; f = 2; while (f <= limit) n = n+1; fib = [fib; f]; f = fib(n-1)+fib(n-2); end (b) Skriv den matematiska funktionen f (p) = sin(p) − p2 − 1 2p som en Matlabfunktion med namnet func1. Matlabfunktionen ska vara skriven så att den lagras i en egen m-fil i Matlab. 3 Del B 6. Kalkylatorappar, t ex miniräknare på mobiltelfoner, har normalt en knapp för ”n:te √ n roten ur” som t ex kan vara markerad med a. Parametern n är här ett positivt heltal och a ett positivt reellt tal. Miniräknaren visar 10 siffror på displayen, och dessa siffror ska vara korrekta. Din uppgift är att beskriva hur detta kan räknas ut, dvs kort beskriva en lämplig algoritm som uppfyller kraven ovan. Algoritmen får enbart använda de aritmetiska operationerna addition, subtraktion, multiplikation och division. Tips: Problemet kan skrivas som x = a1/n , vilket medför att det kan skrivas som xn = a. 7. När man har system av m st icke-linjära ekvationer och använder Newton-Raphsons metod förvandlas f 0 (xk ) till en m × m-matris av derivator, den s k Jakobianen J(x̄k ). Divison med f 0 (x) blir då istället en matrisinvers och formuleringen av NewtonRaphson förändras till x̄k+1 = x̄k − J(x̄k )−1 · f¯(x̄k ), (1) där x̄k , x̄k+1 och f¯(x̄k ) är vektorer av längd m. Genom omskrivningen ūk = −J(x̄k )−1 · f¯(x̄k ) ⇒ J(x̄k )ūk = −f¯(x̄k ) kan man formulera om Newton-Rapsons metod till J(x̄k )ūk = −f¯(x̄k ) x̄k+1 = x̄k + ūk (2) (a) Omformuleringen från (1) till (2) påverkar beräkningarna på något sätt. Förklara på vilket sätt och varför. (b) Man kan använda LU-faktorisering i lösningen av ovanstående. Tjänar man något på det om man ser till antalet operationer? 4