日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

MATLAB除法运算的精度问题及其解决方案

發布時間:2023/12/10 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MATLAB除法运算的精度问题及其解决方案 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

MATLAB除法運算的精度問題及其解決方案

  • 1. 問題描述:
  • 2. 解決方案1(roundn)
  • 3. 解決方案2(除變乘)
  • 4. 有更多想法或者問題,歡迎多多交流

1. 問題描述:

今天做課題的時候,發現MATALB在執行除法運算時,如果需要的精度太高,會出現高精度部分運算出錯的情況。

比如在這里我執行一個簡單的除法運算:x=4.8/0.2,看一下結果:

命令行的結果看起來還不錯,24.0000,就是24嘛!

打開變量查看器查看,就會發現,嗯?結果差了0.000000000000004。

有時候這一點點精度缺失確實不值得注意,但是偶爾它也會產生很多麻煩,因此還是解決一下比較好。

2. 解決方案1(roundn)

roundn(X,N) 函數的作用是將X圓整,參數N定義圓整的精度,N為正代表圓整到小數點前N位,N為負代表圓整到小數點后N位。

這并不是一個很合理的解決方案,因為圓整操作會導致數值精度的丟失,但是至少可用。

我們使用: x=roundn(4.8/0.2,-10) ,執行一下,看效果:

命令行的結果其實已經表明我們的計算結果沒問題了,確實是24。

再打開變量查看器,發現結果確實是正確的。

這個方案損失了精度,所以對于精度要求高的場合,并不適用。

3. 解決方案2(除變乘)

為了不損失精度,我們可以將除法轉換為乘法,經測試也可以解決。

這里我們使用式子:x=4.8*(1/0.2),看一下命令行的結果:

4. 有更多想法或者問題,歡迎多多交流

總結

以上是生活随笔為你收集整理的MATLAB除法运算的精度问题及其解决方案的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。