2016-12-24 6 views
0

https://www.mathworks.com/help/optim/examples/banana-function-minimization.htmlMATLAB Optimization Toolboxの例

fun = @(x)(100*(x(2) - x(1)^2)^2 + (1 - x(1))^2); 
options = optimset('OutputFcn',@bananaout,'Display','off'); 
x0 = [-1.9,2]; 
[x,fval,eflag,output] = fminsearch(fun,x0,options); 
title 'Rosenbrock solution via fminsearch' 
Fcount = output.funcCount; 
disp(['Number of function evaluations for fminsearch was ',num2str(Fcount)]) 
disp(['Number of solver iterations for fminsearch was ',num2str(output.iterations)]) 

@bananaoutはここで何ですか?

これは私に次のエラーを与えている、

??? Error using ==> feval 
Attempt to execute SCRIPT bananaout as a function: 
C:\Users\admin\Desktop\bananaout.m 

Error in ==> callAllOptimOutputFcns at 12 
    stop(i) = feval(OutputFcn{i},xOutputfcn,optimValues,state,varargin{:}); 

Error in ==> fminsearch>callOutputAndPlotFcns at 464 
      stop = callAllOptimOutputFcns(outputfcn,xOutputfcn,optimValues,state,varargin{:}) 
      || stop; 

Error in ==> fminsearch at 199 
    [xOutputfcn, optimValues, stop] = 
    callOutputAndPlotFcns(outputfcn,plotfcns,v(:,1),xOutputfcn,'init',itercount, ... 

Error in ==> test_optim at 9 
[x,fval,eflag,output] = fminsearch(fun,x0,options) 

答えて

1

は、ドキュメントを1として、Output Functionsは、プロットのように、最適化の進捗状況を、物事を行うためにあなたを可能にする、タイムステップごとに、オプティマイザによって呼び出されます。

bananaoutは、機能になる必要があるときにスクリプトと思われるため、エラーが発生します(詳細については、特定の入力を参照してください)。サンプルコードをbananaoutというスクリプトに保存しましたか?その場合は、スクリプトの名前を変更してください。

あなたは次のことを実行することにより、bananaoutと呼ばれている、あなたが持っているすべてのMコードのリストを見ることができます。それらの

>> which bananaout -all

一つは例が呼び出しされなければならない機能となり、しばらくもう1つはあなたが作成して名前を変更/削除する必要があるものです。

関連する問題