當前位置:股票大全官網 - 資訊化咨詢 - 關於matlab中的根和polyval函數的問題,謝謝~

關於matlab中的根和polyval函數的問題,謝謝~

浮點數在計算機中是無法精確表示的,因為計算機采用的是二進制表示,比如0.1,實際上需要存儲無限多的二進制數字(妳在計算機的基礎上已經學會了二乘二四舍五入二進制十進制表示的方法),所以計算機資源有限,所以這是不可能的。所以對於浮點數,只有(單/雙)精度,也就是只保留有限數量的二進制位。這是誤差的來源。

問題1)可以調用real(ans)只保留實部,去掉虛部。

問題2)在問題1的基礎上,即使調用real,只保留實數部分,以至於roots的結果看起來是-1.0000,調用polyval的結果仍然不會是0。這是因為matlab顯示結果只顯示了有限的小數位數,看起來是-1.0000,但實際上可能是-1.0000000000000091,所以用polyval只會得到壹個足夠小的數(妳這裏有65438+)。而用[-1 -1 -1]調用polyval會得到0,因為-1是壹個精確的整數。