matlab演算法工具箱
A. matlab 閬椾紶綆楁硶宸ュ叿綆辯敤娉曪細 鐩鏍囧嚱鏁頒負z=(3050*x(1)^3+0.25*x(2));鍏朵腑x錛1錛夊畾涔夊煙[-0.381,0.381]錛
瀵逛簬榪欑被闂棰橈紝瑕侀氳繃鑷瀹氫箟鐩鏍囧嚱鏁板拰綰︽潫鍑芥暟鍚庯紝鍦ㄥ綋鍓嶇洰褰曚笅鎵ц岀獥鍙e懡浠
>> optimtool %鏈浼樺寲宸ュ叿綆
鍦⊿olver閫夋嫨妗嗗唴錛岄夋嫨ga-Genetic Algorithm
鐒跺悗鎸夎佹眰錛岃緭鍏ョ洰鏍囧嚱鏁癅ga_fun錛屽彉閲2錛寈錛1錛夊拰x錛2錛夌殑涓婁笅鐣屼互鍙婄害鏉熷嚱鏁癅ga_con
鐐瑰嚮Start鍚庡緱鍒扮洰鏍囧礆紙Final point錛
榪愯岀粨鏋
x1=0.14169943480903302
x2= 5.289387991237991
B. 請教怎麼在matlab上安裝遺傳演算法工具箱啊,為什麼我安不上啊
安裝步驟
1.將GAOT工具箱文件拷貝至Matlab文件夾下,具體路徑為:
C:\program files\MATLAB\R2009a\toolbox。(也可以放在其他路徑,不一定放在toolbox裡面,比如C:\program files\MATLAB\R2009a也行)。
2.將GAOT工具箱路徑加入Matlab文件路徑之中。流程為:File-->Set Path-->Add with Subfolders。即,將C:\program files\MATLAB\R2009a\toolbox\gaot文件夾加入該路徑系統中。
3. 重新啟動Matlab,運行。
4. 但是在重新啟動後,你會發現在命令窗口,會出現如下警告。即安裝遺傳工具箱後出現問題:Warning: Name is nonexistent or not a directory: \afs\eos\info\ie\ie589k_info\GAOT
解決方案:打開gaot文件夾下的startup.m,這裡面寫著「path(path,'\afs\eos\info\ie\ie589k_info\GAOT');」只要將「\afs\eos\info\ie\ie589k_info\GAOT」改為goat當前所在的目錄,即「C:\program files\MATLAB\R2009a\toolbox\gaot」就可以了
5.測試是否安裝成功,方法如下:在命令窗口輸入:edit ga出現如下函數:function [x,fval,exitFlag,output,population,scores] = ga(fun,nvars,Aineq,bineq,Aeq,beq,lb,ub,nonlcon,options)此時你會發現這是MATLAB自帶的ga函數,並不是你想要的工具箱中的ga函數,這樣會在以後應用工具箱編寫程序是發生錯誤。
6. 解決上述問題的方法:為了統一,不管你是高版本還是低版本,都可以通過將GAOT工具箱中的ga重命名為gaot_ga(名字可以隨你定,但是不能改為大寫GA,原因是MATLAB會默認大小寫函數是同一個函數,不信你可以用edit ga和edit GA驗證),來實現解決上述問題。
這樣整個的GAOT工具箱安裝完備。
C. matlab遺傳演算法工具箱優化結果數值
ga就是在窮舉不可能完成時,用一種方式找到最優解
ga工具的完整形式如下表示
[X,FVAL,EXITFLAG,OUTPUT,POPULATION,SCORES] =
GA(FITNESSFCN,NVARS,A,b,Aeq,beq,lb,ub,NONLCON,options)
X是最優自變數
FVAL是求得的最優值
其他以此是推出標志,結構體,終止時的總群,終止時種群函數值
後半部分以此是目標函數,目標函數自變數個數
A和b是線性約束不等式AX〈b
Aeq和beq是一對線性等式約束,AeqX=beq
lb是X值下限,ub是X值下限
NONLCON是非線性約束函數 options是運行方式。這兩個可以寫函數自己完成,也可默認
函數默認計算最小值,計算最大值要加負號
D. 使用matlab遺傳演算法工具箱如何加入目標函數中變數的約束條件啊,可否在M文件中加
首先回答你第一個問題:怎麼加入變數的約束條件?
打開遺傳演算法工具箱的窗體中會有下圖所示的選項,即是約束條件的編輯
至於添加的方式,這里要重點的提一下,首先將問題抽象成規劃問題的標准形式(如果你不懂什麼是標准形式的話,建議你去翻閱運籌學那本書,上告訴你什麼是標准形式),然後用矩陣語言寫出來,最後將矩陣的系數填寫到線性不等約束和線性相等約束中,同時定義所求變數x的上界和下界(記住有多少個變數就有多少列,如果你發現有些條件中沒有出現某些變數,那麼就應該用0補足,這個是matlab解決規劃問題與lingo想比較麻煩的一個地方,)。
然後回答你第二個問題:可否在M文件中添加約束條件?
當然可以,界面的東西是為了方便不熟悉matlab編程的人而設計出來的,但是其底層的演算法和介面肯定是有的。
碰到不懂的函數,請記得:help函數名
helpga之後會得到一下一些函數
ga
//這個是定義
Syntax //這個是語法也即是調用的規則
x=ga(fitnessfcn,nvars)
x=ga(fitnessfcn,nvars,A,b)
x=ga(fitnessfcn,nvars,A,b,Aeq,beq)
x=ga(fitnessfcn,nvars,A,b,Aeq,beq,LB,UB)
x=ga(fitnessfcn,nvars,A,b,Aeq,beq,LB,UB,nonlcon)
x=ga(fitnessfcn,nvars,A,b,Aeq,beq,LB,UB,nonlcon,options)
x=ga(problem)
[x,fval]=ga(...)
[x,fval,exitflag]=ga(...)直接給你將最長的那個吧
x=ga(fitnessfcn,nvars,A,b,Aeq,beq,LB,UB,nonlcon,options)
X是返回所求的解
fitnessfcn是適應度函數
nvars是適應度函數中所含變數的維數
A是不等式約束中變數的系數矩陣,b是不等式約束中不含變數的值矩陣
Aeq是等式約束中變數的系數矩陣,beq是等式約束中不含變數的值矩陣
LB是下界,UB是上界
nonlcon是非線性約束條件
至於options嘛 我也木有用過,其實你也可以不用管的。
懂了木有呢,親?
E. matlab 遺傳演算法工具箱
有可能是沒有了,也有可能是你安裝的版本裡面沒有,需要去官方網站購買。你用的是正版嗎?正版的網路授權可以使用大部分的工具箱。 如果是D版,很可能是你用的版本正好沒有這個。 如果只是用到一些函數,你可以去別人的電腦復制這個工具箱的函數(老版本的估計也能用),添加路徑以後可能也可以用的。
F. matlab遺傳演算法工具箱安裝問題
直接在命令窗口裡邊輸入gatool就行了,用遺傳演算法還可以使用ga函數,具體使用格式可以在help系統里看ga,你還可以按照如下步驟打開遺傳演算法工具箱:1,打開matlab,2點擊左下方的start按鈕
3,點toolboxes,打開後選擇genetic
algorithm
and
direct
search
然後就可以進入gatool了,然後就會彈出ga工具箱(註:我的版本是7.7的,不同版本可能不同)