Ask an expert. Trust the answer.

Your academic and career questions answered by verified experts

Find the minimum of

Date: 2022-12-13 14:04:45

Would somebody help me please in this question. I'm new in Matlab... And it's a bit hard for me to understand how to create and use genetic algorithm in Matlab. If anybody could help to write some very simple code for searching minimum/maximum of specified function. I read that the gatool should be used for that... but I can't understand the examples of Matlab help network. I'm doing the next steps:

  1. In text editor I'm typing the next:

    function y= parabola(x)
        y=x*x;
    end
    
  2. Then I'm launching the GATOOL and specifying this function like @parabola

  3. Setting the number of variables (equals 2)
  4. Initial range = [-10;10].
  5. The other parameters are set as Default

    When I press Start Button I see a result:

    Error in fitnessfcn: Input argument "x" is undefined. 

    Answer: 

    The main problem is that you don't understand how the toolbox works. You should refer to the documentation to get the whole idea.

    So, the fitness function should be a function handle and should return a scalar.

    fitnessfcn

    Handle to the fitness function. The fitness function should accept a row vector of length nvars and return a scalar value.

    First, your function is not well defined. If you want to define an anonymous function you should

    % A function handle to an anonymous function that returns an scalar.
    % You should change this function accordingly to your expectations.
    % Also, note that this handle could be of a function defined in a file too.
    parabola = @(x) prod(x);
    % Parameters for the GA
    optGA = gaoptimset('PlotFcns', @gaplotbestfun, 'PlotInterval', 10, 'PopInitRange', [-10 ; 10]);
    [Xga,Fga] = ga(parabola,2,optGA)
    

    The same can be achieved with the GUI of GA. In case you want to define your function in an m file you should have something like:

    parabola.m

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

    And you define the handle like fh = @parabola. And in the code above you replace parabola for the new handle, fh.

    I hope this help you get started.


Why Matlabhelpers ?

Our Matlab assignment helpers for online MATLAB assignment help service take utmost care of your assignments by keeping the codes simple yet of high-quality. We offer the most reliable MATLAB solutions to students pursuing their Computer Science course from the Monash University, the University of Sydney, the University of New South Wales, the University of Melbourne; to name a few. Approach us today for best Matlab solutions online!

whatsApp order on matlabhelpers.com

telegram order on matlabsolutions.com