n=50
x=rep(0,n)
i=1
while(i < n){
x[i+1]=0.3*x+ rnorm(1)
i=i+1
}
x
v=sort(x)[3]
fzero<-function(f,a,b,eps=1e-5)
{if(f(a)*f(b)>0) list(fail="finding root is fail!")
else {repeat{if(abs(b-a)<eps) break
t<-(a+b)/2
if(f(a)*f(t)<0) b<-t else a<-t}
list(root=(a+b)/2,fun=f(t))}}
f<-function(t) v *mean(exp(t*x))-mean(x*exp(t*x))
t=fzero(f,-5,0,1e-5)$root
t
y=rep(0,n)
for(i in 1:n){
y=exp(t*x)
i=i+1
}
y
mean(y)
log(mean(y))
L=rep(0,n)
pha=log(mean(y))
for(i in 1:n){
L=exp(-t*x+pha)
i=i+1
}
L
twof=function(f,a,b){
eps=1e-5
while(abs(b-a)>eps){
h=(a+b)/2
if(f(h)-0.05<0) a=h
else b=h
}
list(root=h,fun=f(h))}
g=function(h){
sum(ifelse(x<=h,L,0))/n
}
h=twof(g,-1.59735561,2.39419319)$root
v1=h
v1
alpha=0.05
z=rep(0,n)
for(i in 1:n){
if(-v1-x<=0)z=0
else z=(-v1-x)*L
i=i+1
}
c1=v1-(1/alpha)*mean(z)
c1