我正在尝试使用 Cramer 的规则做一个快速的 2 vars 方程求解器,但由于某种原因,java 一直在四舍五入我的答案,所以我没有得到正确的答案。
获得单一答案的基本规则是
((a11*a22)-(a12*a21))!=0)
解决方案应该是
double sol1 = (b1*a22-b2*a12) / (a11*a22-a12*a21);
double sol2 = (b2*a11-b1*a21) / (a11*a22-a12*a21);
但由于某种原因,对于 1、2、3、4、5、6,我得到 -4.0 和 4.0 而不是 -4.0 和 4.5
如果有帮助,那就是有问题的代码:
if (((a11*a22)-(a12*a21))!=0) {
double sol1 = (b1*a22-b2*a12) / (a11*a22-a12*a21);
double sol2 = (b2*a11-b1*a21) / (a11*a22-a12*a21);
System.out.println("Single solution: ("+sol1+", "+sol2 +")");
}