• No results found

Lösningar till tentamen i Beräkningsvetenskap II (nya versionen), 5.0 hp, Del A

N/A
N/A
Protected

Academic year: 2022

Share "Lösningar till tentamen i Beräkningsvetenskap II (nya versionen), 5.0 hp, Del A"

Copied!
6
0
0

Loading.... (view fulltext now)

Full text

(1)

Uppsala universitet

Institutionen för informationsteknologi Teknisk databehandling

Lösningar till tentamen i Beräkningsvetenskap II (nya versionen), 5.0 hp, 2009-06-01

Del A

1. Vi har tidpunkterna t0 = 2 , t1 = 5 och t2 = 10 . Ansätt Newtons interpolationspolynom

p(t) = A0+ A1(t − t0) + A2(t − t0)(t − t1)

Vi har nu kravet att interpolationspolynomet ska gå igenom de tre giv- na punkterna, dvs. det ska anta värdena 0.6 , 1.5 samt 2.6 då t är 2 , 5 resp. 10 .

p(2) = 0.6 ger direkt A0 = 0.6 .

p(5) = 1.5 ger A0+ A1(5 − 2) = 1.5 , dvs. A1 = 0.3 .

p(10) = 2.6 ger A0 + A1(10 − 2) + A2(10 − 2)(10 − 5) = 2.6 , dvs.

A2 = −0.01 .

Vi får p(t) = 0.6 + 0.3(t − 2) − 0.01(t − 2)(t − 5) och den uppskattade höjden efter 7 år blir p(7) , dvs. 2.0 meter.

2. Generera den ackumulerade sannolikhetsfördelningen genom att sum- mera successiva givna sannolikheter. Vi får då talen 0.21, 0.49, 0.76 samt 1.0 . Den ackumulerade sannolikhetsfördelningen kan ses som en funktion som har värdena

0.21 1 ≤ x < 2 0.49 2 ≤ x < 3 0.76 3 ≤ x < 4 1.0 4 ≤ x < 5

(2)

Vi kan nu generera talen 1, 2, 3 och 4 med de önskade sannolikheter- na genom att använda slumptal r likformigt fördelade på intervallet 0 ≤ r < 1 . Vi slumpar fram ett sådant r och genererar

1 om 0 ≤ r < 0.21 2 om 0.21 ≤ r < 0.49 3 om 0.49 ≤ r < 0.76 4 om 0.76 ≤ r < 1

3. Eftersom det sista värdet kunde betraktas som exakt, kan vi beräkna felet i de fyra första approximationerna:

h = 0.5 fel 1.54312 - 1.50784 = 0.03528 h = 0.25 fel 1.50998 - 1.50784 = 0.00214 h = 0.125 fel 1.50798 - 1.50784 = 0.00014 h = 0.0625 fel 1.50785 - 1.50784 = 0.00001 Vi beräknar kvoten mellan två på varandra följande fel:

0.03528 / 0.00214 = 16.49 0.00214 / 0.00014 = 15.29 0.00014 / 0.00001 = 14.00

och finner att den är ungefär 16, (den sista kvoten är ej noggrann, eftersom det sista felet bara har en signifikant siffra). Approximations- ordningen bör vara 4, (eftersom 24 = 16 ).

4. I denna uppgift fanns ett oavsiktligt fel i formuleringen. Där det står f(rand) borde det ha stått f(a+rand*(b-a)). De fel som det var tänkt att studenterna skulle finna var följande:

(a) Det mer formella felet är att resultatvariabeln res inte tilldelas något värde (i stället sker detta till variabeln r). Detta kommer att märkas av MATLAB vid ett provanrop.

(b) Intervallgränserna a och b används inte i funktionen, och denna kommer att fungera som vid en integral över ett intervall av längd 1. intvarde borde tilldelas (b-a)*sum/N .

(3)

(c) Vid Monte Carlo-integrering ska resultatet bli medelvärdet av de olika försöken, men här beräknas summan. Slutresultatet borde vara sum(temp)/antf .

5. För ett generellt system av differentialekvationer x0 = f (t, x, y) y0 = g(t, x, y)

har vi metoden Euler framåt (explicit Euler):

xk+1 = xk+ h · f (tk, xk, yk) yk+1 = yk+ h · g(tk, xk, yk)

I vårt fall har vi h = 0.1 , t0 = 0 , t1 = 0.1 och t2 = 0.2 . Vi känner x0 = 1 och y0 = 1 och ska beräkna x1, x2, y1 och y2. Vi får i första steget

x1 = x0+ h(x20+ y0− t0) = 1 + 0.1(12+ 1 − 0) = 1.2 y1 = y0+ h(x0+ y0) = 1 + 0.1(1 + 1) = 1.2

och i andra

x2 = x1+ h(x21+ y1− t1) = 1.2 + 0.1(1.22+ 1.2 − 0.1) = 1.454 y2 = y1+ h(x1 + y1) = 1.2 + 0.1(1.2 + 1.2) = 1.44

(4)

Del B

6. Ett rimligt antal steg för den första lösingen kan vara t.ex. 50. De senare får då 100 resp. 200 steg. Antalet värden i lösningen blir då 51, 101 resp. 201. Skillnaden mellan slutvärdena bör gå ned med en faktor 4 då steget halveras, och vi kan acceptera värden mellan t.ex. 3.8 och 4.2 . Vi får ett program

y0 = 1;

Ns = 50;

Nt = 100;

Nu = 200;

rs = odesolve( @fun, 2, 3, Ns, y0 );

