Notat 4 - ST februar 2005

Like dokumenter
Programmering i R - del 2

Bioberegninger - notat 3: Anvendelser av Newton s metode

Bioberegninger - notat 4: Mer om sannsynlighetsmaksimering

Notat 2, ST Sammensatte uttrykk. 27. januar 2006

Poissonprosesser og levetidsfordelinger

Finne løsninger på ligninger numerisk: Newton-Raphson metoden og Fikspunktiterasjon MAT111, høsten 2017

ST0103 Brukerkurs i statistikk Høsten Momentestimatoren og sannsynlighetsmaksimeringsestimatoren

Løsningsforslag øving 8, ST1301

Ikke lineære likninger

Fasit til eksamen i emnet MAT102 - Brukerkurs i matematikk II Mandag 21.september 2015

Prosjektoppgaver om diusjonsprosesser og diusjonstilnærmelse

Prosjektoppgaver om diusjonsprosesser og diusjonstilnærmelse

1. Finn egenverdiene og egenvektorene til matrisen A = 2 1 A =

Matematikk Øvingsoppgaver i numerikk leksjon 7 Løsningsforslag

EKSAMEN I MATEMATIKK 1000

EKSAMEN Løsningsforslag

Løsning ved iterasjon

Numerisk løsning av ikke-lineære ligninger

L12-Dataanalyse. Introduksjon. Nelson Aalen plott. Page 76 of Introduksjon til dataanalyse. Levetider og sensurerte tider

y (t) = cos t x (π) = 0 y (π) = 1. w (t) = w x (t)x (t) + w y (t)y (t)

MAT-INF 2360: Obligatorisk oppgave 3. Løsningsforslag

Siden vi her har brukt første momentet i fordelingen (EX = EX 1 ) til å konstruere estimatoren kalles denne metoden for momentmetoden.

