0

目的関数@funを次のように最小化する線形制約付き最小化問題のアクティブ セット法を使用してfminconをセットアップしようとしています。

ここに画像の説明を入力

しかし、歴史の中でより多くの奇妙なエラーを発射する試行。

トライアル1

[x,fval]=fmincon(@fun, Guess, A, b)

試行 2

options = optimoptions('fmincon','Algorithm','active-set');
[x,fval]=fmincon(@fun, Guess, A, b, options)
4

1 に答える 1

2

アルゴリズムに間違ったオプションを使用しています。MATLAB は、指定されたパラメーターを確認し、それらのパラメーターを使用するアルゴリズムを使用します。アルゴリズムが異なれば結果も異なる可能性があるため、警告がスローされます (これらを無視してはなりません)。ドキュメントから:

'trust-region-reflective' では、勾配を指定する必要があり、境界または線形等式制約のみが許可されますが、両方は許可されません。

fmincon への呼び出しのドキュメントには、次のように記載されています。

x = fmincon(fun,x0,A,b) は x0 から開始し、線形不等式 A*x ≤ bに従って、fun で記述された関数の最小化子 x を見つけようとします。x0 は、スカラー、ベクトル、または行列にすることができます。

あなたはおそらく使用するつもりでした

x = fmincon(fun,x0,A,b,Aeq,beq)

A = []、b = []、および Aeq と beq は、以前に A と b を持っていたものになります (信頼領域反射を使用する場合)。

実際に を呼び出しているため、2 回目の試行は機能しませんでしたx = fmincon(fun,x0,A,b,Aeq,beq)。代わりに、オプション構造体を渡そうとします。

このページでは、オプションの設定方法について説明します

編集: オプションを渡したい場合は、すべてのオプションのパラメーターを指定する必要があります。

[x,fval] = fmincon(@DijIIii,x0, A , b,[], [], [], [],@nonlcon,options);
于 2013-10-26T02:44:37.587 に答える