Mtemtikk 1000 Øvingsoppgver i numerikk leksjon 9 Numerisk integrsjon Forståelsen v integrlet som et rel ligger til grunn når vi skl beregne integrler numerisk. Litt mer presist: Når f(x) 0 for lle x i intervllet [, b], kn vi oppftte integrlet b f(x) dx som relet vgrens v x-ksen, linjene x = og x = b og grfen til f. Se gur 1. Figur 1: Figuren illustrer hvordn integrlet b f(x) dx kn sees på som et rel (når f(x) 0). Her er f(x) = x 3, = 1 og b = 3. Til sist i dette oppgvesettet for spesielt interesserte, introduserer vi en helt nnen måte å regne integrler på: Monte Crlo-integrering. Denne metoden er ikke pensum, så dersom du ikke er spesielt nysjerrig, kn du hoppe over denne oppgv med god smvittighet. Men metoden er både rtig og nyttig ikke minst når det gjelder integrler over ere vrible. 1
Oppgve 1 Integrl som en sum v rektngler Vi tr utgngspunkt i funksjonen og vgrenser x til intervllet [1, 3] f(x) = x 3 ) Bruk intergrsjonsregler du kjenner fr før til å regne ut 3 1 f(x) dx. (Gjør dette med ppir og blynt.) b) Regn ut summen 0.5 f(1) + 0.5 f(1.5) + 0.5 f(2) + 0.5 f(2.5), og smmenlign den med svret i ). (Dette kn gjøres med ppir og blynt eller i MATLAB.) Se gur 2. Figur 2: Her hr vi delt intervllet [1, 3] opp i 4 mindre intervller med lengde x 4 = 1/2. For hvert delintervll hr vi et rektngel med høgde bestemt v funsksjonen f(x). c) Summen fr b) kn skrives slik: x 4 4 f(x i ), der x 4 = (3 1)/4 og x i = 1 + (i 1) x 4. Om vi hdde delt intervllet [1, 3] opp i n deler i stedet for 4 deler, ville summen sett slik ut: x n 2 n f(x i ),
Figur 3: Denne guren viser det smme som gur 6 bortsett fr t vi her hr delt intervllet på x-ksen opp i 10 biter i stedet for 4. der x n = (3 1)/n og x i = 1 + (i 1) x n. Hvorfor kn vi si t en sum v denne typen vil nærme seg integrlet fr ) når n blir større og større? (Hint: Se gur 3.) Lg et MATLAB-skript som regner ut summen over og bruk det til å nne summen for ulike 1 verdier v n. d) Hvor stor å n være, sånn omtrent, for t forskjellen mellom summen og integrlet skl være mindre enn 10 3? e) I gur 2 ser vi t høyden v rektnglene konsekvent er gitt ved f(x)-verdien i venstre knt. Om vi i stedet hdde brukt høgre knt, som i gur 4, vil x i bli endr til x i = 1 + i x n. Justér skriptet ditt slik t den regner ut en høgre sum i stedet for en venstre sum som over og gjent deloppgve d) med dette skriptet. f) Et tredje lterntiv er å regne ut summen med x i gitt ved midtpunktene, x i = 1 + (i 1/2) x n. Se gur 5. Hvor stor må nå n være for t forskjellen mellom summen og integrlet blir mindre enn 10 3? Summer v denne typen kller vi Riemnn-summer. Du vil nok høre mer om slike siden. 1 Det enkleste er å skrive n inn i skriptet og lgre det på nytt hver gng. Men vi kn unngå dette ved å gjøre skriptet om til ei funksjonl med n som rgument eller ved å bruke input-kommndoen i MATLAB. 3
Figur 4: Denne guren viser det smme som gur 2 bortsett fr t høgd v rektnglene er bestemt v funksjonsverdien i høgre knt v hvert del-intervll i stedet for venstre knt som i gur 2. Figur 5: Denne guren viser det smme som gur 2 og 4 bortsett fr t høgd v hvert rektngel her er bestemt ved midtpunktet i hvert del-intervll. Oppgve 2 Integrl som en sum v trpeser I denne oppgv bruker smme f(x) og smme intervll for x som i oppgve 1. ) Med utgngspunkt i gur 6: Estimér integrlene ved å regne ut summen v relene v trpesene. (Et trpes er en rknt der to v sidene er prllelle og de to ndre ikke trenger å være det. Arelet v et trpes er gitt ved h( + b)/2, se gur 7.) b) Med n = 4, vis, med ppir og blynt, t summen i ) er gjennomsnittet v venstre- og høgresummen fr oppgve 1. (Dette gjør vi med ppir og blynt.) 4
Figur 6: Figuren viser hvorn integrlet kn éstimeres som en sum v relene til trpeser. Figur 7: Et trpes. c) Med en generell n, kn trpes-summen skrives som ( 1 T n = x n 2 f(x 0) + f(x 1 ) +... + f(x n 1 ) + 1 ) 2 f(x n) der x n = (b )/n og x i = + i x n. Merk t x 0 = og x n = b. (Her er = 1 og b = 3.) Lg et skript som regner ut denne summen og nn summen for ulike verdier v n. (Dette kn gjøres ved å lge ei for-løkke med if-stser som tr for seg det første og siste leddet inni. Men det enkleste er å l for-løkk bre gå fr og med i = 1 til og med i = n 1 og så håndtere endene, i = 0 og i = n, for seg selv.) d) Hvor stor må n være nå for t diernsen mellom integrlet og summen v trpes-rel skl bli mindre enn 10 3? 5
Oppgve 3 Uten fsit I denne oppgv skl vi blnt nnet regne ut integrlet 2 0 sin x 2 dx. Selv om sin x 2 kn være både positiv og negtiv når x [0, 2], vil likevel trpessummen fr oppgve 2 gi gode estimter for integrlet når n blir stor nok. ) Bruk skriptet du lgde i oppgve 2 til å nne ei tilnærming til dette integrlet. Hv ser integrlet ut til å bli? (Sgt på en nnen måte: Hv ser det ut til å konvergere mot?) b) Hvorfor hr vi ikke bedt deg nne dette integrlet ved nti-derivsjon? c) På smme måte over: Forsøk å bestemme følgende integrl: i) 2 5 tet3 dt ii) 1/2 0 tn(x 2 + 1) dx iii) 1 1 sin x3 dx d) Selv om vi ikke kn nne noen enkel ntiderivert til sin x 3, kn vi likevel si med sikkerhet t 2 2 sin x3 dx = 0. Hvorfor kn vi være så sikre på dette? e) Endre den øvre integrsjonsgrens i initegrlet i deloppgve d) ii) til 1. Hv skjer når du forsøker å regne ut integrlet? Hvorfor skjer dette? Generelt er det helt essensielt t vi sjekker t svret vårt konvergerer før vi konkluderer med t vi hr bestemt integrlet; vi kn ikke tillte t verdien vi får for integrlet skl være vhengig v n. Ekstr-oppgve: Monte Crlo-integrsjon For å være tydelig: Denne metoden er ikke pensum. Men den kn være verd å se litt på likevel. Teorien er ikke vnskelig. Middelverdien, eller gjennomsnittet, v en integrerbr funksjon f på intevllet [, b] er denert som y = 1 b f(x) dx. b Smtidig vet vi t vi kn nne gjennomsnittet ved å gjøre mnge målinger, legge dem smmen og dele på ntllet. Tenk deg t vi velger mnge x-verdier tilfeldig og nner f(x) for hver v dem slik t vi får et sett med f-verdier: f(x 1 ), 6
f(x 2 ),..., f(x n ). Her hr vi gjort n målinger. Om n er stor nok, vil vi, som sgt, kunne nne gjennomsnittet slik: y 1 n (f(x 1) + f(x 2 ) +... + f(x n )) = 1 n n f(x i ). ) Ut fr det som står over, forklr hvorfor b f(x) dx b n n f(x i ) for store n. b) Funksjonen rnd i MATLAB gir et tilfeldig 2 tll mellom 0 og 1. Hvordn kn dette brukes til å generere et tilfeldig tll mellom og b? c) Velg deg en funksjon f og endepunkter og b og beregn b f(x) dx ved nti-derivsjon. Du kn godt velge det vi så på i oppgve 1 og 2. Lg et skript eller ei funksjonsl som beregner integrlet ved hjelp v formelen fr ). L n være en input-vribel. Undersøk hvor stor n må være for t metoden skl gi et rimelig nøyktig svr. Lg gjerne et plott som illustrerer konvergensen. 2 En dtmskin er ikke egentlig i stnd til å generere tilfeldige tll; tllet du får ut er et pseudo-tilfeldig tll. 7