我有一組二次方程的解決方案,如查找一組二次方程
x² + x + y = 7
x + 3y = -3
y² + x² + z = 11
所有係數都是整數。這組方程可能沒有解決方案,一整套解決方案的一個解決方案。
有沒有人知道一個方法來找出這些方程是否有解決方案?
我的第一個想法是將這些方程一個接一個地求解,然後使用結果來求解其他方程。問題是四捨五入錯誤:如果理論上我有兩個方程
x + y = 5
x = 5 - y
會有很多解決方案。但如果我的方法結果爲
x + y = 4.999999
x = 5 - y
系統突然沒有解決方案。在下一步中,我可以添加ε來彌補舍入誤差,但我不確定它們應該有多大。任何想法或更好的方法?
PS:背景是找出平面中一組複雜的圓和線的交點。
你可以嘗試使用'BigDecimal'來擺脫精度錯誤(你需要確定一個通用的最大精度)或者將這些值與一些epsilon進行比較,比如'boolean equal = Math.abs(4.999 - 5)> 0.0001;'。後一種方法通常用於幾何應用,如碰撞檢測等,其中結果在儘可能低的精度下需要數值穩定。 – Thomas
epsilon值是交叉點的精確度,因此在您的情況下,它是每個曲線/曲面上最近點的最大距離,被視爲交點(同一點),通常設置爲形狀中最小細節的一小部分。 。或像素大小的一小部分,如果渲染等...但要小心它使用哪種力量...例如,如果你有線'x + c0.y = c1',那麼你使用'eps^1',但是對於圓'x^2 + y^2 = r^2'你使用'eps^2',所以你在方程之間仍然有相同的單位/度量。我解決[如何近似搜索工作](http://stackoverflow.com/a/36163847/2521214) – Spektre