MATLAB Answers

optimization toolboxの制約条件

4 views (last 30 days)
yusuke koizumi
yusuke koizumi on 14 Sep 2020
Commented: michio on 25 Sep 2020
タイトルにもありますように,optimization toolboxの制約条件の設定で以下のエラーが出て困っています.
関数 'exp' (タイプ'optim.problemdef.OptimizationVariable' の入力引数) が未定義です。
私のコードでは,
x = optimvar('x');
で最適化の変数を定義し
confn = x*exp(x) <=b; % b = const.
のように制約条件を設定したいと思っているのですがエラーが出てしまいます.
の(5)の状況で,exp関数への入力として,optimvarで定義された値が適さないということだと思ったのですが,解決方法がわかりません.
解決方法があれば教えて頂きたいです.
よろしくお願いします.

  0 Comments

Sign in to comment.

Accepted Answer

michio
michio on 24 Sep 2020
問題点の確認ですが、以下のように実行すると
x = optimvar('x');
confn = x*exp(x) <= 10
関数 'exp' (タイプ'optim.problemdef.OptimizationVariable' の入力引数) が未定義です。
というエラーがでるということでしょうか?エラーが発生するコード例を明示して頂けると問題点を理解し易いかと思いまして。
ちなみに上記2行を実行すると
confn =
Nonlinear OptimizationInequality
(x .* exp(x)) <= 10
とエラーなく通ります。
もし上記2行でエラーが出る場合は exp という独自に作成された関数がある、、可能性があります。
which exp
と実行して、呼ばれている exp 関数の所在を確認してみてください。

  4 Comments

Show 1 older comment
michio
michio on 25 Sep 2020
制約条件などに exp が使えないというR2019b 時点での機能制約が要因でした。以下のリンクで R2019b 時点での日本語版を確認できると思いますが、exp がリストに入っていません。
R2020a でサポートされている関数が増加していますので R2020a もしくは R2020b へバージョンアップ可能であれば推奨いたします。
もしくは、R2019b でもソルバーベースの解法であれば問題なく設定できるかと思います。
yusuke koizumi
yusuke koizumi on 25 Sep 2020
ありがとうございました.
アップグレードで解決しました.
michio
michio on 25 Sep 2020
R2019b という点に早く気が付けばよかったです。失礼いたしました。

Sign in to comment.

More Answers (0)

Products


Release

R2019b

Community Treasure Hunt

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

Start Hunting!