2014-03-12 53 views
1

尋找二次方程的根時,當b^2遠大於4ac時,減法消除是一個問題。所以,我需要首先檢查給定的等式是否存在這個問題。那麼如果有問題,我需要找到另一種方法來計算r = - (b + sign(b)* sqrt(delta)),然後我們得到根2c/r和r/2a。我感到驚訝的是檢查b^2遠遠大於4ac。如何在兩個數字之間檢查,如果一個數字遠大於MATLAB中的其他數字?

+0

那麼'if b^2> 1000 * 4 * a * c then%other method%'? – marsei

+0

爲什麼它是一個問題?你的意思是'更大'? – blitzen

+0

@ ptay89更大的意思>> – user3410357

回答

2

解決辦法是:

  1. 使用VPA(象徵性的工具箱),這可能是應對上任意的計算精度誤差的最佳解決方案。
  2. 使用函數roots中的構建,它很好地處理了這個問題。
  3. 雙值的精度是已知的。根據所需的精度,您可以定義一個邊界。
相關問題