Uppsala universitet Institutionen för informationsteknologi Teknisk databehandling Tentamen i Beräkningsvetenskap I (nya versionen), 5.0 hp, 2008-2-9 Skrivtid: 4 00 7 00 (OBS! Tre timmars skrivtid!) Hjälpmedel: Bifogat formelblad, miniräknare. Det är också tillåtet att använda Mathematics Handbook eller Physics Handbook, men uppgifterna är konstruerade så att de inte förutsätter tillgång till handbok. För full poäng krävs fullständiga räkningar och utförliga resonemang samt motivering till alla svar. Betygsnivåer: Betyg 3: minst 3 poäng Betyg 4: minst 20 poäng varav minst 7 poäng på del B Betyg 5: minst 26 poäng varav minst 3 poäng på del B. Del A. Matrisen A har LU-faktoriserats med resultatet 0 0 2 2 4 L = 0, U = 0 2, P = 2 0 0 2 2 2 Lös ekvationssystemet 2 Ax = 2 0 0 0 0 0 0 genom att utnyttja L, U och P. 2. Ekvationen 2 sin( x) = x har en lösning nära x = 2. För att nna den kan man exempelvis använda bisektionsmetoden. Genomför två iterationer med bisektionsmetoden på detta problem, med startintervall [.9, 2.]. Svara med den
resulterande approximativa lösningen till ekvationen. Dessutom ska du med motivering ange ungefär hur noggrann denna approximativa lösning är. 3. En integral har beräknats med trapetsformeln, T (h). Tre olika steglängder har använts: h =, h = 0.75, respektive h = 0.5. På så sätt har man fått tre olika närmevärden till integralen: T () = 22.6594, T (0.75) = 2.2684, respektive T (0.5) = 04.6480. (a) Uppskatta diskretiseringsfelet i T (0.5) med tredjedelsregeln. (b) Använd det uppskattade felet för att åstadkomma ett förbättrat närmevärde till integralen genom richardsonextrapolation utgående från T (0.5). 4. I en av laborationerna i kursen ingick att i Matlab använda formeln exp( + h) exp() h för att beräkna ett närmevärde till derivatan d dx ex i x =. Experimentet gick ut på att undersöka hur noggrann denna approximation av derivatan blev för allt mindre värden på h. Det visade sig att resultaten kunde tolkas med hjälp av begreppen diskretiseringsfel och kancellation. (a) Förklara vad dessa två begrepp innebär. (b) Förklara vad som ger upphov till diskretiseringsfel respektive kancellation i formeln ovan. 5. Matlab-funktionen nedan beräknar summan av de n första termerna i taylorutvecklingen av e x. function y = exptaylor(x,n) if n > 0 y = ; term = ; for i = :n- term = term*(x/i); y = y + term; end else y = NaN; end 2
Visa med torrexekvering vad som händer när man gör funktionsanropet y = exptaylor(,3). Med torrexekvering menas att du utför instruktionerna i funktionen för hand och skriver ner hur variablernas värden förändras. 3
Del B 6. Både trapetsformeln och Simpsons formel för numerisk beräkning av f(x)dx kan skrivas på formen b a n w i f(x i ), i=0 x i = a + i b a, i = 0,... n. n (a) Skriv en Matlab-funktion myquad som beräknar summan ovan. Ett typiskt anrop av denna funktion ska se ut som: I = myquad(@f,a,b,w,n) Integranden f(x) antas vara denierad i Matlab-funktionen f(x). Vektorn w innehåller vikterna w i, i = 0,... n. (b) Skriv ett huvudprogram i Matlab som anropar myquad för att beräkna g(x)dx med Simpsons formel, n = 8. Vi förutsätter 0 det redan nns en l g.m där g(x) beskrivs. Det blir inget avdrag för rena Matlab-fel, så länge det framgår att programmet i princip är riktigt. (6p) 7. I kraftverket vid Fixed Point Falls leds vatten in i rörledningar och vidare till turbiner. Friktionen i rörledningarna kan beräknas genom att man löser von Karmans ekvation: f = 4 log 0 (Re f ) 0.4. Lösningen till ekvationen är den dimensionslösa friktionsfaktorn f. Den beror på den likaledes dimensionslösa konstanten Reynolds tal Re. Reynolds tal kan ses som en sammanfattande karakterisering av det aktuella ödets egenskaper och beror på ödeshastigheten, rörledningens diameter och vätskans tröghetsegenskaper. I vårt fall är det realistiskt att anta att Re är i storleksordningen 0 5. Ett sätt att lösa problemet ovan numeriskt är att använda en xpunktsmetod som är specialanpassad för just denna ekvation. Idén är att införa variabeln x = / f. Von Karmans ekvation blir då på formen x = g(x) och kan direkt användas som utgångspunkt för xpunktsiteration. Utred om xpunktsiterationen kommer att konvergera i fall vi vet att lösningen f är i närheten av 0.004. För att ge poäng ska svaret bygga 4
på en teoretisk analys. I analysen kommer följande deriveringregel till användning: Låt u(x) vara en funktion av x. Kedjeregeln ger då att d dx log 0 (u(x)) = log 0(e) d 0.43 d u(x) u(x) dx u(x) dx u(x) 8. Tryckförhållandena i knutpunkterna i vattenledningsnätet i Lutorp kan beräknas som lösningen till det lineära ekvationssystemet (6p) Ap = b, där A är en n n-matris, p och b är kolonnvektorer med vardera n element. Det nns n stycken knutpunkter i vattenledningsnätet och vektorelementet p k är trycket i knutpunkt nummer k. Systemet drivs med självtryck. Vattnet i nätet kommer från en vattenreservoar och vattentrycket i reservoaren avgör hur stort trycket blir i de olika knutpunkterna. Vattentrycket r i reservoaren påverkar högerledet b, men inte koecientmatrisen A i ekvationssystemet ovan. För att vattenledningssystemet ska fungera tillfredställande måste trycket i knutpunkterna överstiga ett undre gränsvärde c. Nu vill ingenjörer på Tekniska kontoret i Gaussby kommun, dit Lutorp hör, beräkna hur stort trycket i vattenreservoaren minst behöver vara för att vattentrycket i knutpunkterna ska bli större än eller lika med c. Din uppgift är att utforma ett program för att bestämma det värde på r som gör att det minsta elementet i vektorn p får värdet c. Uttryck programmet i Matlab eller Matlab-liknande notation. Du får använda Matlabs inbyggda kommandon för att lösa olika typer av beräkningsproblem, så du behöver inte implementera en egen numerisk metod. Vidare kan kommandot min(p) användas för att hitta minsta värdet i vektorn p. Du får också anta att det nns en färdig Matlabfunktion hogerled(r), som genererar ekvationssystemets högerled, samt att koecientmatrisen nns lagrad i en.mat-l. Det blir inget avdrag för rena Matlab-fel, så länge det framgår att programmet i princip är riktigt. För full poäng krävs att programmet är eektivt samt att du förklarar tankegången bakom programmet. (8p) 5