Facit Tentamen i Beräkningsvetenskap I (1TD393) STS ES W K1 Del A Utför överskådlig beräkning, och presentera svar på följande frågor. Det bifogade svarsarket måste användas, så lös först uppgifterna på ett kladdpapper, överför senare en ren och tydlig lösning på svarsarket. Uppgift 1: 4p Talrepresentation För normaliserade tal i talsystemet ; p; L; U = 10; 2; 4; 4, vilket är det största tal som kan skrivas, och vilket är det negativa tal som är närmast 0 ? Skriv talen med mantissa, bas, exponent. Svar: 9:9 104 , Uppgift 1 Beräkning: + x:x 10 4:::4 1:0 10 4 där 1 x:x < 10. Lösn.: Uppgift 2: 4p Integraler Två uppskattningar av en integral beräknas, där steglängden vid ena beräkningen är hälften av steglängden vid den andra beräkningen. Kvoten mellan motsvarande feluppskattningar fås till 15.91. Vilken integrationsmetod från kursen har använts? Uppgift 2 Svar: Kvoten är ungefär 16, och endast en halvering av steglängden har skett, så Simpsons formel har använts (2n = 16 ger n = 4 vilket är minskningen av felet när Simpsons formel används) Lösn.: Uppgift 3: 4p 0 L= 1 A 0 Linjära ekvationssystem 1 A 011 0 A. 1 0 0 1 2 3 2 1 0 ,U= 3 , Pb = 0 2 1 1 1 0 0 5 Beräkna x för systemet LUx = P b. Använd framåt- Svar: x = ( 1 1 0)T Uppgift 3 Formler: Ly = Pb Ux=y 0 10 A 1 0 1 A A 0 10 A 1 0 1 A A Framåtsubstitution: Ly=Pb y1 1 0 0 1 2 1 0 y2 0 = 1 1 1 y3 3 y1 = 1=1 = 1 y2 = (0 ( 2 y1 ))=1 = 2 y3 = (3 (1 y1 + 1 y2 )=1 = 0 Beräkning: Bakåtsubstitution: Ux=y x1 1 2 3 1 0 2 3 x2 2 = x3 0 0 5 0 x3 = 0=5 = 0 x2 = (2 ( 3 x3 ))=2 = 1 x1 = (1 (2 x2 + 3 x3 )=1 = 1 Lösn.: Uppgift 4: 4p Programmering 3 och bakåtsubstitution. Följande program i matlab är tänkt att summera talen i en vektor v . Tyvärr har raderna blivit omstuvade. Svara med den följd av radnummer som ger ett korrekt fungerande program (radnumren står tryckta till vänster om varje programrad). 1 2 3 4 5 6 disp(’Summan av elementen i v’); for i=1:length(v) s=s+v(i); disp(s) s=0; end Uppgift 4 Svar: Korrekt kod (motsvarar radordning: 5, 2, 3, 6, 1, 4): s=0; for i=1:length(v) s=s+v(i); end disp(’Summan av elementen i v’); disp(s) Lösn.: Uppgift 5: 4p Icke-linjära ekvationer Iteration med Newton-Raphson har givit följande sekvens: x1 = 15:4, x1 = 17:3, x2 = 16:8, x3 = 17:7, x4 = 17:5. En noggrannhet om 0.01 krävs. Är iterationen färdig om en uppskattning av det relativa felet används för att beräkna noggrannheten? Uppgift 5 Svar: 0.0114, dvs inte tillräckligt bra. Beräkning: En uppskattning av relativa felet är: (17.7-17.5)/17.5 = 0.0114 Lösn.: Del B Uppgift 6: 6p Mätfel i indata Tryckförhållandena i vattenledningsnätet i Lutorp kan beräknas som lösningen till ekvationssystemet Ap = b. Koefficientmatrisen A har storlek 400 400 och konditionstalet ond(A) 10. Både p och b är kolonnvektorer med vardera 400 element. Värdet pk är trycket i knutpunkt nummer k i vattenledningsnätet. Värdena i högerledet b beräknas som en kombination av olika mätvärden. Låt b beteckna det ”exakta” högerledet, som vi skulle ha fått om mätvärdena vore utan mätfel. Låt b̃ beteckna det högerled som faktiskt används i beräkningarna. Mätfelen leder till att kb b̃k = kbk. Hur stort får vara för att det relativa felet i den beräknade lösningen ska bli högst 10 Svaret ska motiveras, men härledning av formler krävs inte. Svar: 10 Uppgift 6 1 ? 2 (p exakt men okänd lösning; p̃ approximativ lösning) kp p̃k cond(A) kb b̃k : kpk kbk Formler: Enligt uppgiften är cond(A) = 10 och k b b̃ kk b k = . Insättning i formeln ovan ger: kp p̃k 10: kpk Beräkning: För att vi säkert ska ha k p p̃ kk p k 10 1 krävs alltså att 10 2 . Lösn.: Uppgift 7: 6p Effektiv integrering I kursen ingick miniprojektet ”Dammen vid Newton’s Mill”. Där användes tredjedelsregeln för uppskattning av felet i beräkning av trapetsformeln med steglängd h, som vi här betecknar med T (h). Feluppskattningen förutsatte att både T (2h) och T (h) beräknades. Många av de integrandvärden som ingår i beräkningen av T (h) ingår också i beräkningen av T (2h). Om man räknar ut T (h) oberoende av T (2h) görs därför en del onödigt extraarbete. En riktigt effektiv implementering av ovanstående skulle i stället ha utnyttjat att T (h) kan skrivas som: T (h) = T (2h) + G(h) där är en konstant och G(h) är ett uttryck som beror på de integrandvärden som ingår i beräkningen av T (h) men inte i T (2h). Härled formeln ovan i detalj, så att du kan ställa upp formlerna för och G(h). Uppgift 7 Svar: = 1=2, G(h) = h (f (x1 ) + f (x3 ) + + f (xn 1 ) Låt x0 ; x1 ; : : : ; xn beteckna indelningspunkterna då steglängden h används. Med steglängden 2h blir indelningspunkterna då x0 ; x2 ; x4 ; : : : ; xn 2 ; xn . Vi har att T (2h) = 2h (f (x0 ) + 2(f (x0 ) + f (x2 ) + + f (xn 2 2 )) + f (xn )) och Beräkning: T (h) = = h 2 (f (x0 ) + 2(f (x0 ) + f (x1 ) + + f (xn 1 )) + f (xn )) 2 (f (x0 ) + 2(f (x0 ) + f (x2 ) + + f (xn 2 )) + f (xn )) h h + 2 (f (x1 ) + f (x3 ) + + f (xn 1 ) 2 1 T (2h) + h (f (x1 ) + f (x3 ) + + f (xn = 2 Lösn.: 1) Del C Uppgift 8: 8p Personalkostnad i Lutorp Tryckförhållandena i knutpunkterna i vattenledningsnätet i Lutorp kan beräknas som lösningen till det lineära ekvationssystemet Ap = b; där A är en n n-matris, p och b är kolonnvektorer med vardera n element. Det finns n = 5000 stycken knutpunkter i vattenledningsnätet och vektorelementet pk ä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 pr i reservoaren påverkar högerledet b, men inte koefficientmatrisen A i ekvationssystemet ovan. Vid Tekniska kontoret i Lutorp används ett datorprogram där användaren får mata in ett värde på pr varpå programmet löser ekvationssystemet ovan och presenterar resultatvektorn p i form av ett diagram. När ett värde på pr är färdigbehandlat frågar programmet om användaren vill mata in ett nytt värde på pr , och så vidare, så länge användaren vill göra ytterligare beräkningar. En ingenjör vid Tekniska kontoret använder nu programmet för att göra beräkningar för 10 olika pr -värden. Vad kommer dessa beräkningar att kosta om ingenjörens timlön är X kronor? Frågan ska besvaras utifrån följande förutsättningar: Det finns två dominerande tidskomponenter: den tid programmet arbetar med att beräkna p och den tid ingenjören använder för att läsa resultatdiagram och mata in nya värden. Övrig tidsåtgång antar vi är försumbar Den tid ingenjören använder för att läsa resultatdiagram och mata in nya värden uppgår till ca 10 minuter. Programmet använder så effektiva metoder som möjligt för beräkningarna En flyttalsoperation tar 1ns (= 1 10 Uppgift 8 9 s). Svar: Kostnaden blir ca 0:28X kronor Effektiv implementering: LU-faktorisera A. Använd sedan L, U och P för lösning av Ap = b, för varje nytt högerled b. Antalet flyttalsoperationer blir: ca (2=3)(5000)3 flyttalsoperationer för LU-faktorisringen (gausseliminering med radpivotering) samt ca 2(5000)2 flyttalsoperationer för varje ekvationssystem (framåtsubstitution följd av bakåtsubstitution). För att lösa 10 ekvationssystem blir arbetet alltså (2=3)(5000)3 + 10 2(5000)2 Beräkning: flyttalsoperationer, som är ca 84 109 flyttalsoperationer. Eftersom tiden per flyttalsoperation enligt uppgiften är 10 9 sekunder, så blir exekveringstiden för att lösa de 10 ekvationssystemen ca 84 sekunder, det vill säga ca 1.4 minuter. Den totala tiden som ingenjören ägnar åt att utföra analyserna blir alltså ca 10+1.4 minuter, det vill säga ca 0.2 timmar. Med timkostnaden X kronor kommer kostnaden för analyserna alltså att bli ca 0:2X kronor. Lösn.: