MATLAB変数データ型の設定について
7 ビュー (過去 30 日間)
古いコメントを表示
SimulinkでLTI Systemブロック(ローパスフィルタやノッチフィルタを組み合わせた離散系伝達関数)を通過した後のスカラー信号の数値が1.0123456e-322(実際には小数点以下15桁)など、double型における正の数の最小値 2.2251e-308 (=realmin) よりも小さくなる場合があります。
変数型はSimulinkのモデル設定>コンフィギュレーションパラメータ>数値とデータ型、にて「指定不足のデータ型の規定値」をdoubleにする以外では、自身で設定してはいません(SimulinkのGainなど各ブロックではデータ型を初期設定の "Inherit: Inherit via internal rule" にしています)。
【質問】
(1) どのような理由で、上記のようにSimulinkにおける信号の指数が1.0123456e-322になるなど、e-308(realmin相当)よりも小さくなるのでしょうか。
(2) 信号の数値をdouble型における正の数の最小値 2.2251e-308 (=realmin)の範囲までに留めるためには、どのように設定すればよいのでしょうか。
2 件のコメント
Toshinobu Shintai
2023 年 11 月 1 日
(1)について予想ですが、IntelのCPUを使うPCにインストールされたMATLABは、計算する際にIntelの拡張倍精度浮動小数点数(全長80bit、指数部15bit、仮数部64bit)を用いて計算します。
そのために、1.0123456e-322になるなど、e-308(realmin相当)よりも小さくなるのではと思いました。
回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で 信号属性とインデックス付け についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!