MATLABとSimulinkの演算違い

3 views (last 30 days)
taka
taka on 16 Feb 2022
Commented: Atsushi Ueno on 17 Feb 2022
MATLAB上で16桁の少数を用いた計算結果とSimulinkで同様の計算をした結果が細かい桁で異なりました。このようは原因は、計算ミス以外になにがあるのでしょうか。また、SimulinkでDisplayブロックを使用して、演算結果をlong型で表示させてみると17桁になる時があります。こちらも疑問です。

Answers (1)

Hernia Baby
Hernia Baby on 16 Feb 2022
Edited: Hernia Baby on 16 Feb 2022
おそらく浮動小数点の演算による誤差かと思われます。 参考 全く同じコードで異なるPCを使うと全く違う結果が出る
  4 Comments
Atsushi Ueno
Atsushi Ueno on 17 Feb 2022
反対方向から失礼します。私はSimulinkの後ろでMATLABが動いてるのだと思っていました。
もう少し細かく言いますと、こういう事でしょうか
  • MATLABコードはインタプリタで動作
  • Coder系Toolboxは専用のコンパイラでコードや実行ファイルを生成
  • SimulinkモデルもSimulink用のコンパイラで実行ファイルを生成
あと何らかの浮動小数点演算(例: mtimes(*)関数とProductブロック)を挙げても、その内部で動くプログラムは異なるもので、同じ演算内容だからたまたま結果が合致したり、同じ演算でもロジックの違いにより結果が異なったりする、という事なのでしょうか?

Sign in to comment.

Products


Release

R2015a

Community Treasure Hunt

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

Start Hunting!