[From nobody Sat Mar 18 16:49:44 2006 Message-ID: <7AB23E9F7AF4D311854200C04F0136D001CD159A@SRV_QMP2.adrianet> From: Kervahu Anne <anne.kervahu@adria.tm.fr> To: "'r-help-request@stat.math.ethz.ch'" <r-help-request@stat.math.ethz.ch> Subject: syntax problem Date: Fri, 8 Apr 2005 14:31:04 +0200 MIME-Version: 1.0 X-Mailer: Internet Mail Service (5.5.2653.19) Content-Type: text/plain Hi, I try to minimize the sum of the sum of sce. The following program has been created but it only takes in consideration the last kinetic and not the first ones. I think that I have forget a subscrib but I don't know where. so if you can help me, it will be great.... I have try an other program where y and x are directly calculate in sce function but the time of running was to long. Thanks in advance, Anne KERVAHU rm(list=ls()) nbr=10 #list of data x_a<-c(0,0.5,1,1.5,2,3,4,6,8,15,20,40,60,80,120) y_a<-c(5.4771213,5.0791812,4.8450980,4.3010300,4,2.30103,1.5563025,1.30103,1 ,1.6434527,0.60206,0.60206,0.30103,0,0.4771213) x_b<-c(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14) y_b<-c(5.3424227,4.9867717,4.6627578,4.0606978,3.07182,3.4771213,2.7993405,2 .9395193,2.69897,2.6127839,1.9777236,1.3222193,1.4149733,0.7781513,1.3222193 ) x_c<-c(0,3,6,10,12,14,16,18,20,24,26,28,30,34) y_c<-c(5.5185139,5.1461280,4.3617278,3.771513,3.20412,3.0413927,2.7781513,2. 5682017,2.255272,1.7823917,1.447158,1.3222193,1.2787536,0.69897) #number of kinetics nb=3 #complete data set x<-c(x_a,x_b,x_c) y<-c(y_a,y_b,y_c) #cumulative length long<-c(0,15,30,44) coeff<-matrix(nrow=1,ncol=(nb*2)+2) #function to minimise sce<-function(param){ return(sum(sum((yy-(param[i+nb]-(xx/param[i])^param[(nb*2)+1]))^2))) } #initial value for optim function ninit<-vector(length=nb) for(i in 1:nb){ ninit[i]<-x[long[i]+1] } pinf=c(rep(0.01,nb),rep(3,nb),0.5) psup=c(rep(10,nb),rep(8,nb),4) pinit=c(runif(nb,min=0.1,max=5),ninit,runif(1,min=0.5,max=4)) print(pinit) for (i in 1:nb) { yy<-y[((long[i]+1):long[i+1])] for( k in 1:length(yy)){ ifelse((yy[k]<=log10(nbr)),(yy<-yy[1:(min(which(yy<=log10(nbr),arr.ind=FALSE ))-1)]),(yy<-yy)) } vv<-x[((long[i]+1):long[i+1])] xx<-x[((long[i]+1):((long[i]+1)+(length(vv)=length(yy))-1))] fl<-optim(p=pinit,sce,method="L-BFGS-B",lower=pinf,upper=psup, control=list(maxit=200000,temp=200)) co<-fl$par coe<-fl$value coeff<-c(co,coe) } coeff #graphical verification plot(x_b,y_b) y_est<-coeff[6]-(x_b/coeff[2])^coeff[7] points(x_b,y_est) ]