Matlab遺傳算法工具箱的使用(解決連續性優化問題)

問題:

我們經常需要在研究過程中求解一些比較複雜的公式,如下:

x_{1}^{1.5}+x_{1}-x_{2}}=0

這樣的公式,用常規的方法比較難以求解x_{1}x_{2}的關係,可以採用Matlab自帶的優化工具箱遺傳算法模塊進行快速求解近似關係。

(1)首先轉化公式:

首先將公式轉化成優化目標和約束的關係式,如下:

min y=x_{1}^{1.5}+x_{1}-x_{2}}

s.t.\left\{\begin{matrix} x_{1}>0 & & \\ 0<x_{2}<2 & & \end{matrix}\right.

進一步轉化約束爲小於號,同時零在右邊,如下:

s.t.\left\{\begin{matrix} &-x_{1}<0 & \\ &-x_{2}<0 & \\ & x_{2}-2<0& \end{matrix}\right.

(2)編寫目標與約束的腳本

目標腳本如下:

約束腳本如下:

其中c表示具有大小關係的約束,ceq表示等式關係,這裏沒有等式約束,因此空。

保存腳本之後,目錄裏有兩個腳本文件:

(3)求解器設置

Matlab裏優化求解器的位置:

點擊之後,按照圖中所示步驟操作:

結果如下: