请问各位Rdonlp2函数求解非线性规划时迭代值怎么确定?为什么我的函数编出来之后答案和预期差别很大?
求大神指点一下哪里出错,感恩!
附函数如下(其中的迭代值p是我自己随便编的,F,D是两个已经确定对的自定义函数):
> fn<-function(par){
+ x1<-par[1];x2<-par[2];x3<-par[3];x4<-par[4];x5<-par[5];x6<-par[6];x7<-par[7];x8<-par[8];x9<-par[9];x10<-par[10];x11<-par[11];x12<-par[12];x13<-par[13]
+ F(x1)*x1-D(x1)+F(x2)*x2-D(x2)+F(x3)*x3-D(x3)+F(x4)*x4-D(x4)+F(x5)*x5-D(x5)+F(x6)*x6-D(x6)+F(x7)*x7-D(x7)+F(x8)*x8-D(x8)+F(x9)*x9-D(x9)+F(x10)*x10-D(x10)+F(x11)*x11-D(x11)+F(x12)*x12-D(x12)+F(x13)*x13-D(x13)
+ }
> library(Rdonlp2)
> par.l<-c(rep(0,13))
> par.u<-c(rep(16000,12),15445)
> A<-matrix(c(1,0,0,0,0,0,0,0,0,0,0,0,0,
+ 0,1,0,0,0,0,0,0,0,0,0,0,0,
+ 0,0,1,0,0,0,0,0,0,0,0,0,0,
+ 0,0,0,1,0,0,0,0,0,0,0,0,0,
+ 0,0,0,0,1,0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,1,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,1,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,1,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,1,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,1,0,0,0,
+ 0,0,0,0,0,0,0,0,0,0,1,0,0,
+ 0,0,0,0,0,0,0,0,0,0,0,1,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,1,
+ 1,1,1,1,1,1,0,0,0,0,0,0,0),nrow=14,byrow=TRUE)
> lin.l<-c(rep(0,14))
> lin.u<-c(rep(16000,12),15445,56000)
> p<-c(rep(10,13))
> ret<-donlp2(par=p,fn=fn,par.u=par.u,par.l=par.l,A=A,lin.l=lin.l,lin.u=lin.u)
> ret$par.
NULL
> ret$par
[1] 10 10 10 10 10 10 10 10 10 10 10 10 10
|