Matematikk 1, 1/13 Eksamensaktuelle numerikk-oppgåver Oppgåve 1 Skript-jeopardy a) Vi ser at skriptet inneheld ei for-løkke der variabelen n tar verdiane 1,,..., 1. For kvar gong blir n 3 lagt til variabelen S, som var null i utgongspunktet. Vi reknar altså ut summen 1 1 3 + 3 + 3 3 + + 1 3 = n 3. n=1 b) I for-løkka er variabelen Funk lik sin x der x = a + n x og a =. Variabelen DeltaX ( x) er sett til (b a)/n der b = og N = 5. På same måte som over reknar vi ut ein sum: T = x f(x ) + xf(x 1 ) + xf(x ) + + xf(x 49 ) + x f(x 5) der x n = a + n x. Vi kjenner dette att som trapesmetoden; skriptet estimerar integralet sin x dx. Det er verd å presisere at skriptet ikkje er optimalt; vi kan unngå å bruke nokon if-sats inne i for-løkka om vi heller lar for-løkka gå frå 1 til og med N-1 i staden for frå til N og tar tilfella N= og N=1 kvar for seg. c) Her ser vi at variabelen xny stadig vekk blir oppdatert slik at det som var xny vert tilordna til xgm og den nye xny blir rekna ut etter formelen xny = xgm xgm + 3 exgm 1 1 e xgm 1, som igjen kan skrivast som xny = xgm f(xgm)/f (xgm) med f(x) = x + 3 e x 1. Vi ser at vi i utgongspunktet har sett xny til å vere -1. Dette er ei implementering av Netwons metode for å løyse likninga x + 3 e x 1 =. 1
d) I dette tilfellet er det ikkje implementeringa i seg sjølv som er feil. Feilen er at vi har implementert ei numerisk utrekning av eit uløyseleg problem. Integralet er nemleg ikkje veldenert. Integranden er slik at den går mot ± når x, og dermed vil også integralet vekse over alle grenser om vi forsøker å rekne det ut. Denne implementeringa av trapesmetoden er nok idiotsikker i den forstand at vi ikkje ville ha lukkast med å få svaret til å gå mot ein endeleg verdi ved å auke N. Med litt uheldigare implementeringar kan det faktisk skje at vi ser ut til å få veldenerte integral numerisk sjølv om integralet ikkje kan reknast ut. Oppgåve Eulers metode a) y = F (x, y), y(x ) = y. Denne typen initialverdiproblem er svært generelle; F kan i prinsippet vere nesten kva funksjon som helst av x og y. Det betyr at dierensiallikninga ikkje treng vere verken separabel eller lineær. Desse to typane av fyrste ordens dierensiallikningar, separable og lineære, er dei einaste typane vi har lært å løyse med papir og blyant i dette kurset. Med andre ord er vi i stand til å nne numerisk løysing ved Eulers metode for langt eire typar dierensiallikningar enn det vi klarar med papir og blyant. Men sjølvsagt har numeriske metodar også ulemper. Ei ulempe er at vi ikkje kan nne noko løysing med Eulers metode dersom vi ikkje også har eit intialkrav. Med analytiske teknikkar kan vi nne generelle løysingar, som vil innehalde ein ukjend konstant. Sjølv om løysinga altså ikkje vert eintydig bestemt, vil ein likevel kunne seie ein del om det matematiske problemet ut frå denne generelle løysinga. Ei anna ulempe med numeriske løysingar, er at ho aldri er heilt nøyaktig. Og skal vi kunne bruke løysinga til noko, må vi ha ein viss idé om kor stor feilen er. Det er ikkje alltid så enkelt å vite. Dette problemet har ein ikkje med ei eksakt analytisk løysing. b) I for-løkka ser vi at det neste elementet i yvektor vert sett til å vere y + (x + x sin y)h. Dette stemmer med Eulers (framover-) metode for dierensiallikninga y = F (x, y) der F (x, y) = x + x sin y. Initialkravet vert gitt i de tre fyrste radene: y(x ) = y med x = og y = 1. Initialverdiproblemet er altså dette: y = x + x sin y med y() = 1. c) Ut frå dette plottet aleine er det eigentleg lite vi kan seie om den eksakte løysinga. Eit nødvendig krav for at estimatet skal vere i nærleiken av løysinga, er at plottet skal vere uavhengig av talet på steg N eller steglengda h. I skriptet er N sett til å vere 5. For å sjå i kor stor grad
plottet endrar seg når vi endrar N bør vi plotte eire slike grafar til dømes for N=1 og. Dersom desse plotta blir tilnærma uendra når vi aukar N (eller reduserar h), kan vi vere på sporet av den faktiske løysinga av problemet. Oppgåve 3 Diverse summar a) På tilsvarande måte som i oppgåve 1a) reknar dette skriptet ut summen 1 i=1 1 i = 1 + 1 + 1 3 + 1 1. b) Her blir både summasjonsgrensene og uttrykket for kvart ledd i summen endra. Summen skal starte på n = 3 og ende på n = 14. Difor endrar vi linje 3 til `for i=3:14'. Kvart ledd er gitt ved n, så linje 4 blir `S=S+sqrt(i);'. Det at summasjonsindeksen heiter i og ikkje n i skriptet, spelar inga rolle. Skriptet blir altså: % Set S til. S=; for i=3:14; S=S+sqrt(i); end % Skriv S til skjerm S c) I skriptet ser vi at for kvar iterasjon i for-løkka blir f dx, der f = x + 1, dx = (b a)/n og x = a + (i 1) dx, lagt til R. Dette er altså Riemannsummen 1 R P,S = f(x i ) x i i=1 for funksjonen f(x) = x + 1. Partisjonen er regulær; x i = x = (5 )/1 = 1/ for alle i slik at partisjonen blir P = {, 1/, 1,, 4/5, 5}. Seleksjonen S er ein venstre-seleksjon; x 1 =, x = 1/,..., x 1 = 4/5. Vi veit at når maskevidda P, som her er lik x, går mot null, skal Riemann-summen nærme seg integralet av f(x) frå a til b altså 5 x + 1 dx. For at vi skal kunne bruke skriptet til å få eit estimat på integralet, må vi redusere x, som igjen tilsvarar å auke N. Eit nødvendig krav for at estimatet skal vere godt, er at det ikkje endrar seg nemneverdig når vi aukar N. Altså bør vi gjere eire utrekningar med ulike N og kontrollere at svaret i berre liten grad endrar seg når N blir stor nok. 3
d) Vi veit at om vi hadde rekna ein Riemann-sum med ein midtpunktsseleksjon i staden for ein venstre- eller høgre-seleksjon, hadde vi fått eit betre estimat for integralet. Altså om vi hadde sett x i = (x i 1 + x i )/ i staden for x i = x i 1 i skriptet, hadde vi ikkje behøvd like stor N for å få eit rimeleg nøyaktig estimat. Dette tilsvarar å endre linje 1 til x=a+(i-.5)*dx; Alternativt kunne vi med relativt få justeringar implementert trapesmetoden. Den er gitt slik: b a f(x) dx x f(x ) + xf(x 1 ) + + xf(x N 1 ) + x f(x N). Feilen i estimata skalerar på same måte med N for begge desse metodane. Oppgåve 4 Estimat frå tabell a) Vi kan estimere T (14) ved bruk av midtpunktsformelen for mumerisk derivasjon: f f(a + h) f(a h) (a). h Det gir at T (14 h) = T (14 h + min) T (14 h min) min.5 C 4 min =.15 C/min. = 15. C 14.7 C 4 min = b) Farten som volumet av vatnet i bassenget aukar med, er det same som vass-straumen gjennom slangen. Difor vil total auke i volum vere gitt ved V = S(t) dt der S(t) er straumen, gitt i liter per sekund, etter t sekund. Sidan vi ikkje har noko funksjonsuttrykk for S, estimerar vi dette integralet ved trapesmetoden: ( 1 V x S() + S(.5) + S(1) + S(1.5) + 1 ) S() =.5 s (.5.4 +.3 +. + 1.8 +.5 1.7) l/s = 4.75 l 4.1 l. c) Vi kan estimere V (14 s) og V (16 s) ved å bruke ei lineær tilnærming til V (t) altså eit fyrste ordens Taylor polynom: V (t) V (a) + V (a)(t a). 4
Med a = 15 s får vi V (14 s) V (15 s)+v (15 s) l/s(14 15) s = 164 l+1.3 l/s ( 1) s = 16.7 l og V (16 s) V (15 s)+v (15 s) l/s(16 15) s = 164 l+1.3 l/s 1 s = 165.3 l. Oppgåve 5 Finn fem feil a) Problemet består i løyse ei likning. Vi har lært to numeriske teknikkar for dette: Halveringsmetoden og Newtons metode. Linje 13 i skriptet liknar på noko ein ville ha skrive om ein ville implementere Netwons metode: x n+1 = x n f(x n) f (x n ). Metoden løyser likninga f(x) =. Om vi set f(x) = sin x ln x, vil vi altså nne ei løysing av det gitte problemet. Teljaren i linje 13 stemmer med dette. Men nemnaren stemmer ikkje, f (x) = cos x 1/x. I skriptet har dette blitt til cos x + 1/x. b) Vi skal estimere eit integral numerisk. Dette kan vi gjere ved å bruke trapesmetoden. Skriptet impelenterar dette stort sett rett og utan å bruke if-satsar. Men h-verdien, eller x-verdien, er ikkje sett rett i høve til integrasjonsgrensene. I inje 7 står det h=1/n; Det skulle ha vore h=(b-a)/n; som i dette tilfellet blir /N. c) Riemann-summen blir rekna ut omtrent på same måte som i tidelegare oppgåver på dette settet bortsett frå at partisjonen ikkje er regulær i dette tilfellet. Men her har vi gjort ein klassisk tellefeil; om partisjonen har N element, vil seleksjonen ha N 1 element. for-løkka går for langt; ho skulle ha stoppa på N-1. Alternativt kunne vi, i linje 6, sett N slik: N=length(S). d) Dette er ei feilfri implementering av halveringsmetoden. Feilen er her av teoretisk karakter. Halveringsmetoden baserar seg på skjæringssetninga: Dersom f(x) er kontinuerleg på intevallet [a, b] og f(a) og f(b) har ulike forteikn, vil det eksistere minst ein c (a, b) som er slik at f(c) =. 5
Retnok er f() negativ og f() positiv. Det er berre det at f(x) ikkje er kontinuerleg; funksjonen er ikkje denert når nemnaren x 4x + =. Vi løyser denne likninga: x = ( 4) ± ( 4) 4 1 1 = ± 3. Sidan 3 [, ], er ikkje funksjonen kontiuerleg, og vi kan ikkje bruke skjæringssetninga og heller ikkje halveringsmetoden. Om vi hadde køyrt skriptet, ville vi ha funne ei tilnærming til nullpunktet 3 altså ei falsk løysing. e) Dette er nok ein klassisk teljefeil. Skriptet implementerar Eulers framovermetode. Og alt er etter boka borsett frå ein ting: Den fyrste x n -verdien skulle ha vore x, eller `x', som han heiter i skriptet. Men her ser vi at sidan for-løkka startar på 1 og x, i linje 15, er sett til x+i*h, vil x starte på x + h ikkje x. Denne feilen vil retnok gå mot null når N blir stadig større. Men det er likevel ein dum feil som er veldig lett å gjere 1 Oppgåve 6 Numerikk på ein elementær funksjon I denne oppgåva tar vi utgongspunkt i denne funksjonen: f(x) = x x + 1. a) Framover: f () Bakover: f () Midtpunkt: f () f( +.5) f() ( =.5.5.5 + 1 ) + 1 = 5 7.5 4 5 4.519 f() f(.5) ( =.5 + 1 1.5 ) 1.5 + 1 = 4 5 3 3.5 3.536 f( +.5) f(.5).5 =.5 7.5 1.5 3.5 4.7 Eksakt: f (x) = 1 x 1 + 1 + x x + 1 (x + 1) = x + 1 + f () = + 1 + 1 = 9 5 4.5 x x + 1 = x + 1 x + 1 1 Eg har sjølv gjort denne feilen nyleg eire gonger! 6
Feil, framover: 5 7.5 4 5 9/ 5.494 Feil, bakover: 4 5 3 3.5 9/ 5.489 Feil, midtpunkt:.5 7.5 1.5 3.5 9/ 5.37. b) Med 4 del-intervall får kvart intervall lengda h = ( )/4 =.5. Vi får ( 1 f(x) dx h f() + f(.5) + f(1) + f(1.5) + 1 ) f() = (.5 +.5 1.5 + + 1.5 3.5 + ) 5/ 3.4567 c) Simpsons metode gir ( 1 f(x) dx h 3 f() + 4 3 f(.5) + 3 f(1) + 4 3 f(1.5) + 1 ) 3 f() = (.5 + 4 3.5 1.5 + 4 + 3 3 1.5 3.5 + 1 ) 3 5 d) Vi reknar integralet eksakt ved å innføre variabelbytet u(x) = x + 1: 3.39 f(x) dx = 1 u() x x + 1 dx = x u 1 u() x du = 1 [ ] 1 5 3/ u3/ = 1 ( ) 5 3/ 1 3.3934. 1 3 5 1 u 1/ du = For trapesmetoden blir feilen 3.4567 3.3934 =.63, og for Simpsons metode blir feilen 3.39 3.3934 =.3. e) Vi skal løyse likninga x x + 1 = 1 x x + 1 1 =. Vi kallar venstresida i likninga for g(x). Newtons metode går ut på å iterere på uttrykket x n+1 = x n g(x n) g (x n ) = x n x n x n + 1 1 x n +1 x n +1 = x n x n + 1 (x n x n + 1 1) x n + 1 = x n x3 n + x n x n + 1 x n + 1. Vi set x = 1 og itererar: x 1 = 1 1 + 1 + 1 = 1 + 3.847 x = x 1 x3 1 + x 1 x 1 + 1 x 1 + 1.78631. 7
f) x x + 1 = 1 x (x + 1) = 1 x 4 + x 1 = x = 1 ± 1 4 1 ( 1) 1 = 1 ± 5 x skal vere positiv. Difor må vi forkaste den negative løysinga. x = 5 1 5 1 x = ± Ut frå den oprinnelege likninga, kan vi ikkje godta den negative løysinga no heller; venstresida vil bli negativ om x er negativ, og den kan følgeleg ikkje vere lik 1. Grunnen til at vi fekk med ei slik falsk løysing er at vi kvadrerte begge sider i den opprinnelege løysinga. Altså: 5 1 x =.78615. Vi ser at løysinga vi fann ved Newtons metode hadde tre rette desimalar. Oppgåve 7 Skisse til løysing a) Løysinga kan til dømes estimerast ved Eulers metode. Denne gir ei tilnærma løsing på initialverdiproblemet ved y = F (x, y), y(x ) = y x n = x + n h y n+1 = y n + F (x, y) h Vi vel steglengda h sjølv. Det er viktig at vi vel denne liten nok til at svaret vi får, i minst mulig grad er avhengig av dette valet. Om h er tilstrekkeleg liten, vil y n vere tilnærma lik y(x n ). I vårt tilfelle, med dierensiallikninga y = y + x, har vi at F (x, y) = y + x. Initialkravet er gitt ved at x = og y = 1. 8
b) Integralet kan til dømes estimerast ved trapesmetoden. Denne er gitt ved at b a f(x) dx T n der ( 1 T n = h f(x ) + f(x 1 ) +... + f(x n 1 ) + 1 ) f(x n). Steglengda h = (b a)/n. I vårt tilfelle er a = 1, b = 1 og f(x) = exp(x /). Som i a), er det viktig at h er liten nok, eller at n er stor nok, til at svaret berre i særs liten grad er avhengig av dette valet. c) Vi har, som sagt, lært to metodar for å nne nullpunkt: Halveringsmetoden og Newtons metode. Likninga vi har kan skrivast som eit nullpunktsproblem: f(x) = med f(x) = x cos x. Om vi vel å bruke Newtons metode, går denne ut på å iterere på uttrykket x n+1 = x n f(x n) f (x n ), som i vårt tilfelle svarar til x n+1 = x n x n cos x n 1 + sin x n. Vi må sjølv velge startverdien x. Sidan f() = 1 < og f(π/) = π/ >, må f ha (minst) eitt nullpunkt mellom og π/ ved skjæringssetninga (f er kontinuerleg). Såleis kan nok t.d. x = 1 vere ein passe startverdi. Oppgåve 8 Meir Eulers metode a) Dierensiallikninga er separabel: dy dx = y dy y 1 y dy = Initialkrav: = dx dx ln y = x + C 1 y = C e x (C = ±e C 1 ) y() = 1 C e = 1 C = 1 y(x) = e x y(1) = e.7188. 9
b) Eulers metode: y(x n ) y n der y = y(x ) er gitt ved initialkravet og y n+1 = y n + F (x n, y n ) h. Her er h steglengda og x n = x n + n h. Her er h =.5, x =, y = 1 og F (x, y) = y altså er F uavhengig av x i vårt tilfelle. Vi får y 1 = y + y h = 1 +.5 = 1.5 y = y 1 + y 1 h = 1.5 + 1.5.5 =.5 y(1) Feilen blir altså e.5.468 altså ganske stor. c) Eulers midtpunktmetode ser slik ut: y n+1 = y n + F (ˆx n, ŷ n ) h der ˆx n = x n + h/ og ŷ n = y n + F (x n, y n ) h/. I vårt tilfelle får vi at ŷ n = y n + y n h/ = y n (1 + h/) = 1.5 y n. Det gir: ŷ = 1.5 y = 1.5 y 1 = y + ŷ h = 1 + 1.5.5 = 1.65 ŷ 1 = 1.5 y 1 = 1.5 1.65 =.315 y = y 1 + ŷ 1 h = 1.65 +.315.5 =.646 y(1) Denne gongen vart feilen e.646 =.777 altså noko mindre. 1