遺傳算法優化二次離散系統

##遺傳算法實現二次離散系統優化
這裏寫圖片描述

1.編寫適應度函數如下:

function y = fitness(u)
[rows,cols] = size(u);
x = 100*ones(rows,cols+1);
sum = 0;
for k=1:1:cols
    x(k+1) = x(k) + u(k);
end
for k=2:1:cols
    sum = sum + x(k)^2 + u(k)^2;
end
y = sum + x(cols+1)^2;

2.使用matlab Optimization Tool工具箱選擇ga(遺傳算法求解器)
這裏寫圖片描述
3.導入自己的之前編寫的fitness函數,同時輸入待優化的變量數目和上下界,如圖所示
這裏寫圖片描述
4.點擊開始訓練,同時可以在options中設置自己的一些參數,和觀察優化過程中適應度值的變化曲線。
這裏寫圖片描述
這裏寫圖片描述
5.訓練完成後,可以把訓練的優化的結果導入matlab工作空間中,此時可以觀察到最後的結果集,如圖所示
選擇導出到workspace空間:
這裏寫圖片描述
選擇導出的結果集,這裏全部導出:
這裏寫圖片描述
可以看到此時matlab workspace空間中存在的變量,可以點進去看看,裏面存放了很多訓練最後的結果和GA的參數設置:
這裏寫圖片描述
此時,可以調用變量進行繪製:
這裏寫圖片描述
這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章