Nothing
## ----load, message=FALSE, echo=TRUE, eval=TRUE--------------------------------
library(GNE)
## ----argphi, fig=FALSE, echo=TRUE, eval=TRUE----------------------------------
myarg <- list(C=c(2, 3), D=c(4,0))
dimx <- c(1, 1)
#Gr_x_j O_i(x)
grobj <- function(x, i, j, arg)
{
dij <- 1*(i == j)
other <- ifelse(i == 1, 2, 1)
res <- 2*(x[i] - arg$C[i])*(x[other] - arg$D[i])^4*dij
res + 4*(x[i] - arg$C[i])^2*(x[other] - arg$D[i])^3*(1-dij)
}
dimlam <- c(1, 1)
#g_i(x)
g <- function(x, i)
ifelse(i == 1, sum(x[1:2]) - 1, 2*x[1]+x[2]-2)
#Gr_x_j g_i(x)
grg <- function(x, i, j)
ifelse(i == 1, 1, 1 + 1*(i == j))
## ----argJacF, fig=FALSE, echo=TRUE, eval=TRUE---------------------------------
#Gr_x_k Gr_x_j O_i(x)
heobj <- function(x, i, j, k, arg)
{
dij <- 1*(i == j)
dik <- 1*(i == k)
other <- ifelse(i == 1, 2, 1)
res <- 2*(x[other] - arg$D[i])^4*dij*dik
res <- res + 8*(x[i] - arg$C[i])*(x[other] - arg$D[i])^3*dij*(1-dik)
res <- res + 8*(x[i] - arg$C[i])*(x[other] - arg$D[i])^3*(1-dij)*dik
res + 12*(x[i] - arg$C[i])^2*(x[other] - arg$D[i])^2*(1-dij)*(1-dik)
}
#Gr_x_k Gr_x_j g_i(x)
heg <- function(x, i, j, k) 0
## ----testGNE, fig=FALSE, echo=TRUE, eval=TRUE---------------------------------
set.seed(1234)
z0 <- rexp(sum(dimx)+sum(dimlam))
GNE.nseq(z0, dimx, dimlam, grobj=grobj, myarg, heobj=heobj, myarg,
constr=g, grconstr=grg, heconstr=heg,
compl=phiFB, gcompla=GrAphiFB, gcomplb=GrBphiFB, method="Newton",
control=list(trace=0))
## ---- fig=FALSE, echo=FALSE, eval=TRUE----------------------------------------
#list of true GNEs
trueGNE <- rbind(c(2, -2, 0, 5*2^5),
c(-2, 3, 8, 0),
c(0, 1, 4*3^4, 0),
c(1, 0, 2^9, 6))
colnames(trueGNE) <- c("x1", "x2", "lam1", "lam2")
rownames(trueGNE) <- 1:4
## ---- fig=FALSE, echo=FALSE, eval=TRUE----------------------------------------
print(trueGNE)
## ----bench, fig=FALSE, echo=TRUE, eval=FALSE----------------------------------
# wholebench <- function(z0)
# {
# #min function
# resMin <- bench.GNE.nseq(z0, F, JacF, argPhi=list(phi=phiMin),
# argjac=list(gphia= GrAphiMin, gphib= GrBphiMin), echo=FALSE)
#
# #FB function
# resFB <- bench.GNE.nseq(z0, F, JacF, argPhi=list(phi=phiFB),
# argjac=list(gphia= GrAphiFB, gphib= GrBphiFB), echo=FALSE)
#
# #Mangasarian function
# resMan <- bench.GNE.nseq(z0, F, JacF, argPhi=list(phi=phiMan, f=function(t) t^3),
# argjac=list(gphia= GrAphiMan, gphib= GrBphiMan, fprime=function(t) 3*t^2),
# echo=FALSE, control=list(maxit=200))
#
# #LT function
# resLT <- bench.GNE.nseq(z0, F, JacF, argPhi=list(phi=phiLT, q=4),
# argjac=list(gphia= GrAphiLT, gphib= GrBphiLT, q=4))
#
# #KK function
# resKK <- bench.GNE.nseq(z0, F, JacF, argPhi=list(phi=phiKK, lambda=3/2),
# argjac=list(gphia= GrAphiKK, gphib= GrBphiKK, lambda=3/2))
#
# list(resMin=resMin, resFB=resFB, resMan=resMan, resLT=resLT, resKK=resKK)
# }
## ----benchcall, fig=FALSE, echo=TRUE, eval=FALSE------------------------------
# initialpt <- cbind(c(4, -4), c(-4, 4), c(3, 0), c(0, 3), c(-1, -1), c(0, 0))
# mytablelist <- list()
# for(i in 1: NCOL(initialpt))
# {
# z0 <- c(initialpt[, i], 1, 1)
# mybench <- wholebench(z0)
#
# cat("z0", z0, "\n")
#
# mytable12 <- data.frame(method=mybench[[1]]$compres[, 1],
# round(
# cbind(mybench[[1]]$compres[,c(-1, -4)], mybench[[2]]$compres[,c(-1, -4)])
# , 3) )
#
# mytable35 <- data.frame(method=mybench[[1]]$compres[, 1],
# round(
# cbind(mybench[[3]]$compres[,c(-1, -4)], mybench[[5]]$compres[,c(-1, -4)])
# , 3) )
#
# mytablelist <- c(mytablelist, z0=list(z0), MINFB=list(mytable12), MANKK=list(mytable35))
# }
## ----benchessai, fig=FALSE, echo=TRUE, eval=FALSE-----------------------------
# z0 <- c(-4, 4, 1, 1)
# bench.GNE.nseq(z0, F, JacF, argPhi=list(phi=phiMin),
# argjac=list(gphia= GrAphiMin, gphib= GrBphiMin), echo=FALSE)$compres
## ----singjac, fig=FALSE, echo=TRUE, eval=TRUE---------------------------------
z0 <- c(0, 0, 1, 1)
jacSSR(z0, dimx, dimlam, heobj=heobj, myarg, constr=g, grconstr=grg,
heconstr=heg, gcompla=GrAphiMin, gcomplb=GrBphiMin)
## ----singjac2, fig=FALSE, echo=TRUE, eval=TRUE--------------------------------
jacSSR(z0, dimx, dimlam, heobj=heobj, myarg, constr=g, grconstr=grg,
heconstr=heg, gcompla=GrAphiFB, gcomplb=GrBphiFB)
jacSSR(z0, dimx, dimlam, heobj=heobj, myarg, constr=g, grconstr=grg,
heconstr=heg, gcompla=GrAphiKK, gcomplb=GrBphiKK, argcompl=3/2)
## ----testGNEceq, fig=FALSE, echo=TRUE, eval=TRUE------------------------------
z0 <- 1+rexp(sum(dimx)+2*sum(dimlam))
GNE.ceq(z0, dimx, dimlam, grobj=grobj, myarg, heobj=heobj, myarg,
constr=g, grconstr=grg, heconstr=heg,
method="PR", control=list(trace=0))
## ----testNI, fig=FALSE, echo=TRUE, eval=TRUE----------------------------------
#O_i(x)
obj <- function(x, i, arg)
(x[i] - arg$C[i])^2*(x[-i] - arg$D[i])^4
#g(x)
gtot <- function(x)
sum(x[1:2]) - 1
#Gr_x_j g(x)
jacgtot <- function(x)
cbind(1, 1)
z0 <- rexp(sum(dimx))
GNE.fpeq(z0, dimx, obj, myarg, grobj, myarg, heobj, myarg, gtot, NULL,
jacgtot, NULL, silent=TRUE, control.outer=list(maxit=10),
problem="NIR", merit="NI")
GNE.fpeq(z0, dimx, obj, myarg, grobj, myarg, heobj, myarg, gtot, NULL,
jacgtot, NULL, silent=TRUE, control.outer=list(maxit=10),
problem="VIR", merit="VI")
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.