[問題] nloptr gradient 疑問

看板R_Language作者 (gg)時間9年前 (2016/05/31 23:05), 編輯推噓0(005)
留言5則, 2人參與, 最新討論串1/1
[問題類型]: 程式諮詢(我想用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所代表的意思,是固定的值還是有其他意思,要如何決 定裡面的數字?煩請各位大大指點迷津@@ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.195.48.117 ※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1464707159.A.944.html

05/31 23:46, , 1F
gradient看起來就是目標函數對x1~x4的微分
05/31 23:46, 1F

05/31 23:47, , 2F
initial value就你自己給定 這個我不確定有沒有辦法
05/31 23:47, 2F

05/31 23:47, , 3F
給一個最佳的
05/31 23:47, 3F

05/31 23:47, , 4F
grad看起來是constr的微分
05/31 23:47, 4F

06/01 12:41, , 5F
謝謝大大為我解惑 我會試試看起始值 非常感謝!
06/01 12:41, 5F
文章代碼(AID): #1NJQXNb4 (R_Language)
文章代碼(AID): #1NJQXNb4 (R_Language)