Tentamen i: Beräkningsvetenskap I och KF Skrivtid: december 2014 kl 14 00 17 00 OBS! 3 timmar! Hjälpmedel: Penna, suddgummi, miniräknare och linjal får användas. Formler finns i bifogad formelsamling. Övrigt: Uppgifterna måste vara välskrivna, med alla ingåe tankesteg redovisade. Endast svar på förtryckt svarsblankett beaktas. Observera att tentamen rättas baserat på kursmål. Betyg mål: 1 Nyckelbegrepp Visa förtrogenhet med nyckelbegrepp som ingår i kursen 2 Algoritmer Visa förtrogenhet med de algoritmer som ingår i kursen 3 Analys Visa förtrogenhet med de analysförfaranden som ingår i kursen 4 Programmering Visa elementär förtrogenhet med programmering (mer avancerad programmering görs i grupp och framför dator) Uppgift 1: Hydrostatiskt tryck 3 I miniprojekt 2 i den här kursen beräknades det hydrostatiska trycket för en damm enligt modellen tryck(ý) = 20 0 Ô (20 Ý) Û(Ý) Ý där Ô = 62 5 och värden för Û(Ý) har mätts upp enligt y 0 5 10 20 w(y) 20.00 20.05 20.25 20.51 21.18 Utför nu denna beräkning för hand med Simpsons metod, steglängd = 5. a) Kalla integranden för (Ý) = Ô(20 Ý)Û(Ý). Uträkning av integranden ger: y 0 5 10 20 f(y) 25000 18797 12656 6409 0 Simpsons formel lyder: Ë = 3 (1 1 + 4 2 + 2 3 + 4 4 + 1 5 ) så vi får Ë = 5 (1 25000 + 4 18787 + 2 12656 + 4 6409 + 1 0) = 251896 3 Följande värden på integralen är beräknade med Simpsons metod. Uppskatta diskretiseringsfelet av en integralberäkning för = 0 625 om du har följande värden på integralen givna: steglängd h: 2.5 1.25 0.625 tryck(y) 599.7 625.6 627.2 b) För = 0 625 ger femtondelsregeln feluppskattningen: Ê( ) = Ë( ) Ë(2 ) = 627 2 625 6 = 0 10667 Kontroll: Man kan även räkna ut den för den dubbla steglängden, vilket ger (625.6-599)/ = 1.7733. Kvoten blir då 1.7733/0.10667 = 16.624 vilket var väntat.
Uppgift 2: Begrepp inom beräkningsvetenskapen Följande begrepp är kända inom kursens ramar: adaptivitet, adaptiv metod, algoritm, avrundningsfel, diskretisering, diskretiseringsfel, effektivitet, fixpunktsiteration, flyttal, iteration, iterativ metod, kancellation, komplexitet, kondition, konditionstal, konvergens, konvergenshastighet, maskinepsilon, noggrannhet, noggrannhetsordning, numerisk metod, overflow, stabil respektive instabil algoritm. Besvara utan speciell motivering vilket det sökta nyckelbegreppet är: En integrationsmetod A närmar sig den exakta lösningen snabbare än metod B när steglängden i diskretiseringen minskar. Detta beror sannolikt på att metod A, relativt metod B, har högre... Noggrannhetsordning. Man kan även tänka sig konvergenshastighet men detta svar är perifert, och har vi inte gått igenom under kursen. Eftersom datorer lagrar tal och räknar baserat på ett visst flyttalssystem innebär det att varje beräkning har ett visst... avrundningsfel Uppgift 3: Poetisk programmering Skriv upp exakt vad som skrivs ut på bildskärmen när följande matlab-program körs. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 16 i = 1; while (i <= 5) if (i == 3) disp( inget annat än ); if (i <= 3) disp( ); else if (i == 5) disp( mellanrum ); else disp( och däremellan ); i = i + 1; inget annat än och däremellan mellanrum Du har skrivit följande funktion i MATLAB: function [svar] = prisuppgift(pris, maxbetalning) momssats = 0.25; fakturakostnad = ; totalpris = pris * (1 + momssats) + fakturakostnad; if (totalpris > maxbetalning) totalpris = maxbetalning; svar = totalpris;
Ett av följande fyra körscenarier i MATLAB ( är MATLABs kommandoprompt) är korrekt (jämför med funktionen). Redovisa vilket av dem, inklusive relevanta förklarande kommentarer som ditt svar. Körscenario 1: Körscenario 2: a = prisuppgift(, 100); disp; Körscenario 3: a = prisuppgift(100, 200); disp; Körscenario 4: a = prisuppgift(, 200); disp; Körscenario 2 är korrekt, eftersom 100 1 4 = 200. a = prisuppgift(200, 100); disp; Uppgift 4: Kan vi lita på vår lösning? Du har löst ett linjärt ekvationssystem Ü = där högerledet byggs upp av mätvärden från ett mätinstrument. Det står på mätinstrumentet att det har 0.1% noggrannhet. En beräkning av matrisens konditionstal ger ÓÒ ½( ) 100. Vilket maximalt procentuellt fel kan din lösning Ü ha? Bedömer du att det är stort eller litet? Konditionstalet cond( ) beräknas som: cond( ) = ½ 1 ½ Uppgift 5: Enligt formelsamlingen: Ü ½ Ü ½ cond( ) ½ ½ Vi vet från uppgiften att relativa felet är 0.1% och cond = 100 vilket ger ett relativt fel på max 10%, vilket i alla fall är i rätt storleksordning i förhållande till svaret. Icke-linjära ekvationer Gör två iterationer med Newton-Raphson för följande ekvation. Välj startgissning Ü = 1. Ange x-värdena och feluppskattningen för det absoluta felet efter varje iteration. 2Ü 4Ü = 2
Vi skriver om ekvationen på formen (Ü) = 0: (Ü) = 2Ü 4Ü 2 Derivering ger Newton-Raphson lyder vilket ger Insättning av värden ger ¼ (Ü) = 2 2Ü Ü Ò+1 = Ü Ò Ü Ò+1 = Ü Ò Ü 1 = 1 2 4 2 2 2 4 4 (Ü Ò ) ¼ (Ü Ò ) 2Ü 4Ü 2 2 2Ü 4 = 0 8711 Ü 2 = 0 8711 2 0 8711 4 0 8711 2 2 2 0 8711 4 = 0 8407 Felen är 0 1289 för första iterationen och 0 0304 för andra iterationen. Man kan notera att felet är 4 gånger mindre i den andra iterationen. Uppgift 6: Mätning av utsläpp Max målbetyg: 4 Direktör von Karman var upprörd. Det var bara några år sen myndigheterna skärpte kraven, och vi var tvungna att köpa en dyr mätutrustning, och nu kommer dom här och skärper kraven igen. Jag tänker inte köpa ny mätutrustning, jag kan möjligen tänka mig modifiera den vi har. Imorgon bitti måste jag beskriva för myndigheterna i detalj hur vi ska göra. Det här får ni fixa säger hen, slänger några papper på bordet och lämnar rummet. Det gjordes ganska grundliga analyser när utrustningen köptes och som tur är finns dokumentationen kvar. Enligt denna gäller följande: Utsläppen av miljöfarliga avgaser sker i någon typ av cykliskt förlopp, i cykler om 10 sekunder. Utsläppsvolymen (i parts per million, ppm) under en sådan cykel kan beräknas med 10 Î = (Ø) Ø 0 där Ø är tiden i sekunder. Nu är inte funktionen (Ø) känd utan istället har man en (dyrbar) utrustning som mäter utsläppsnivån (Ø ) vid tidpunkt Ø, sedan integreras mätvärdena med någon numerisk metod. I dagsläget utförs mätningar med 51 sensorer, dvs varje cykel delas upp i 50 intervall. Man får då följande värden: t (s): Ø 0 = 0 Ø 1 Ø 49 Ø 50 = 10 f(t) (ppm) (Ø 0 ) (Ø 1 ) (Ø 49 ) (Ø 50 ) Utrustningen har en mätnoggrannhet på 3 korrekta decimaler, dvs mätfelet är (Ø ) 0 5 10 3 vilket i sin tur ger det totala funktionsfelet (10 0) 0 5 10 3 enligt känd formel. Dessutom säger dokumentationen att man gjort grundliga kontroller av de beräkningsmetoder som testades där det visade sig att diskretiseringsfelet blev 0 5 när Trapetsmetoden användes och 0 01 för Simpsons metod. Av någon anledning valde man då Trapetsmetoden. Enligt brevet som von Karman slängde på bordet kräver nu myndigheterna att noggrannheten i mätningarna ändras från 0.8 till 0.008. Det är relativt billigt att att utöka antalet mätsensorer, dvs mätpunkter från dagens 50. Utrustningen klarar tydligen av drygt 200 sensorer. Frågan är nu: hur noggrant kan utrustningen maximalt mäta utsläppen, och uppfyller den då myndigheternas krav? Hur går man i så fall tillväga, utan att behöva köpa helt ny utrustning, och för att komma undan så billigt som möjligt? Om några år skärps sannolikt kraven ytterligare, till mättnoggrannhet på 0.0008 ppm. Klarar utrustningen av även detta? Direktör von Karman kräver en utredning av detta som kan användas som underlag för hens dragning hos myndigheterna. Det måste även framgå teori och relevanta nyckelbegrepp för att myndigheterna ska övertygas. Din uppgift blir nu att göra denna utredning.
Uppgift 7: Mätfelet i utrustningen gör att man får ett funktionsfel som blir (10 0) där = 0 5 10 3. Detta fel blir alltså 0 5 10 2. Bättre än så kan alltså inte noggrannheten bli med dagens utrustning. Den nivån uppfyller de nya kraven. Sedan tillkommer beräkningsmetoderna och diskretiseringsfelet. Uppenbarligen räcker det inte med 50 punkter, men en fördubbling skulle innebära en minskning av felet med en faktor 16 för Simpsons metod och en faktor 4 för trapets. Detta beror på att metodernas noggrannhetsordning är 4 respektive 2. Genom att fördubbla antalet sensorer till 100 skulle man alltså få diskretiseringsfel 0 5 4 = 0 125 för Trapets och 0 01 16 = 0 000625 för Simpson. Trapets räcker alltså inte till utan man måste använda Simpson och 100 mätpunkter. Det totala felet blir då 0 005 + 0 000625 = 0 005625. Detta uppfyller myndigheternas krav. Däremot kommer inte utrustningen klara morgondagens krav eftersom funktionsfelet är för stort. Det hjälper då inte vilken beräkningsmetod som används eller hur många sensorer som används. Diffusion Max målbetyg: 5 Du jobbar på ett kemibolag som jobbar med en process där en kemikaliedroppe droppas på ett material och får sprida sig via diffusion. Processen simuleras genom att successivt stega framåt genom tiden. Varje tidsteg innebär lösningen av ett linjärt ekvationssystem Ü = där högerledet representerar fördelningen av kemikalien i det förra tidssteget, lösning Ü representerar fördelningen av kemikalien i det aktuella tidssteget, och representerar materialstrukturen som kemikalien sprider sig i. Skissa och motivera en effektiv metod som genomför simuleringen. Formulera hur felet växer med antalet tidssteg T och hur det beror på matrisen. Nu ska det användas en ny kemikalie som luckrar upp materialstrukturen där kemikalien befinner sig. Vad innebär det för din metod? Påverkas felet och beräkningstid? Eftersom A inte ändras så är en effektiv kod: [L U P] = lu(a) x = droppe(); for i = 1:T b = x; d = L \ (P*b); x = U \ d; Algoritmen är effektiv eftersom man bara gör LU ( Ç(Æ 3 ) )en gång och man gör substitution ( Ç(Æ 2 ) ) T gånger. Detta jämfört med en naiv algoritm där man gör hela Ç(Æ 3 ) arbetet T gånger. Relativa felet i lösning Ü Ò+1 kan uppskattas som: Ü Ò+1 Ü Ò+1 cond( ) Ü Ò vilket gör att den bästa uppskattning av relativa felet i steg n blir: Ü Ò (cond( ))Ò Ü 0 Ü 0 bonus : Om matrisen A ändras i varje tidssteg, får man ingen vinst med LUfaktorisering. Den relativa feluppskattningen kommer nu istället vara: Ü Ò Ü 0 Ü 0 Ò =1 (cond( ))