❶ matlab 優化工具箱怎麼用
首先看一個gui對遺傳演算法的應用, 求下列函數的極小值。 f(x)=x.^4-3*x.^3+x.^2-2; 利用遺傳演算法求內解容,選擇ga solver(求解器),輸入適應函數,輸入變數個數,start就可以了,充分反應了遺傳演算法的優越性。 接著是對無約束一維極值問題的求解。...
❷ 如何利用matlab中的優化工具箱求解下面的問題啊各位大神幫幫忙吧!!!
2. 採用Matlab軟體,利用最速下降法求解無約束優化問題
常用格式如下:
(版1)權x= fminbnd (fun,x1,x2)
(2)x= fminbnd (fun,x1,x2 ,options)
(3)[x,fval]= fminbnd(...)
(4)[x,fval,exitflag]= fminbnd(...)
(5)[x,fval,exitflag,output]= fminbnd(...)
其中(3)、(4)、(5)的等式右邊可選用(1)或(2)的等式右邊。函數fminbnd的演算法基於黃金分割法和二次插值法,它要求目標函數必須是連續函數,並可能只給出局部最優解。或者fminunc、fminsearch命令。
❸ matlab的優化工具箱,optimization中fminimax的使用
http://..com/question/333697368.html
x = fminimax(fun,x0)給定初值x0, 求函數最小值;
x = fminimax(fun,x0,A,b)給定初值x0,且滿足A x<=b,A是矩陣,b是向量;
x = fminimax(fun,x,A,b,Aeq,beq),滿足A x<=b,滿足線性方程組Aeq*x = beq;Aeq矩陣,beq向量;
x = fminimax(fun,x,A,b,Aeq,beq,lb,ub),用法同上,再滿足 lb<=x<=ub;
x = fminimax(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon) subjects the minimax problem to the nonlinear inequalities c(x) or equality constraints ceq(x) defined in nonlcon. fminimax optimizes such that c(x) ≤ 0 and ceq(x) = 0. Set lb = [] and/or ub = [] if no bounds exist.
[x,fval] = fminimax(...)返回最小值時x值和函數最小值。
[x,fval,maxfval] = fminimax(...) 返回目標函數最大值;
[x,fval,maxfval,exitflag] = fminimax(...)返回 exitflag描述最小值存在狀態。
希望幫上你。
❹ matlab優化工具箱如何使用問題
你這個是跨學科的問題,如果有30000分的話,我可以試一下
❺ 應用 MATLAB優化工具箱編程,求解如下不等式約束優化問題。
代碼
x1=-2.2:0.002:2.2;
x2=-2.2:0.002:5;
g1=x1+2;
g2=x1.*x1+1;
plot(x1,g1,'-r',x1,g2,'-r',zeros(size(x2)),x2,'-r',x1,zeros(size(x1)),'-r');
hold on;
%目標函數在可行域線性關系,所內以
for i=-2:0.45:3
plot(x1,x1+i,'-g');
end
圖片容
❻ matlab優化工具箱中fmincon函數應用
fmincon是用來做條件極值問題的,他需要調用你事先編好的函數,這應該是你編寫子函數的時候出現了問題。
❼ 怎樣啟動MATLAB優化工具箱
f(x)=x.^4-3*x.^3+x.^2-2;
利用遺傳演算法求解,選擇ga solver(求解器),輸入適應函數,專輸入變數個數,start就可以了,屬充分反應了遺傳演算法的優越性。
接著是對無約束一維極值問題的求解。
首先是進退法搜索單谷函數的極值問題。原理就是在固定區間內按照一定步長無窮逼近最優解,不過無論怎樣逼近,最後得到的還是符合精度的區間,並不是理論最優解。Matlab中用minJT函數來實現。
相關的函數代碼可以在matlab相關文件夾中找到,這里就不多說,不過還是按這種方法求一下上面的極小值問題。
代碼如下:
syms x;
f=x^4-3*x^3+x^2-2;
[x1,x2]=minJT(f,0,0.001);
❽ MATLAB優化工具箱怎麼試用
首先看一個gui對遺傳演算法的應用,
求下列函數的極小值。
f(x)=x.^4-3*x.^3+x.^2-2;
利用遺傳演算法求解,選擇ga solver(求解器),輸入適應函數,輸入變數個數,start就可以了,充分反應了遺傳演算法的優越性。
接著是對無約束一維極值問題的求解。
首先是進退法搜索單谷函數的極值問題。原理就是在固定區間內按照一定步長無窮逼近最優解,不過無論怎樣逼近,最後得到的還是符合精度的區間,並不是理論最優解。Matlab中用minJT函數來實現。
相關的函數代碼可以在matlab相關文件夾中找到,這里就不多說,不過還是按這種方法求一下上面的極小值問題。
代碼如下:
syms x;
f=x^4-3*x^3+x^2-2;
[x1,x2]=minJT(f,0,0.001);
在2009b中結果是。2009b已經沒有這個函數了。
無語了一下,繼續看下一種方法,黃金分割法。
也是一種無窮逼近法,利用黃金分割長生前一個區間中的內點,捨去一個端點。逐漸逼近最小值,是一種單向收縮法。
不過2009b也沒有這個函數了。
然後是斐波那契法。
我們首先就會聯想到斐波那契數列,不過這里確實用到了斐波那契數列。
斐波那契法顯然是一種雙向收縮法具體的搜索原理就不多追究了。
然後便是牛頓迭代法,原來就學過的一種速度相當快的迭代方法,其中優化後的全局牛頓法,一般的牛頓法需要初始點接近最值點而全局牛頓法則不需要這個要求。關最後還有割線法,二次插值和三次插值法。以後會慢慢補充相關的函數m文件的。
❾ matlab優化工具箱fmincon函數應用
opo沒定義
❿ matlab 優化工具箱
在matlab命令窗口中輸入:edit,然後將下列兩行百分號之間的內容復制進去,保存。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function f=y(x)
f(1)=10-0.0116*x(2)-0.0185*x(3)-0.0194*x(5)-0.0302*x(6)-0.1013*x(8)-0.0162*x(9);
f(2)=24-0.0399*x(1)-0.02924*x(2)-0.02376*x(3)-0.0665*x(4)-0.04896*x(5)-0.03996*x(6)-0.0342*x(7)-0.0255*x(8)-0.02079*x(9);
f(3)=36.5-0.042*x(1)-0.043*x(2)-0.044*x(3)-0.07*x(4)-0.072*x(5)-0.074*x(6)-0.0365*x(7)-0.0375*x(8)-0.0385*x(9);
f(4)=350-1.176*x(1)-0.516*x(2)-0.264*x(3)-1.96*x(4)-0.864*x(5)-0.444*x(6)-1.008*x(7)-0.45*x(8)-0.231*x(9);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
返回matlab命令窗口,輸入以下命令,應當就有結果了。
A=[0.042,0,0,0.07,0,0,0.0365,0,0;
0,0.043,0,0,0.072,0,0,0.0375,0;
0,0,-0.044,0,0,-0.074,0,0,-0.0385;
0,0,0.044,0,0,0.074,0,0,0.0385;
1,1,1,0,0,0,0,0,0;
0,0,0,1,1,1,0,0,0;
0,0,0,0,0,0,1,1,1];
b=[4,23,-14,16,310,310,150]';
goal=[0.001,0.001,0.001,0.001]';
weight=abs(goal);
lb=0;
x0=[10,10,10,10,10,10,10,10,10]';
x=fgoalattain('y',x0,goal,weight,A,b,[],[],lb,[]); %%不好意思我是照你寫的,這里應當是y,注意函數名一般不要取這么簡單的,要不然有可能跟變數名重復.
%另外matlab是不認中文符號的,你自己注意一下。