Mtemtikk 1000 Øvingsoppgver i numerikk leksjon 8 Numerisk integrsjon Som kjent kn vi regne ut (bestemte) integrler ved nti-derivsjon. Dette resulttet er et v de viktikgste innen klkulus; det heter tross lt fundmentlteoremet. Men det løser ikke lle mulige integrsjons-problemer. For eksempel hjelper det oss lite dersom vi bre hr fått gitt funksjonen som skl integreres på tbellform. Og det som verre er: Mn kn på ingen måte t for gitt t en elementær integrnd skl h en elementær nti-derivert. Derfor er det helt på sin plss t vi lærer oss å regne ut integrler med ndre, numeriske metoder. Vi skl se på to metoder: trpes-integrsjon og Simpsons metode. Videre skl vi introdusere en tredje teknikk for spesielt interesserte. Som vnlig forutsettes det t de ndre oppgvesettene er gjort. Oppgve 1 Mnge rektngler (og noen trpeser) For gitt funksjon f(x) og tll og b med b > denerer vi summen V n ved n 1 V n = hf(x i ) der h = (b )/n og x i = + ih. i=0 ) Plottet til venstre i gur 1 illustrerer denne summen for f(x) = x 3, = 1, b = 3 og n = 4. Geometrisk, hv er denne summen? Lg et skript som regner ut denne summen og nn V n for større og større verdier v n. Hv ser V n ut til å nærme seg? Bestem denne grenseverdien ekskt. T gjerne plottet i midten og til høgre i gur 1 til hjelp. b) En nnen lignende sum er denert som H n = h n f(x i ). i=1 Merk t forskjellen mellom V n og H n kun ligger i summsjonsgrensene. Se 1
Figur 1: Venstre: Illustrsjon til summen V n med n = 4. Midt: De smme, men for V 10. Høgre: Arelet mellom grfen til f(x) og x-ksen fr x = 1 til x = 3. Figur 2: Illustrsjon til summen H n med n = 4. gur 2. Hv representerer denne geometrisk? Justér skriptet ditt slik t den regner ut H n i stedet for V n, og nn H n for stdig høyere verdier for n. Kontrollér t H n nærmer seg det smme som V n for økende n. Summene H n og V n er begge eksempler på ensidige Riemnn-summer (med regulære prtisjoner). Og, som du sikkert vet, vil begge nærme seg integrlet f(x) dx når oppdeling blir nere og nere (n blir større og større). Om vi bruker en endelig n, sier vi t vi får et estimt for integrlet. Høyere n-verdier, eller tilsvrende, lvere h-verdier, gir bedre estimter. Men, som vi skl se, det nnes bedre måter å estimere på. Vi denerer en tredje sum, T n, som gjennomsnittet v venstre- og høgresummene fr ) og b), T n = 1 2 (V n + H n ). Denne vil selvsgt nærme seg smme verdi som V n og H n når n øker mot et høyt tll; lim V n = n lim H n = n lim T n = n f(x) dx. c) Undersøk hvilken v de tre summene V n, H n og T n som nærmer seg det ekskte integrlet rskest. Før du begynner: Hv tipper du? 2
Som resulttene over tyder på, vil gjennomsnittet T n vnligvis gi et lngt bedre estimt enn hv H n eller V n gjør hver for seg. Denne måten å estimere integrler på, ltså ved T n, kller vi trpesmetoden. d) Vis t T n kn skrives slik: ( 1 T n = h 2 f(x 0) + f(x n ) + f(x 2 ) +... + f(x n 1 ) + 1 ) 2 f(x n). Hvorfor klles denne metoden for trpesmetoden? (T gjerne en titt i lærebok for å nne svret.) Oppgve 2 Med fsit ) Integrlene nedenfor kn lle løses reltivt greit ved nti-derivsjon. Gjør det. 1 x 6 dx, 1 3 1 x sin x 2 dx, 4 2 x x 1 dx. b) Estimér de smme integrlene ved å bruke trpesmetoden. Du kn godt t utgngspunkt i skriptet fr oppgve 1 og beregne T n som gjennomsnittet v V n og H n. Men det blir knskje mer elegnt å heller t utgngspunkt i formelen i oppgve 1 d). For hvert v integrlene: Omtrent hvor stor n ser det ut til t du trenger for t feilen i estimtet skl være mindre enn 10 5? Simpsons metode gir vnligvis et lngt bedre estimt enn trpesmetoden. Skjemtisk ser denne metoden slik ut: f(x) dx S n med S n = h 3 (y 0 + 4y 1 + 2y 2 + 4y 3 +... + 4y n 1 + y n ) der h = b n Her kreves det t n er et prtll. og y i = f(x i ) = f( + ih). c) Implementér denne meotden og bruk skriptet til å gjøre deloppgve b) om igjen med Simpsons metode i stedet for trpesmetoden. Du kn selv skrive koden fr bunnen v, eller du kn t utgngspunkt i dette forslget: 1 % Implementering v Simpsons metode. 2 % Integrsjonsgrensene og b, oppdeling n og integrnden funk 3 % blir gitt heilt i toppen v skriptet. 4 % For å gi n, bruker vi input-funksjonen 5 3
6 % Integrsjonsgrenser 7 =-1; 8 b=[*]; 9 10 % Integrnden 11 funk=@(x) [**]; 12 13 % Oppdeling (kontrollerer t n er et prtll) 14 n=input('gi oppdeling n: '); 15 if round(n/2) ~= n/2 16 disp('n må være et prtll') 17 return 18 end 19 h=[**]; % Skrittlengd 20 21 % Bidrg fr endene 22 S=h/3*(funk()+funk(b)); 23 24 % Oddetllsbidrg: 25 for i=1:2:[**]; 26 xi=+i*h; 27 S=S+h/3*4*funk(xi); 28 end 29 30 % Prtllsbidrg 31 for i=2:2:(n-2) 32 xi=+i*h; 33 S=S+h/3*[*]*funk(xi); 34 end 35 36 % Skriver svret til skjerm 37 S De stedene det står [*], skl du sette inn et tll, og der det står [**], skl du sette inn et uttrykk. Hvis det ikke fungerer å kopiere teksten over inn i editoren, kn du nne den på nettsid til MATLAB-kurset. Oppgve 3 Uten fsit Ingen v disse integrlene lr seg løse ved hjelp v nti-derivsjon: 1 1 sin x 2 dx, 2 0 xe x dx, 3 0 (rctn x) 2 dx. ) Bruk både trpesmetoden og Simpsons metode til å bestemme integrlene med minst re riktige desimler. 4
b) Velg deg et eller nnet (bestemt) integrl der integrnden er et tredjegrdspolynom. Bestem integrlet ekskt og nn ut hvor stor feilen blir når du estimerer integrlet med Simpsons metode med n = 2. For en bestemt type funksjoner gir trpesmetoden ekskt riktig svr med n = 1 ltså med bre to punkter. Hvilken type funksjoner er dette? Ekstroppgve 1: Plott feilen Velg deg et eller nnet integrl som du lett kn løse ved nti-derivsjon men ikke l det være for lett; et polynom v grd 3 eller mindre, for eksempel, er for lett. Du kn godt bruke et v integrlene fr oppgve 2 ). Ved å lge et skript med ei for-løkke: Plott feilen i estimtet bsert på hver v de tre metodene vi hr sett ltså en ensidig Riemnn-sum, trpesmetoden og Simpsons metode som en funksjon v skrittlengd h = (b )/n. Det kn nok svre seg å lge funksjonsler som regner utfører selve integrl-estimtene for hver v de tre metodene. Forsøk gjerne å lge plottet med logritmiske kser, d.v.s. bruk kommndoen `loglog' i stedet for `plot' i MATLAB. Ekstroppgve 2: Monte Crlo-integrsjon 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 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 fr intervllet [, b] og nner f(x) for hver v dem slik t vi får et sett med f-verdier: f(x 1 ), 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 f(x i ). n i=1 ) Ut fr det som står over, forklr hvorfor f(x) dx b n n f(x i ) i=1 5
for store n. b) Som vi hr sett, gir funksjonen rnd i MATLAB et tilfeldig 1 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 f(x) dx ved nti-derivsjon. Igjen kn du godt velge et v integrlene fr oppgve 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 hvordn svret nærmer seg integrlet når n blir stor. Monte Crlo-integrsjon hr nok ikke så store fordeler i forhold til trpesmetoden og Simpsons metode i de eksemplene vi hr sett på her. Men hvis mn skl integrere over ere dimensjoner, for eksempel integrler v typen b d c f(x, y) dxdy, gir ofte Monte Crlo-integrsjon nøyktige svr veldig mye rskere enn de ndre metodene. 1 En dtmskin er ikke egentlig i stnd til å generere tilfeldige tll; tllet du får ut er et pseudo-tilfeldig tll. 6