Re: [問題] 使用迴圈更改起始值 求最佳解 已回收
我又再想了一個辦法
昨天的邏輯怪怪的
我想將每迴圈每變動一次的函數值都與前一次比較
如果函數值比前一次小 則所有參數估計的結果都取代掉
但是問題是怎麼把這次的fval保留 與前一次fval比較勒?
怎麼把這次的theta_ml保留 與前一次theta_ml比較勒?
怎麼把第一次的比較值設為0?
fval1=0;
^^^^^^^^^ 先將第一次的比較值設為0
theta_ml1=0;
^^^^^^^^^^^^^先將第一次的比較值設為0
for x=1:10
theta0=[0.1;0.1;0.1;0.1;x;10;10];
[theta_ml,fval,exitflag,output]=fmincon(f,theta0,[],[],[],[],lb,ub);
if fval<fval1
^^^^^^^^^^???
theta_ml=theta_ml1;
^^^^^^^^^^^^^^^^^^^???
end
end
※ 引述《contente (妹妹)》之銘言:
: 我先在c矩陣中抽出5天B和S的資料
: 接著讓參數theta0中的x、y、z起始值設為迴圈變動
: 怎麼找出每天 參數變動下 比較每個函數結果 找出函數最大的解?
: global B S
: lb=[0;0;0;0;0.1;0.1;0.1];
: ub=[1;1;1;1;50;50;50];
: f=@Qn4;
: for i=1:5
: B=c(i:59+i,2);
: S=c(i:59+i,3);
: for x=20:40
: for y=1:20
: for z=1:20
: theta0=[0.1;0.1;0.1;0.1;x;y;z];
: [theta_ml,fval,exitflag,output]=fmincon(f,theta0,[],[],[],[],lb,ub);
: 請問目前為止有錯嗎? 接下來我就不會寫了
: 怎麼找出每天 參數變動下 函數最大的解?
: 也就是映出結果為以下的矩陣
: fval theta1 theta2 theta3 theta4 theta5 theta6 theta7
: day 1
: day 2
: day 3
: day 4
: day 5
: 謝謝大家!!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 219.70.216.65
※ 編輯: contente 來自: 219.70.216.65 (04/26 00:03)
※ 編輯: contente 來自: 219.70.216.65 (04/26 00:08)
※ 編輯: contente 來自: 219.70.216.65 (04/26 00:26)
※ 編輯: contente 來自: 219.70.216.65 (04/26 00:34)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
MATLAB 近期熱門文章
PTT數位生活區 即時熱門文章