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