[问题] nloptr gradient 疑问

楼主: s1001326 (gg)   2016-05-31 23:05:56
[问题类型]:
程式咨询(我想用R 做某件事情,但是我不知道要怎么用R 写出来)
[软件熟悉度]:
入门(写过其他程式,只是对语法不熟悉)
[问题叙述]:
不好意思,想请教一个问题,因为研究上需要,因此要用nloptr解问题,里面的gredient
意思不是很懂,从字面上我知道是斜率,但是看了范例之后发现我的想法不是很对,
以R提供的范例为例
Exampls
min_{x} x1*x4*(x1+x2+x3)+x3
s.t.
x1*x2*x3*x4 >= 25
x1^2 + x2^2 + x3^2 +x4^2 =40
1 <= x1,x2,x3,x4 <= 5
f(x)
"objective"=x[1]*x[4]*(x[1]+x[2]+x[3])+x[3],
"gradient"=c(x[1]*x[4]+x[4]*(x[1]+x[2]+x[3])),
x[1]*x[4],
x[1]*x[4]+1.0,
x[1]*(x[1]+x[2]+x[3])
eval_g_ineq
constr <- c(25-x[1]*x[2]*x[3]*x[4])
grad <- c(-x[2]*x[3]*x[4],
-x[1]*x[3]*x[4],
-x[1]*x[2]*x[4],
-x[1]*x[2]*x[3],)
eval_g_eq
constr <- c(x[1]*2+ x[2]*2 + x[3]*2 + x[4]^2 -40)
grad <-c( 2.0*x[1],
2.0*x[2],
2.0*x[3],
2.0*x[4])
# initial values
x0 <- c (1,5,5,1)
这边仅列出部分程式码,很不好意思,有大大可以解释目标式与限制式所对应的
gradient所代表的意思吗?为什么是这样表示?非常谢谢大家的帮助
BTW,想请问initial values所代表的意思,是固定的值还是有其他意思,要如何决
定里面的数字?烦请各位大大指点迷津@@
作者: celestialgod (天)   2016-05-31 23:46:00
gradient看起来就是目标函数对x1~x4的微分initial value就你自己给定 这个我不确定有没有办法给一个最佳的grad看起来是constr的微分
楼主: s1001326 (gg)   2016-06-01 12:41:00
谢谢大大为我解惑 我会试试看起始值 非常感谢!

Links booklink

Contact Us: admin [ a t ] ucptt.com