計算の信頼性

計算の信頼性


低次SISOモデル(n<5)を取り扱う場合、通常、コンピュータは、数値問題に対してかなり寛大で、敏感には対応しません。一般に数値上の困難に遭遇することはなく、MATLABは、選択するモデルや変換方式に関係なく正確な解を提供します。しかし、高次モデルやMIMOモデルの場合、コンピュータの有限精度算術は、それほど寛大ではなく、注意が必要です。

一般に、コンピュータから数値的に正確な解を得るためには、つぎのことが必要です。

データ上の小さな変化が、解においてもそれに応じて小さな変化しか生じない場合、問題が条件数的には適切であるといいます。データ上の小さな変化が解において大きな変化を引き起こす可能性がある場合、問題の条件数は悪いといいます。アルゴリズムが原因で生じる摂動が、問題自身にすでに内在している摂動以上のものにならない限り、アルゴリズムは数値的に安定です。多くの数値線形代数アルゴリズムは、後進的に安定していることが証明できます。すなわち、計算による解は、若干の摂動の影響を受けた元の問題の正確な(正確に近い)解であることが証明できます。若干の摂動の影響を受けた元の問題の解は、問題の条件数が良好である場合、真の解に近くなります。

このように、安定したアルゴリズムでも、条件数が悪い問題をデータが保証する以上の精度で解決できることは期待できませんが、不安定なアルゴリズムは、条件数が良い問題に対しても不適切な解を出す場合があります。その詳細は、参考文献[5]を参照してください。

Control System Toolboxのツールのほとんどは、信頼性の高いアルゴリズムを使用していますが、ツールの中には安定したアルゴリズムを使用していないものや、条件数の悪い問題を解くものもあります。これらの信頼性の低いツールは、問題(低次システム)によっては、きわめて適切に機能しますが、高次の問題では、しばしば深刻な数値的困難に直面する場合があります。これらのツールは、つぎのような理由のもとで提供されています。

同時に、コンピュータ解析の限界について評価することも重要です。いくつかのガイドラインに従うことにより、特定のツールやモデルが、問題を発生する可能性がある時点でそれらの使用を回避することができます。以下の節では、回避すべき数値上の落とし穴のいくつかについて例題を通じて説明します。また、できる限りモデルが、条件数が良好な問題を生み出すようにすることによって、適切なアルゴリズムを最大限に利用することをお薦めします。


 条件数および数値的安定性