Effacer les filtres
Effacer les filtres

fminconの実行時のエラーについて

120 vues (au cours des 30 derniers jours)
narisawa
narisawa le 6 Mar 2018
関数fminconのアルゴリズム、SQPを利用して非線形計画問題の最小化を行っているのですが、非線形の等式拘束条件の数が数千個になると、「インデックスが行列の次元を超えています」というエラーが返されて、最小化の計算ができません。
ここで、ふたつ質問があるのですが、
1,このエラーのインデックスとは何のことを指しているのでしょうか?
2,このエラーを回避する方法はありますか?
よろしくお願いします。

Réponse acceptée

michio
michio le 6 Mar 2018
「インデックスが行列の次元を超えています」というエラー自体は、行列が定義された範囲外のインデックス(要素)を参照すると発生します。例えば下記のように 10x1 の配列を定義して、11番目の要素を参照する場合です。
a = zeros(10,1);
a(11)
条件の数でそのエラーが発生することは考えにくいのですが、まずはエラーがどこで発生しているかを確認したいですね。怪しいところにブレークポイントを設定してもよいですが、例えばコマンドウィンドウ上で
dbstop if error
と実行したのちにプログラムを走らせてみてください。そうするとエラーが発生した時点でプログラムがデバッグモードに入りますので、その時の値など直接確認してエラーの詳細を確認してみてください。詳細はこちら:
デバッグが終了したのちは
dbclear all
と実行しておけば、エラーが起きてもデバッグモードには入らなくなります。

Plus de réponses (0)

Catégories

En savoir plus sur ソルバーベースの非線形最適化 dans Help Center et File Exchange

Produits

Community Treasure Hunt

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

Start Hunting!