Løsningsfrslag øving 5, ST1301 ppgave 1 Newtn's metde Prgrammer en funksjn sm nner løsningen på ligningen e x 5 + x = 0; (1) ved hjelp av Newtn's metde g sm returner løsningen sm funksjnsverdi Stpp iterasjnene når den abslutte endringen i x i i løpet av en iterasjn er mindre enn 10 6 Skriv gjerne ut verdien av x i ved hver iterasjn ved å legge ett kall til cat eller print inne i while-løkken La x 0 være funksjnsargument g undersøk m løsningen påvirkes av valg av x 0 Kntrller at løsningen er riktig ved innsetting newtn <- functin(x0=1,tl=1e-6) { x <- x0 repeat { frrigex <- x x <- x - (exp(x)-5+x)/(exp(x)+1) if(abs(x-frrigex)<tl) break() x > lsning <- newtn() [1] 1344707 [1] 1307129 Innsetting gir et svært lite tall At det ikke er eksakt lik null skyldes at løsningen løsningen er beregnet numerisk med en nøyaktighet lik 10 6 : > exp(lsning)-5+lsning [1] 3019807e-14 Algritmen ser ut til å fungere gdt uavhengig av x 0 Det kan imidlertid se ut til algritmen knvergerer svært langsmt fr stre x 0 : 1
> newtn(x0=5) [1] 4006693 [1] 304231 > newtn(x0=3) [1] 2142278 [1] 1547551 > newtn(x0=100) [1] 99 [1] 98 [1] 97 ppgave 2 Finne dekningsgrad til frbedret kndensintervall fr parameteren p i binmisk frdeling ved å simulere Kndensintervaller kan knstrueres på mange andre måter enn i Løvås (1999) Nedenfr er et alternativt kndensintervall fr parameteren p i binmisk mdell utledet (det alternative intervallet g utledning er ikke pensum men er tatt med til rientering) Prgrammer en funksjn knfint2 sm beregner dette alternative intervallet gitt ved (12), (9), (7), g (2) Bruk lkale variabler knstruktivt fr å ta vare på mellmregningsresultater La funksjnen håndtere inn- g utdata på samme måte sm funksjnen knfint i øving 4 Test m funksjnen fungerer fr passende valg av X g n (feks X = 5 g n = 50) Sammenlign med hva du får m du bruker standard-intervallet fra øving 4 2
Beregn så dekningsgraden til det alternative intervallet på samme måte g fr de samme parameterkmbinasjnene sm i øving 4, dvs: p n 05 100 005 01 100 005 005 100 005 05 20 005 01 20 005 005 20 005 Skriv et avsnitt hvr du diskuter frskjellene i simuleringsresultater! knfint2 <- functin(x,n,alpha=005) { z <- qnrm(p=alpha/2,lwertail=f) phat <- X/n a <- z^2/n pmerket <- (phat+a/2)/(1+a) rtuttrykk <- sqrt(pmerket^2-phat^2/(1+a)) nedre <- pmerket - rtuttrykk vre <- pmerket + rtuttrykk return(list(nedre=nedre,vre=vre)) I tillegg må funksjnen dekningsgrad (se løsningsfrslag øving 4) frandres slik at denne kaller knfint2 Dekningsgraden fr ulike parameterverdier blir nå > dekningsgrad(5,100,05) [1] 09393 > dekningsgrad(1,100,05) [1] 09407 > dekningsgrad(05,100,05) [1] 0966 > dekningsgrad(5,20,05) [1] 09585 > dekningsgrad(1,20,05) [1] 09564 > dekningsgrad(05,20,05) [1] 09252 3
Vi ser at dette kndensintervallet fungerer svært mye bedre, selv når np(1 p) < 5 ligger dekningsgraden i nærheten av det nminelle nivået på 95% Utledning av alternativt kndensintervall fr parameteren p i binmisk mdell: I øving 4 studerte vi det reelle kndensnivået (dekningsgraden) til standard kndensintervall fr parameter p i et binmisk frsøk Vi så at dekningsgraden i mange tilfeller ble liggende langt unna det det nminelle (søkte) kndensnivået Kndensintervallet vi så på var utledet med utgangspunkt i z-transfrmen til ^p = X n ; (2) altså størrelsen ^p p p^p(1 ^p)=n ; (3) sm er tilnærmet standard nrmalfrdelt Legg imidlertid merke til at vi har en stkastisk størrelse gså i nevner, ne sm i praksis vil bidra ytterligere til avvik fra standardnrmalfrdelingen Et alternativt kndensinterval fr p kan knstrueres med utgangspunkt i størrelsen ^p p p ; (4) p(1 p)=n sm vil være bedre tilnærmet av standardnrmalfrdelingen enn (3) frdi det eksakte standardavviket (uttrykkt ved parameteren p) inngår i nevner Vi har da ^p p P z =2 < p p(1 p)=n < z =2! 1 : (5) Vi ønsker å løse denne dbbeltulikheten slik at vi får islert parameteren p i midten Hendelsen vi ser på sannsynligheten til er ekvivalent med Innfører vi får vi etter litt mskriving (^p p) 2 p(1 p)=n < z2 =2 : (6) a = z 2 =2 n ; (7) p 2 ^p + a=2 2 1 + a p ^p + 1 + a 2 < 0: (8) 4
Innfører vi gså g fullfører kvadratet i (8) får vi p 0 = 1 ^p + a 1 2 ; (9) 1 + a sm er ekvivalent med p 0 rp 02 (p p 0 ) 2 < p 02 ^p 2 1 + a ; (10) ^p 2 1 + a < p < p0 + r p 02 ^p 2 1 + a : (11) Frdi (11) er samme hendelse sm i (5) er ^p p rp 2 0 02 1 + a ; p0 + r p 02 ^p 2 1 + a! (12) et tilnærmet (1 ) kndensintervall fr p I mtsetning til standardintervallet er dette intervallet ikke sentrert runt ^p men rundt p 0 Fra (9) ser at p 0 (midtpunktet i intervallet) kan betraktes sm et vektet snitt mellm ^p (punktestimatet av p) g 1=2 (vektene er 1 g a) midtpunktet i det frbedrede kndensintervallet blir altså trukket i retning av 1=2 ppgave 3 Følgende funksjn simulerer en realisasjn fra en bestemt sannsynlighetsfrdeling Hvilken? Frklar hvrdan? xxx <- functin(n,p) { x <- 0 nsuksess <- 0 while (nsuksess < n) { y <- rbinm(n=1,size=1,prb=p) x <- x+1 if (y==1) { nsuksess <- nsuksess + 1 x 5
" b Funksjnen simulerer Bernulli frdelte variable med parameter p, tilrdner resultatet til y, teller pp ttalt antall Bernulli frsøk x, g antall suksesser nsuksess Dette utføres helt til antall suksesser blir lik n Tilslutt returneres antall delfrsøk sm dermed vil være negativt binmisk frdelt ppgave 4 Bruk av nøstede løkker g matriser Les først m hvrdan m matriser g indeksering av matriser fungerer i Dalgaard (kap 126 g 1210) Vi refererer til et element i en matrise ved å skrive feks a[2,3], ere element ved å skrive a[1:3,2:5], g hele rader eller klnner ved å skrive feks a[2,] eller a[,4] Anta at vi står i punkt A (kafé de ni muser) i rutenettet vist i gur 1 g at vi skal velge en krtest mulig vei (langs pilene) til punkt B (krambua) Prgrammer en funksjn sm beregner antall veier fra A til B fr vilkårlig valg av m g n B (1; 1) (1; 2) (2; 1) a i 1;j a i;j 1 a i;j (n; m) A Figur 1: Kart ver midtbyen Tips: La a i;j betegne antall mulige veivalg til punkt B fra kryss (i; j) i rutenettet I fra kryss langs øvre g venstre kant i rutenettet vil det åpenbart være bare en vei til B (a i;j = 1 fr i = 1 g j = 1) Anta i tillegg at vi har greid å beregne a i 1;j g a i;j 1 (se gur) Hva kan vi da si m antall veier fra kryss (i; j)? Bruk svaret på dette spørsmålet når du skal prgrammere løsningen av ppgaven I denne ppgaven kan eksempelfasen i designplanen være spesielt nyttig fr å tenke igjennm hvilke perasjner sm må gjennmføres 6
# Kntrakt: veivalg: heltall, heltall -> heltall # # Hensikt: # Beregne antall veier fra et hjørne til et annet # i et rutenett ned m x n kryss # # Eksempel: # veivalg(2,1) skal gi 1 sm svar # veivalg(1,2) skal gi 1 # veivalg(2,2) skal gi 2 # veivalg(2,3) skal gi 3 # veivalg(3,2) skal gi 3 # veivalg(3,3) skal gi 6 # veivalg <- functin(n,m) { a <- matrix(na,nrw=n,ncl=m) a[1,] <- 1 a[,1] <- 1 fr (i in 2:n) { fr (j in 2:m) { a[i,j] <- a[i-1,j] + a[i,j-1] a[n,m] # Tester: veivalg(3,3) veivalg(10,5) Tilleggspørsmål (krever ikke prgrammering): Finnes det nen analytisk måte å nne antall veier på uten bruk av datamaskin? Hint: Tenk kmbinatrikk g antall skritt til venstre ut av ttalt antall skritt Fr å kmme fra A til B må vi ttalt gå (m 1) + (n 1) skritt hvrav n 1 skritt skal være av typen V (vestre) g m 1 av typen H (høyre) Et bestemt veivalg vil svare til en bestemt rdning av skritt-typer, feks, H,V,V,H,H,H,V,V Ttalt antall mulige veivalg vil være lik antall måter 7
denne sekvensen kan permuteres på, altså m + n 2 m 1 (13) Dersm vi lar funksjnen returnere hele matrisen vil vi gså se sammenhengen til kmbinatrikken ved at øvre venstre del av matrisen inkludert diagnalen j er Pascals trekant 8