Hi, i need to minimize a quadratic function with boundary condidtions and one equality condition. In order to do that i converted the equality constraint into 2 inequality constaints and passed everything cia constrOptim, as the manual said: everything included in the ... will be passed to Optim that will pass it back to fn in case it does not need it.
My code is the following: mat <- array( c(0.0001088799073581, 0.0000136029502036, 0.0000060430384243, 0.0000847097879033, 0.0000115053365822, 0.0000216245975292, 0.0000483253391811, 0.0000787580901352, 0.0000186474817658, 0.0000312260571354, 0.0000217594093734, 0.0000536298150897, 0.0000166202592455, 0.0000451975061637, -0.0000120364862228, 0.0000497117714376, 0.0000136029502036, 0.0001537319301276, 0.0000226518408080, 0.0000591480002102, 0.0000797128619950, 0.0000091332643423, 0.0000693354260457, 0.0000825217915015, 0.0000229122227269, 0.0000297662414650, 0.0000334443258658, 0.0000273254534933, 0.0000202062301763, 0.0000026260702295, 0.0000558975248740, 0.0000953647537111, 0.0000060430384243, 0.0000226518408080, 0.0005971325756834, -0.0000762583321100, -0.0000246005202071, -0.0000300982253054, 0.0000299178429478, 0.0000135672602503, 0.0001735431064391, -0.0000133347388414, 0.0001387582890571, 0.0000964898243724, -0.0000149571346672, 0.0000104437939143, 0.0001246900353191, -0.0000171884354549, 0.0000847097879033, 0.0000591480002102, -0.0000762583321100, 0.0004968467836203, 0.0002303499425964, 0.0000992731601466, 0.0002685466918035, 0.0002580180069951, 0.0000725833959653, 0.0000525639940758, 0.0001785049461665, 0.0001781339191317, 0.0000597631329497, 0.0000201160486244, 0.0002582267884874, 0.0002473268250781, 0.0000115053365822, 0.0000797128619950, -0.0000246005202071, 0.0002303499425964, 0.0002945009393242, -0.0000426583313588, 0.0002067711081561, 0.0002695894499975, 0.0001312519434236, -0.0000079156628396, 0.0001423655606105, 0.0000044733483182, 0.0000303832556655, 0.0000577624190434, 0.0001193435284164, 0.0002422477575812, 0.0000216245975292, 0.0000091332643423, -0.0000300982253054, 0.0000992731601466, -0.0000426583313588, 0.0001641146317929, 0.0000311621614693, -0.0000147821020927, -0.0000767394607354, 0.0000619936562782, -0.0000306228761064, 0.0001495752154579, 0.0000389317919640, -0.0000714551280935, -0.0000564616194935, 0.0000384367900903, 0.0000483253391811, 0.0000693354260457, 0.0000299178429478, 0.0002685466918035, 0.0002067711081561, 0.0000311621614693, 0.0003176493360736, 0.0002575792630182, 0.0001371966488704, 0.0000436833885846, 0.0001442516276721, 0.0001075447728937, 0.0000371155448252, 0.0000475873370276, 0.0002162409964174, 0.0002870514043081, 0.0000787580901352, 0.0000825217915015, 0.0000135672602503, 0.0002580180069951, 0.0002695894499975, -0.0000147821020927, 0.0002575792630182, 0.0006217963583393, 0.0002368375072233, 0.0000078625467985, 0.0002054774387807, -0.0000066572248626, 0.0000485854317294, 0.0002802199677114, 0.0001676465030622, 0.0003028775764026, 0.0000186474817658, 0.0000229122227269, 0.0001735431064391, 0.0000725833959653, 0.0001312519434236, -0.0000767394607354, 0.0001371966488704, 0.0002368375072233, 0.0004475645060339, -0.0000030389778729, 0.0001706183643212, -0.0000017789896670, 0.0000722657436668, 0.0001664088523103, 0.0001220193496918, 0.0001641280878243, 0.0000312260571354, 0.0000297662414650, -0.0000133347388414, 0.0000525639940758, -0.0000079156628396, 0.0000619936562782, 0.0000436833885846, 0.0000078625467985, -0.0000030389778729, 0.0000822356406019, -0.0000226786278360, 0.0000752056105897, 0.0000399801889185, -0.0000441549693477, 0.0000047887593401, 0.0000352165734549, 0.0000217594093734, 0.0000334443258658, 0.0001387582890571, 0.0001785049461665, 0.0001423655606105, -0.0000306228761064, 0.0001442516276721, 0.0002054774387807, 0.0001706183643212, -0.0000226786278360, 0.0004304869804941, 0.0001566983136020, 0.0000332770114864, 0.0000012432094922, 0.0002491186667930, 0.0001285479414542, 0.0000536298150897, 0.0000273254534933, 0.0000964898243724, 0.0001781339191317, 0.0000044733483182, 0.0001495752154579, 0.0001075447728937, -0.0000066572248626, -0.0000017789896670, 0.0000752056105897, 0.0001566983136020, 0.0005292416268831, 0.0000893358436932, -0.0001009559617338, 0.0000888461032129, 0.0000714719761291, 0.0000166202592455, 0.0000202062301763, -0.0000149571346672, 0.0000597631329497, 0.0000303832556655, 0.0000389317919640, 0.0000371155448252, 0.0000485854317294, 0.0000722657436668, 0.0000399801889185, 0.0000332770114864, 0.0000893358436932, 0.0001844874143317, 0.0000549019705905, -0.0000117658984941, 0.0000394986211508, 0.0000451975061637, 0.0000026260702295, 0.0000104437939143, 0.0000201160486244, 0.0000577624190434, -0.0000714551280935, 0.0000475873370276, 0.0002802199677114, 0.0001664088523103, -0.0000441549693477, 0.0000012432094922, -0.0001009559617338, 0.0000549019705905, 0.0006686123611712, -0.0001115788528761, 0.0000151312169512, -0.0000120364862228, 0.0000558975248740, 0.0001246900353191, 0.0002582267884874, 0.0001193435284164, -0.0000564616194935, 0.0002162409964174, 0.0001676465030622, 0.0001220193496918, 0.0000047887593401, 0.0002491186667930, 0.0000888461032129, -0.0000117658984941, -0.0001115788528761, 0.0014937840813054, 0.0001299625832782, 0.0000497117714376, 0.0000953647537111, -0.0000171884354549, 0.0002473268250781, 0.0002422477575812, 0.0000384367900903, 0.0002870514043081, 0.0003028775764026, 0.0001641280878243, 0.0000352165734549, 0.0001285479414542, 0.0000714719761291, 0.0000394986211508, 0.0000151312169512, 0.0001299625832782, 0.0004355778955394), c(16,16)) covar <- function(x) return (t(x) %*%mat %*% (x)) covargr <- function(x) return ( 2*mat %*% (x)) upper1 = c(1, 0, 0, 0, 0, 0, 0,0 ,0 , 0, 0, 0, 0, 0, 0, 0) lower1 = c(1, -0.25, -0.25, -0.25, -0.25, -0.25, -0.25, -0.25, -0.25, -0.25, -0.25, -0.25, -0.25, -0.25, -0.25, -0.25) lower[1] = 1 init = upper1- 1/15.0 init[1] = 1 optim( init, covar, covargr, method = "L-BFGS-B", lower = lower1, upper = upper1) u1 <- c(0, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 0, -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1) u2<- array(u1, c(16, 2)) u2[,2] <- -u2[,2] u1<- t(u1) c1<- array(c(-1, -1),c(2,1)) constrOptim (init, covar, covargr, t(u2), c1, mu = 1e-054, method = "L-BFGS-B", lower = lower1, upper = upper1, outer.iterations = 100, outer.eps = 1e-05) The problem I face is an error message telling me that the method "L-BFGS-B" needs finite values of fn... while everything works well in the optim case without the inequalities. Does anybody have any clue about what might have gone wrong? THank you for your help Georges -- View this message in context: http://www.nabble.com/constrOptim-with-method-%3D-%22L-BFGS-B%22-tp17916460p17916460.html Sent from the R help mailing list archive at Nabble.com. ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.