While-argument i Newthons Metode

4 views
Skip to first unread message

ego

unread,
May 30, 2011, 9:35:56 AM5/30/11
to ST2304 Statistical Modelling for Biologists/Biotechnologists
Sitter med øving 9, oppg. 2:
Jeg sliter med å skjønne hvordan jeg skal "lese" ' while'-argumentet.
Jeg vet at hensiktet med det er at funksjonen skal gå frem til
differansen mellom to løsningsforslag er mindre enn 1e-8, en jeg
klarer som sagt ikke å "lese" dette...Hodet mitt ville kanskje satt
inn ' while(abs(lambda[i]-lambda[i-1] <1e-8)) '

Problem 2
# i : alder
# l(i) : andel individ som overlever til i
# m(i) : ant. avkom per individ som overlever til alder i

EL <- function(l,m) #Oppgir vektorer for l og m med verdiene
{
n<- length(m)
i<- 1:n
lambda<-1
while(abs(sum(lambda^(-i)*l*m)-1)>1e-8)

{
f<-(sum(lambda^(-i)*l*m)-1)
fd<-sum(-i*lambda^(-1-i)*l*m)
lambda<-lambda-(f/fd)
}
lambda
}
EL(c(0,0,32),c(.9,.8,.25))
#Svar=2

Jarle Tufto

unread,
May 30, 2011, 9:44:52 AM5/30/11
to ST2304 Statistical Modelling for Biologists/Biotechnologists
F.eks.

x <- 0
while (x<5) {
x <- x+1
}

oversatt til "norsk" betyr "Så lenge x<5, øk x med én." Tilsvarende
betyr koden i løsningsforslaget at vi må beregne en ny lamda "så lenge
som vi ikke har funnet løsningen med ønsket nøyaktighet" (så lenge
f(lambda) i absoluttverdi er større enn 1e-8). Merk at vi her ser på
om ligningen vi skal løse er oppfyllt i stedet for å se på om
endringen i lambda fra en iterasjon til neste er tilstrekkelig liten.

Jisca

unread,
May 30, 2011, 9:49:02 AM5/30/11
to ST2304 Statistical Modelling for Biologists/Biotechnologists
To see what it does, you can do in R:

f <- function() {
x <- 0
while (x<5) {
x <- x+1
cat("x=",x,"\n")
}
}
f()
Reply all
Reply to author
Forward
0 new messages