『壹』 matlab優化工具箱怎麼調用呀我們要處理貝葉斯診斷問題請問該怎麼操作
1、MATLAB自帶工具箱
查看方來式:源
首先詳細介紹一下MATLAB自帶工具箱的使用。
在不熟悉一些調用工具箱的命令的時候,可以在MATLAB主窗口中,點擊左下角start--toolboxes,就會羅列出MATLAB已經安裝的所有工具箱,可以根據個人的需要選擇將要使用的工具箱。可以看到有擬合工具箱、金融工具箱、最優化工具箱等等。
2、調用(打開)方式:以調用擬合工具箱為例,進行詳細的示例。
調用方式一:
按照以下步驟:
點擊主窗口左下角start--toolboxes--curve fitting--curve fitting tool 單擊,就可以打開擬合工具箱。
3、調用方式二:
在上一步中,在start--toolboxes--curve fitting--curve fitting tool ,到這里的時候,會看到在其後面有一個簡寫 cftool ,這就是擬合工具箱調用命令函數。在MATLAB主窗口中輸入cftool ,回車,同樣可以打開擬合工具箱。
4、工具箱的使用:
擬合工具箱打開之後,就可以進行多種曲線擬合了。
『貳』 在matlab中,使用優化工具箱fmincon,計算一個優化問題,但報錯了,求大神講解
目標函數(Objective function)應該設置為@(x)-x(1)*x(2)*x(3),像你現在的目標函數是需要三個輸入參數的,而fmincon調用它的時候只會提供一個參數,所以導致輸入參數不足。
另外,像這種簡單的優化問題,其實也可以直接用命令行調用:
fmincon(@(x)-x(1)*x(2)*x(3),[10 10 10],[-1 -2 -2;1 2 2],[0 72])
『叄』 在用matlab的優化工具箱中的linprog求解器或者其他求解器求最優值時,怎麼設置變數約束條件為整數
可以用分支定界法求解整數規劃問題,給你源碼:
function [x,fm] = IntProgFZ(f,A,b,Aeq,beq,lb,ub)
x = NaN;
fm = NaN;
NF_lb = zeros(size(lb));
NF_ub = zeros(size(ub));
NF_lb(:,1) = lb;
NF_ub(:,1) = ub;
F = inf;
while 1
sz = size(NF_lb);
k = sz(2);
opt = optimset('TolX',1e-9);
[xm,fv,exitflag] = linprog(f,A,b,Aeq,beq,NF_lb(:,1),NF_ub(:,1),[],opt);
if exitflag == -2
xm = NaN;
fv = NaN;
end
if xm == NaN
fv = inf;
end
if fv ~= inf
if fv < F
if max(abs(round(xm) - xm))<1.0e-7
F = fv;
x = xm;
tmpNF_lb = NF_lb(:,2:k);
tmpNF_ub = NF_ub(:,2:k);
NF_lb = tmpNF_lb;
NF_ub = tmpNF_ub;
if isempty(NF_lb) == 0
continue;
else
if x ~= NaN
fm = F;
return;
else
disp('不存在最優解!');
x = NaN;
fm = NaN;
return;
end
end
else
lb1 = NF_lb(:,1);
ub1 = NF_ub(:,1);
tmpNF_lb = NF_lb(:,2:k);
tmpNF_ub = NF_ub(:,2:k);
NF_lb = tmpNF_lb;
NF_ub = tmpNF_ub;
[bArr,index] = find(abs((xm - round(xm)))>=1.0e-7);
p = bArr(1);
new_lb = lb1;
new_ub = ub1;
new_lb(p) = max(floor(xm(p)) + 1,lb1(p));
new_ub(p) = min(floor(xm(p)),ub1(p));
NF_lb = [NF_lb new_lb lb1];
NF_ub = [NF_ub ub1 new_ub];
continue;
end
else
tmpNF_lb = NF_lb(:,2:k);
tmpNF_ub = NF_ub(:,2:k);
NF_lb = tmpNF_lb;
NF_ub = tmpNF_ub;
if isempty(NF_lb) == 0
continue;
else
if x ~= NaN
fm = F;
return;
else
disp('不存在最優解!');
x = NaN;
fm = NaN;
return;
end
end
end
else
tmpNF_lb = NF_lb(:,2:k);
tmpNF_ub = NF_ub(:,2:k);
NF_lb = tmpNF_lb;
NF_ub = tmpNF_ub;
if isempty(NF_lb) == 0
continue;
else
if x ~= NaN
fm = F;
return;
else
disp('不存在最優解!');
x = NaN;
fm = NaN;
return;
end
end
end
end
『肆』 MATLAB如何使用ga遺傳演算法工具箱進行優化
1、首先,打開MATLAB軟體。
2、設置一個m文件,用於計算個體的適應度函數輸出值一個適應度,輸入是我們要優化的參數;例如:要優化的參數(x ,y ,z)則適應度函數的基本結構應是v=function(x, y, z)。
3、輸入「gatool」指令打開工具箱,如圖所示。
4、如圖所示,打開的ga工具箱界面。
5、輸入我們的適應度函數,和要優化的個數,和一些其它設置,要根據我們的任務決定;例如:適應度函數為:v=function(x, y, z)時要配置適應度函數項為@function。
6、要優化的參數個數為3。左後單擊「start」開始,等待一段時間就會出現我們要優化的參數。