2012-01-21 58 views
-2

在這個問題上,有人會幫助我嗎?我是Matlab中的新成員...並且我很難理解如何在Matlab中創建和使用遺傳算法。 如果有人可以幫助寫一些非常簡單的代碼來搜索指定功能的最小/最大值。 我讀過gatool應該用於...但我無法理解Matlab幫助網絡的例子。我做的下一步驟:在Matlab中使用遺傳算法找到「y = x * x」的最小值

  1. 在文本編輯器,我打字的未來:

    function y= parabola(x) 
        y=x*x; 
    end 
    
  2. 然後我啓動GATOOL和指定如@parabola

  3. 此功能設置變量的數量(等於2)
  4. Initial range = [-10;10]
  5. 其他參數設置爲默認

    當我按下按鈕Start我看到的結果:

    錯誤fitnessfcn:輸入參數「x」是不確定的。

+1

這不是「爲我寫」我的程序「服務。 –

+1

我只是在尋求幫助...正如你所看到的,我已經閱讀了這個任務的可能解決方案。他們沒有工作...所以我決定在這裏問問 – user1162770

回答

3

的主要問題是,你不明白工具箱如何工作的。你應該參考the documentation來得到整個想法。

所以,適應度函數應該是function handle,並且應該返回一個標量。

fitnessfcn

手柄適應度函數。適應度函數應該接受長度爲nvars的,4610,行向量,並且返回標量值

首先,你的函數沒有很好的定義。如果你想定義一個匿名函數,你應該使用GA的GUI來實現同樣的效果。如果你想在m文件,你應該有這樣的事情來定義你的函數:

parabola.m

function [y] = parabola(x) 
% This should return a scalar 
y = prod(x); 

你這樣定義fh = @parabola手柄。並且在上面的代碼中,您替換新手柄的parabolafh

我希望這可以幫助您開始。

+0

非常感謝!這對我非常有幫助! – user1162770

相關問題