1

次の問題があります。使用するときfminconに、制約を指定する必要があります。制約 .M ファイルは次のようになります。

function [c,ceq]=podmienky_L(qL)
global podmL zL
c=[podmL+0.0001-zL]
ceq=[];

zL は定数ですが、podmL は次の式を含むシンボリック変数です: (22.1*cos(qL(4)) (sin(qL(3)) (0.35*sin(qL(1)))

fmincon を実行しようとすると、エラーが発生します。User function returned a complex value when evaluated;

しかし、変数 podmL を (22.1*cos(qL(4)) (sin(qL(3)) (0.35*sin(qL(1))) に置き換えると、すべて正常に動作します。

podmL の方程式は別のスクリプトによって提供され、使用するたびに慎重になる可能性があり、恐ろしい比率を達成する可能性があるため、単純に制約関数にハードライトすることは非常に非現実的です。誰にもアイデアはありますか?

ありがとう

4

0 に答える 0