Я пытаюсь ввести цикл for для подинтервала, который образует раздел другого в указанном диапазоне, чтобы вычислить корни данного многочлена. Моя проблема в том, что мои «если» и «если-иначе» не выполняются, даже когда условия должны обеспечивать их выполнение. Я протестировал свою «полигональную» функцию в других частях программы и не обнаружил проблем. Вот мой проблемный цикл for.
for (int i = L; i < R; i += resolution) {
double a = i, b = resolution+i;
{ if (poly(C, a)*poly(C, b) < 0) {
double mid = findRoot(C, a, b, tolerance);
System.out.println(mid);
if (Math.abs(poly(C, mid)) < threshold){
System.out.println("Root found at: "+mid);
numCount = 1;
}
} else if (poly(D, a)*poly(D, b) < 0) {
double mid = findRoot(D, a, b, tolerance);
if(Math.abs(poly(C, mid)) < threshold) {
System.out.println("Root found at: "+mid);
numCount = 2;
} else {
numCount = 3;
System.out.println("No roots were found in the specified range.");
} System.out.println("numCount is "+numCount); break;
}
}