Hello everybody!

I have problems with integrating my function.

My primary function is a “survival function” of the following type:

surviv <- exp(-k*x)/(1+exp(alpha*(x-tau)))

I would like to integrate this function over a defined range and obtain a
vector with all the values from integrate(surviv, 0, x) for x <- 1:N. 

I unfortunately obtain just a scalar value corresponding to the last
integrated x.

How do I have to proceed if I want to obtain a vector with all the results?

I have tried to solve this problem by adding a “while loop”. It works but
the expression becomes to complex if I want to perform further optimization.

Have any one a solution for this problem?

Thanks a lot in advance.

 

Example

# General equation

beta1 <- 0.001

beta2 <- 0

Hct0 <- 0.27

tau <- 70

k <- 0.001

alpha <- 0.3

T2 <-40

 

step <- function(x){

   if(x>=0) step <- 1

   else step <- 0

}

 

   Nmax <- 250

   n <- 1

      while(n<Nmax){

         surviv <- function(n){

            surviv <- exp(-k*n)/(1+exp(alpha*(n-tau)))

         }

 

         geq <- function(n){

            geq <-
Hct0+beta1*as.integer(integrate(surviv,0,n)[1])+step(n-T2)*(beta2-beta1)*as.
integer(integrate(surviv,0,n-T2)[1])

         }

            plot(n, geq(n), type="p", pch=19, xlim=c(0,250),
ylim=c(0.25,0.35), xlab="time in days", ylab="Hct")

            par(new=T)

            print(c(n, surviv(n), geq(n),
as.integer(integrate(surviv,0,n)[1]))                

       n <- n + 1

       }

 

 

Robert M. Kalicki, MD

Department of Nephrology and Hypertension

University of Bern

 

Abteilung für Nephrologie und Hypertonie (KiKl G5)

Freiburgstrasse 15

CH-3010 Inselspital

 

Tel: +41316329663

Fax:+41316329734

 


	[[alternative HTML version deleted]]

