[問題] 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