####################1###########################################################
### Plot Ridge and Lasso object and solution as lambda varies.
####################1###########################################################
dpl=TRUE
####################1###########################################################
y=1 #observe y=1
betavec = seq(from=-2,to=2,length.out=500) 

lamvec = c(100,5:1,.5,.1)
nl = length(lamvec)
#lamvec = lamvec[nl:1]

if(dpl) pdf(file="seeSimpleLasso.pdf",height=14,width=8)
par(mfrow=c(nl,2))
par(mai=c(.6,.6,.5,.1))
par(oma=c(.1,.1,.1,.1))

for(i in 1:nl) {
Lv = (y-betavec)^2
Lav = .5*Lv + lamvec[i]*abs(betavec)
Lrv = Lv + lamvec[i]*(betavec^2)

plot(betavec,Lrv,xlab=expression(beta),ylab="Rige Objective",type="l")
ii=which.min(Lrv)
abline(v=betavec[ii],col="blue",lwd=3)
abline(v=1,col="magenta")
title(main=paste("lambda  =",lamvec[i]))


plot(betavec,Lav,xlab=expression(beta),ylab="Lasso Objective",type="l")
ii=which.min(Lav)
abline(v=betavec[ii],col="red",lwd=3)
abline(v=1,col="magenta")
title(main=paste("lambda  =",lamvec[i]))
}

if(dpl) dev.off()
############################################################
if(dpl) rm(list=ls())



