Use fsolve function in genetic algorithm toolbox

4 ビュー (過去 30 日間)
Sepanta Gharib
Sepanta Gharib 2018 年 7 月 8 日
コメント済み: Walter Roberson 2019 年 5 月 1 日
I have a one-variable nonlinear equation that needs to be solved with the " fsolve" function. This equation also has a parameter that should be optimized by the genetic algorithm. To use the genetic algorithm toolbox, I have to write a separate objective function file for it which should contain the " fsolve" function. But how to define the parameter to be optimized in the first line? I can not define the input variable due to the " fsolve" function.
  1 件のコメント
Walter Roberson
Walter Roberson 2018 年 8 月 21 日
Please do not close questions that have an answer.

サインインしてコメントする。

採用された回答

Walter Roberson
Walter Roberson 2018 年 7 月 8 日
fun = @(x, param) 5 + exp(-(x-param).^2);
guess = 0.12345;
ga( @(param) fsolve( @(x) fun(x, param), guess), .... )
  2 件のコメント
Mehdi
Mehdi 2019 年 5 月 1 日
Is there a way that you could give a numerical example that I could actually run in MATLAB for better understanding? Thank you!
Walter Roberson
Walter Roberson 2019 年 5 月 1 日
fun = @(x, param) exp(x-param) - 1/10;
guess = 0.12345;
[P,fval] = ga( @(param) (5+fsolve( @(x) fun(x, param), guess, optimoptions('fsolve', 'Display', 'none'))).^2, 1, [], [], [], [], [], [], [], gaoptimset('display', 'iter', 'TolFun', 1e-9, 'Generations', 1000))
This looks for an x and a param such that exp(x-param) is 1/10 and x is as close as possible to -5.
Here, "close to -5" is expressed as (5+value)^2 being minimal, which would best occur when value was -5
... It could do better. ga() is not such a great optimizer.

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeGenetic Algorithm についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by