rt = odesolve( @fun, 2, 3, Nt, y0 );

ru = odesolve( @fun, 2, 3, Nu, y0 );

kvot = (rs(Ns+1)-rt(Nt+1)) / (rt(Nt+1)-ru(Nu+1));

if kvot >= 3.8 && kvot <= 4.2

% endast vartannat värde i den bästa lösningen kan användas for k = 1:Nt

fel(k) = ( ru(2*k-1) - rt(k) ) / 3; % tredjedelsregeln end

h = (3-2)/Nt;

xx = 2:h:3;

plot( xx, fel );

title(’Uppskattat fel’);

end

7. Vi antar att N är så stort att det är ogenomförbart att undersöka al- la de (N − 1)! möjliga resorna med början i stad K. Vi undersöker i stället ett (stort) antal resor mellan städerna i slumpmässig ordning, dock med alla resor börjande i stad K. Man väljer då slumpmässigt ut en stad bland de N − 1 kvarvarande, ser hur lång tid resan dit tar, sedan en bland de N − 2 kvarvarande, adderar tiden för resan till den- na, o.s.v. tills man gått igenom alla städerna. Man har nu fått tiden för en slumpmässig resa mellan alla städerna. Detta upprepas ett antal gånger. Eftersom man inte vill ha den genomsnittliga restiden utan den minimala, ska man ta minimum av de erhållna restiderna. Detta blir förhoppningsvis ett approximativt värde för minimitiden för en resa mellan alla städerna.

(5)

För det praktiska genomförandet bör man lagra städernas nummer i en array. I början ingår alla nummer utom K. Man slumpar bland num- ren i arrayen och får nästa stads nummer. För att inte detta ska kunna komma upp igen, ska det tas bort ur arrayen, och det görs enklast ge- nom att man flyttar ner sista elementet i arrayen och lägger det på den plats där det dragna numret låg, och förkortar arrayens längd med 1.

I det föregående momentet behöver man kunna generera slumpvisa hel- tal mellan 1 och P , där P kan variera mellan N − 1 och 1. Detta kan göras genom att generera ett slumptal r likformigt fördelat på interval- let [0, 1) och sedan beräkna heltalsdelen av P · r + 1 .

8. (a) Om man löser minstakvadratproblemet i sin ursprungsformulering så måste man lösa ett ickelinjärt minstakvadratproblem, eftersom en av de obekanta koefficienterna, b, inte står framför någon bas- funktion utan i exponenten. Man kommer då att ha minimerat summan

N

P

j=1

(fj− aebjx)2.

Om man logaritmerar och löser motsvarande linjära minstakvadrat- problem, kommer man i stället att ha minimerat summan

N

P

j=1

(ln fj − ln aebjx)2.

I båda fallen kommer metoden att fördela felen ganska jämnt över intervallet, dvs. de enskilda skillnaderna i summan kommer att vara ungefärligen lika stora. I det logaritmerade fallet betyder en liten skillnad i logaritmen en mycket liten skillnad i det absoluta funktionsvärdet om funktionsvärdet är litet, men en ganska stor skillnad om funktionsvärdet är stort. Metoden med logaritmering ger alltså bättre approximation där funktionen f har små värden, men sämre där den är stor.

(b) Problemet går inte att linearisera genom logaritmering, eftersom logaritmering av addition inte ger en enkel operation. I ursprungs- formuleringen är det koefficienten b som försvårar problemet. Om man nu vet ungefär i vilket intervall som b ska ligga för att man ska få den bästa approximationen, så kan man välja ett fixt vär- de, säg b1, och lösa minstakvadratproblemet för detta. Detta blir ett linjärt minstakvadratproblem, eftersom bara a och c är okän- da. Man beräknar också den kvadratsumma man erhåller. Detta upprepas sedan systematiskt för andra värden b2, b3 osv. i inter- vallet. Kvadratsumman räknas ut för varje fall, och man får en

(6)

uppfattning om hur denna beror av b . Man kan sedan t.ex. med interpolation räkna ut vilket b som ger den bästa approximationen och lösa problemet med detta för att se vad a och c då blir. Ev.

kan man välja nya b-värden tätare i ett snävare intervall.

References

Related documents

I sidtabellen ska för varje virtuell sida kunna lagras fysiskt sidnummer (11 bitar), valid bit, dirty bit, protection bit, och två bitar för utbytesalgoritmen, dvs totalt 16 bitar =

Detta kan vi då i nästa led problematisera utifrån dilemmaperspektivet som vi då baserar på dessa utbildningsmässiga problem som enligt Nilholm (2020) inte går att

Figur 1 visar felet som funktion av antal delintervall som används, för båda metoderna.... Figur 1: Fel i integralberäkningen som funktion av

”Även om de flesta utbildningar för lärare erbjuder kunskap om olika barn i behov av särskilt stöd bör detta givetvis även kompletteras med en kunskap kring olika verktyg för

Hon menar att genom att det finns specialpedagoger så kan läraren/pedagogen anse att ansvaret för barn i svårigheter ligger hos specialpedagogen, det är

Intentionen med denna studie har varit att undersöka förskollärares uppfattningar om och erfarenheter av barn i behov av särskilt stöd samt inkludering i relation till arbetet med

Ridning är inte bara en hobby, sport eller spel utan fungerar även som ett alternativ behandlingsmetod för både psykologiska och fysiska sjukdomar till exempel genom

Detta beroende på flera olika faktorer enligt lärarna, bland annat så är miljön inte så tillfredställande som den skulle kunna vara för vissa vilket leder till att de