[問題] 請問關於TolFun設定的問題已回收

看板MATLAB作者 (畢業為第一要務)時間16年前 (2009/05/21 21:45), 編輯推噓2(207)
留言9則, 2人參與, 最新討論串1/1
小弟要用fminunc找出最小值 因為我的function寫成(....X)^2+(....X)^2+... 這種形式 所以函數值應該都會大於等於0 我把TolFun設定成0.3 但為啥他跑到函數值為0.1064還是不會停止呢?? 請求各位高手們解答了... 我設法是這樣option = optimset('TolFun',0.3) [x_opt,f_VAL] = fminunc(@merit,x0,option) merit是我自己另外把我的目標函數寫成.m檔.. 我期望是看到函數值低於0.3就會自動停止阿 可是沒有@@" 或是我應該把我的問題改成 我要怎麼讓函數值在0.3以下就自動停止呢?? 要自己在fimunc裡面加條件嘛?? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.230.174.147 ※ 編輯: newsph 來自: 61.230.174.147 (05/21 21:45) ※ 編輯: newsph 來自: 61.230.174.147 (05/21 22:05)

05/21 22:11, , 1F
附帶一提 我函數值從0.2857=>4.41=>0.19=>0.1064
05/21 22:11, 1F

05/21 22:11, , 2F
還是不停@@"
05/21 22:11, 2F

05/22 02:04, , 3F
你是要找一個X 然後讓你的函數等於零點三嗎?
05/22 02:04, 3F

05/22 02:08, , 4F
TolFun是定義前後次 最小的函數值的差 並不是像你說的那樣
05/22 02:08, 4F

05/22 17:52, , 5F
函數變化量小於0.3應該就要停了 可是我0.19=>0.1064不停
05/22 17:52, 5F

05/22 17:52, , 6F
應該不能說要找一個X讓函數值等於0.3 該說是小於0.3即可
05/22 17:52, 6F

05/23 01:16, , 7F
不停 可能是因為TolX還沒到的關係
05/23 01:16, 7F

05/23 01:17, , 8F
找X讓函數小於0.3 可以用indx=find(f(x)<0.3), x(indx)
05/23 01:17, 8F

05/23 01:18, , 9F
之類的方法
05/23 01:18, 9F
文章代碼(AID): #1A5LhSCB (MATLAB)
文章代碼(AID): #1A5LhSCB (MATLAB)