Løsningsforslag. Oppgave 1 Gitt matrisene ] [ og C = A = 4 1 B = 2 1 3

Alle svar skal grunngis. Alle deloppgaver har lik vekt.

Transformasjoner av stokastiske variabler

Som vanlig er enkelte oppgaver kopiert fra tidligere års løsningsforslag. Derfor kan notasjon, språk og stil variere noe fra oppgave til oppgave.

x n+1 = x n f(x n) f (x n ) = x n x2 n 3

Løsningsforslag øving 12, ST1301

Lineære likningssystemer og matriser

Matematikk Øvingsoppgaver i numerikk leksjon 6 Løsningsforslag

Alle svar skal grunngis. Alle deloppgaver har lik vekt.

Biseksjonsmetoden. biseksjonsmetode. Den første og enkleste iterativ metode for ikke lineære likninger er den så kalt

1 Mandag 15. februar 2010

Høgskolen i Oslo og Akershus. i=1

Anbefalte oppgaver - Løsningsforslag

6 Numeriske likningsløsere TMA4125 våren 2019

Analysedrypp II: Kompletthet

TMA4122/TMA4130 Matematikk 4M/4N Høsten 2010

Nicolai Kristen Solheim

Flere anvendelser av derivasjon

Matematikk Øvingsoppgaver i numerikk leksjon 6. Løsningsforslag

MAT jan jan feb MAT Våren 2010

Kapittel 8: Tilfeldige utvalg, databeskrivelse og fordeling til observatorar, Kapittel 9: Estimering

Prøveeksamen i MAT 1100, H-03 Løsningsforslag

Løsningsforslag. og B =

Newtons metode - Integrasjon Forelesning i Matematikk 1 TMA4100

Enkel matematikk for økonomer. Del 1 nødvendig bakgrunn. Parenteser og brøker

Oppsummering TMA4100. Kristian Seip. 26./28. november 2013

Oppgave 1. e rt = 120e. = 240 e

Oppgaver i funksjonsdrøfting

TMA4245 Statistikk. Innlevering 3. Norges teknisk-naturvitenskapelige universitet Institutt for matematiske fag

TMA4100 Matematikk 1, høst 2013

UNIVERSITETET I OSLO

Derivasjon Forelesning i Matematikk 1 TMA4100. Hans Jakob Rivertz Institutt for matematiske fag 2. september 2011

Løsningsforslag, midtsemesterprøve MA1101, 5.oktober 2010

TDT4110 IT Grunnkurs Høst 2015

dg = ( g P0 u)ds = ( ) = 0

Fasit til utvalgte oppgaver MAT1110, uka 28/4-2/5

Notater nr 9: oppsummering for uke 45-46

Repetisjon i Matematikk 1: Derivasjon 2,

Løsningsforslag øving 6, ST1301

Avdeling for lærerutdanning. Lineær algebra. for allmennlærerutdanningen. Inger Christin Borge

Løsningsforslag for MAT-0001, desember 2009, UiT

Sammendrag R1. Sandnes VGS 19. august 2009

TALLSVAR. Det anbefales at de 9 deloppgavene merket med A, B, teller likt uansett variasjon i vanskelighetsgrad. Svarene er gitt i <<< >>>.

4 ( ( ( / ) 2 ( ( ( / ) 2 ( ( / 45 % + 25 ( = 4 25 % + 35 / + 35 ( = 2 25 % + 5 / 5 ( =

Løsningsforslag: Eksamen i Brukerkurs for informatikere MA 0003, onsdag 30. november 2005

Prosjekt 2 - Introduksjon til Vitenskapelige Beregninger

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Optimal kontrollteori

MA0002 Brukerkurs i matematikk B Vår 2013

MA2501 Numeriske metoder

1 Mandag 22. februar 2010

Programmering i R. 6. mars 2004

Fasit MAT102 juni 2016

Generell informasjon om faget er tilgjengelig fra It s learning. 1 En kort oppsummering Adaptiv filtrering 2. 3 Prediksjon 4

Løsningsforslag til eksamen i MA0002, Brukerkurs i matematikk B

MAT feb feb mars 2010 MAT Våren 2010

Om plotting. Knut Mørken. 31. oktober 2003

Oppsummering TMA4100. Kristian Seip. 17./18. november 2014

Underveiseksamen i MAT-INF 1100, 17. oktober 2003 Tid: Oppgave- og svarark

Matematikk 1 Første deleksamen. Løsningsforslag

TMA4240 Statistikk H2010

UNIVERSITETET I OSLO

Løsningsforslag. Innlevering i BYFE/EMFE 1000 Oppgavesett 1 Innleveringsfrist: 14. september klokka 14:00 Antall oppgaver: 3.

Oppsummering TMA4100. Kristian Seip. 16./17. november 2015

Løsningsforslag Eksamen M001 Våren 2002

x n+1 rx n = 0. (2.2)

Transkript:

Notat 4 - ST1301 8. februar 2005 1 While- og repeat-løkker Vi har tidligere sett på bruk av før-løkker. Slike løkker er hensiktsmessig å bruke når vi skal gjenta visse beregninger (løkke-kroppen) et antall ganger og når antallet er kjent på forhånd. I en del tilfeller vil vi imidlertid ønske å stoppe løkken når en visse betingelse er oppfylt. Et eksempel er løsning av ikke-lineære ligninger ved hjelp av Newton s metode. La oss først se på den generelle virkemåten til en while-løkke. En while-løkke er bygget opp på følgende måte while (logisk uttrykk) { sammensatt uttrykk Før hver utførelse av løkke-kroppen (et eller flere uttrykk mellom krøllparantesene) vil det logiske uttrykket i parenteser beregnes. Hvis dette har verdi FALSE vil løkken avbrytes, hvis ikke utføres løkke-kroppen en gang til og det logiske uttrykt beregnes pånytt. La oss se på følgende eksempel. i <- 1 while (i<100) { i <- i*2 print(i) Her initieres først verdien av variabelen i til 1. Ved første gangs beregning av det logiske uttrykket i<100 har dette dermed verdi TRUE og løkke-kroppen utføres slik at i får verdien 2 som så skrives til skjerm ved med funksjonen print. Så gjentas det hele (det logiske uttrykket beregnes på nytt og løkkekroppen utføres) helt til i blir ikke lenger er mindre 100. Dette inntreffer når i har fått verdien 128 etter sjuende gangs utførelse av løkke-kroppen. Da avbrytes løkken: 1

[1] 2 [1] 4 [1] 8 [1] 16 [1] 32 [1] 64 [1] 128 > i [1] 128 Repeat-løkker er mer generelle og har følgende form repeat uttrykk hvor uttrykk som gjentas mange ganger inntil det skjer et kall til break(), typisk i en gren i en if-setning som vi bruker for å teste om løkken skal avbrytes. Følgende repeat-løkke gjør det samme som while-løkken ovenfor. i <- 1 repeat { if (i>=100) break() i <- i*2 print(i) Merk at if-setningen vi bruker for å avgjøre om løkka skal avbrytes kan plasseres hvor som helst i løkke-kroppen. Plasseres if-setningen helt til slutt i løkka vil løkke-kroppen dermed alltid utføres minst en gang og dette kan i en del tilfelle være hensiktsmessig. Merk også at en repeat løkke avbrytes hvis det logiske uttrykket i ifsetningen har verdi TRUE, mens det tilsvarende uttrykket i en while-løkke må være FALSE hvis løkka skal avbrytes. 2 Newton s metode Algoritmen er beskrevet i detalj i Neuhauser (2004) kap. 5.7. Metoden er egnet til å finne røtter til ligninger på formen f(x) = 0 forutsatt at vi kjenner funksjonen f og den deriverte av f. 2

Anta at x n befinner seg nære løsningen x av f(x) = 0. Ser vi på tangenten til funksjonen f gjennom punktet (x n, f(x n )) vil denne skjære første aksen gjennom et nytt punkt x n+1 som vil ligge nærmere x dersom f er tilnærmet lineær i området fra x til x n (se figur 1). Ut i fra denne betrakningen har vi at forholdet mellom f(x n ) og x n x n+1 er lik stigningstallet til tangenten, f (x n ). Løst for x n+1 gir dette følgende algoritme: 1. Velg en passende x 0 i nærheten av løsningen. 2. Beregn for n = 1, 2,... inntil x n x n 1 < ɛ. x n+1 = x n f(x n) f (x n ), (1) Størrelsen ɛ bestemmer den numeriske nøyaktigheten på løsningen og velges lik f.eks. 10 8 hvis vi ønsker en løsning med 8 desimalers nøyaktighet. Andre stoppkriterier kan brukes avhengig av hva slags problem vi studerer. f(x) f(x n ) x n+1 x n Figur 1: Netwon s metode 2.1 Eksempel Anta at vi ønsker å finne roten av et positivt tall a, altså løsningen av ligningen x 2 = a x 2 a = 0 (2) 3

som er på formen f(x) = 0 om vi lar f(x) = x 2 a. Deriverer vi f får vi og iterasjonsligningen blir dermed f (x) = 2x, (3) x n+1 = x n x2 n a 2x n x n+1 = x n x n 2 + a. 2x n (4) En funksjon som beregner roten av a ved bruk av metoden over kan se slik ut: minrot <- function(a,x0=a/2,tol=1e-8) { x <- x0 repeat { forrige.x <- x x <- x - x/2 + a/(2*x) if (abs(x-forrige.x)<tol) break() x Vi trenger i praksis ikke å ta vare på alle x n ene; det er nok å bruke to lokale variabler x og forrige.x. Variabelen forrige.x brukes til å ta vare på forrige verdi av x før vi beregner neste verdi av x, slik at vi kan sammenligne x n+1 og x n i det logiske uttrykket i første linje av while-løkken. I dette tilfelle har ligningen f(x) = 0 flere røtter, disse kan finnes ved å gi x 0 passende start verdier i nærheten av den roten vi søker: > minrot(2) [1] 1.414214 > minrot(2,x0=-2) [1] -1.414214 Newton s metode vil ikke alltid konverger mot noen løsning, se Neuhauser (2004) for eksempler. En rekke varianter av Newtons metode og andre algoritmer eksisterer for å løse tilsvarende problem. R s innebygde funksjon uniroot bruker en annen og langsommere algoritme og søker seg fram til røtter til en funksjon f forutsatt at f(x) har forskjellig fortegn på endepunktene av intervallet x = a og x = b: 4

> f <- function(x,a) x^2-a > uniroot(f,lower=0,upper=4,a=2) $root [1] 1.414208 $f.root [1] -1.503627e-05 $iter [1] 8 $estim.prec [1] 6.103516e-05 > uniroot(f,lower=-4,upper=0,a=2) $root [1] -1.414208 $f.root [1] -1.503627e-05 $iter [1] 8 $estim.prec [1] 6.103516e-05 2.2 Eksempel: Euler-Lotka ligningen La oss tenke oss en populasjon bestående av individer av ulik alder. La n være maksimal alder. La m i være antall avkom en hunn produserer på alderstrinn i (fekunditeten) og la l i være overlevelse opp til alder i. Anta at disse parameterne ikke endrer seg over tid. Dette vil kunne være tilfelle så lenge den totale populasjonsstørrelsen er liten slik at det ikke er konkurranse om plass og andre begrensede ressurser. Selv om en slik antakelse kanskje ikke er realistisk vil det kunne være interessant å undersøke implikasjonen av en disse antakelsene. Et spørsmål er hvor raskt en slik populasjon vil vokse. La N t,0 betegne antall nyfødte i år t. Disse nyfødte er avkom av hunner født i tidligere år av antall hunner født i år tilbake, N t i,0, vil en andel l i være i live ved tidspunkt t. Hver av disse vil bidra med m i avkom slik at det 5

totale bidraget fra årsklassen født i år tidligere blir N t i,0 l i m i avkom. Totalt antall avkom født i år t kan dermed skrives som N t,0 = N t i,0 l i m i. (5) Hvordan vil N t,0 endre seg over tid? Det virker rimelig å anta at N t,0 etter hvert vil vokse eller avta eksponentielt med t, altså at en mulig løsning vil kunne være på formen N t,0 = Ke rt. (6) Setter vi (6) inn i (5) får vi at Ke rt = Ke r(t i) l i m i. (7) Deler vi begge sider med Ke rt får vi 1 = e ri l i m i. (8) som er den såkalte Euler-Lotka ligningen. Hvis det eksisterer en r som er løsning av (8) betyr det at en løsning på formen (6) vil passe i (5), altså at populasjonen vil kunne vokse eksponentielt med vekstrate r. Bare når n 2 kan (8) løses ved vanlige metoder for n > 2 ser vi at (8) er en n te grads ligning i e r. Denne må generelt løses numerisk, f.eks. ved bruk av Newton s metode. Vi må da skrive om (8) slik at den er på formen finne f (r), og så bruke iterasjonsligningen f(r) = 0, (9) r = r f(r) f (r), (10) for å regne oss fram til løsningen. Euler-Lotka ligningen og alderstrukturerte modeller generelt er nyttige i mange sammenhenger, f.eks. kan slike modeller brukes i befolkningsframskrivninger for å predikere fremtidige befolkningsstørrelser under ulike scenarier. Innen evolusjonsbiologi er slike modeller viktige for å forstå evolusjon av ulike livshistoriestrategier slike modeller gir oss da innsikt i hva som er årsaken til fenomen som aldring, hva som påvirker alder for kjønnsmodning o.l. Alderstrukturerte modeller kan håndteres mer generelt ved bruk av metoder fra lineær algebra. Dette vil vi se nærmere på senere i kurset. 6

2.3 Eksempel: Sannsynlighetsmaksimering La oss tenke oss en levetidsmodell med dødsrate (intensitet) λ(t) = 1 t + a, (11) hvor parameter a er en positiv konstant. Dødsraten, altså sannsynligheten for at et individ dør i et lite tidsintervall t, t + t, gitt at det er i live ved tidspunkt t avtar altså med tiden t og går mot null når t går mot uendelig. Generelt (se notat om levetidsfordelinger fra brukerkurset i sannsynlighetsregning) er kumulativ fordeling til T uttrykt ved dødsraten gitt ved F T (t) = P (T t) = 1 e R t 0 λ(u)du. (12) For modell (11) får vi etter litt regning at dette blir F T (t) = 1 Deriverer vi får vi at tettheten til T blir f T (t) = a t + a. (13) a (t + a) 2. (14) La oss tenke oss at t 1, t 2,..., t n er observerte levetider fra modellen over og at vi ønsker å estimere parameteren a ved bruk av sannsynlighetsmaksimering. Vi trenger da likelihoodfunksjonen, altså sannsynligheten for dataene gitt a, som blir og log-likelihoodfunksjonen L(a) = n ln L(a) = n ln a 2 I likelihoodfunksjonens maksimum er a (t i + a) 2, (15) ln(t i + a) 2. (16) slik at ln L(a) = 0, (17) a n a 2 1 t i + a = 0. (18) 7

Løsningen av denne ligningen er sannsynlighetsmaksimeringsestimatet av a. Vi ser at (18) er en (n + 1) te gradsligning i a som derfor ikke kan løses ved vanlige metoder med mindre n = 1. Derfor må denne estimeringsligningen løses numerisk. Vi ser at vi har en ligning på formen f(a) = 0 slik at vi kan finne løsningen ved å bruke Newton s metode. Vi trenger da f (a) som blir n a 2 + 2 2 1 (t i + a) 2. (19) En funksjon som tar en vektor av observasjoner som innargument og beregner SME av a, â, ved hjelp av Newton s metode blir dermed: ahat <- function(t,a=1,tol=1e-6) { n <- length(t) repeat { forrigea <- a a <- a - (n/a-2*sum(1/(t+a)))/(-n/a^2+2*sum(1/(t+a)^2)) if (abs(a-forrigea)<tol) break() print(a) a 3 Newtons metode i flere dimensjoner Newton s metode kan generaliseres til å løse sett av n ligninger med n ukjente. Skal vi f.eks. finne sannsynlighetsmaksimeringsestimater i en modell med n ukjente parametere vil dette gi opphav til et slikt sett av ligninger når vi setter de deriverte med hensyn på de ulike parameterne lik 0. La oss se på det tilfelle at vi har et sett av to ikke-lineære ligninger med to ukjente. Vi har altså et problem på formen f(x, y) = 0, g(x, y) = 0. (20) og ønsker å finne en løsning z = (x, y) slik at (20) er tilfredsstilt. Vi gjetter først på en løsning z 0 = (x 0, y 0 ). Ideen som ligger bak løsningsalgoritmen er den samme som når vi bruker Newton s metode for å løse én 8

ligning med én ukjent. Vi lager oss tilnærminger til funksjonene f og g rundt punktet z 0 = (x 0, y 0 ) lineariseringene f(x, y) f(x 0, y 0 ) + f x (x x 0) + f y (y y 0) g(x, y) g(x 0, y 0 ) + g x (x x 0) + g y (y y 0) (21) De partiellderiverte beregnes i punktet z 0. Vi ser altså på tangentplanene til funksjonene f og g i punktet z 0. I stedet for å forsøke å løse det virkelige ikke-lineære ligningssystemet er ideen så at vi lager vi oss en forbedret tilnærmet løsning ved å sette tilnærmingene av funksjonene lik null. Vi får da det lineære ligningssystemet f(x 0, y 0 ) + f x (x x 0) + f y (y y 0) = 0, g(x 0, y 0 ) + g x (x x 0) + g y (y y 0) = 0, (22) som på matriseform kan skrives som hvor F(z 0 ) + J(z z 0 ) = 0, (23) F(z) = [ ] f(x, y), (24) g(x, y) altså en funksjon som har en vektor som funksjonsverdi, og hvor ] J = [ f x g x f y g y. (25) Vi lar løsningen på det lineariserte ligningssystemet (23) være neste tilnærmede løsning av (20) slik at vi generelt får iterasjonsformelen Merk likheten til (1). z n+1 = z n J 1 F(z n ). (26) 9