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

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