Не могу понять, почему этот код не работает.Я создаю функцию для оценки полинома во всех точках в заданном интервале х, с частотой, указанной пользователем.Мой базовый полиномиальный код не имеет отношения к проблеме.Моя проблема заключается в заполнении моего массива значениями, которые я получаю из метода Хорнера.
public double[] evalAt(double s, double f, int n) {
double[] resultArray = new double[n];
double h =((f - s)/(n));
if(s==f) {
double tempResult = 0;
for (int i = this.degree; i >= 0; i--) {
tempResult = tempResult * s + this.terms[i].getCoefficient();
}
resultArray[0] = tempResult;
} else {
int counter = 0;
for(double i = s; i <= f; i=i+h) {
double tempResult = 0;
for (int j = this.degree; j >= 0; j--) {
tempResult = tempResult * i + this.terms[j].getCoefficient();
}
System.out.println("Counter: " + counter + " Result @ Counter: " + tempResult);
resultArray[counter++] = tempResult;
}
System.out.println(resultArray[0]);
System.out.println(resultArray[1]);
System.out.println(resultArray[2]);
System.out.println(resultArray[3]);
}
return resultArray;
}
У меня есть оператор print
, чтобы показать мне значения счетчика и временного результата.тогда я использую синтаксис resultArray['index'] = 'value';
.Когда я запускаю это, я вижу, что счетчик и значение точно такие, как я хочу, однако, когда я проверяю массив с четырьмя операторами print
внизу, ничего не происходит.Мои входные данные 0,10,10
:
Выход:
Counter: 0 Result @ Counter: 0.0
Counter: 1 Result @ Counter: 1.0
Counter: 2 Result @ Counter: 4.0
Counter: 3 Result @ Counter: 9.0
Counter: 4 Result @ Counter: 16.0
Counter: 5 Result @ Counter: 25.0
Counter: 6 Result @ Counter: 36.0
Counter: 7 Result @ Counter: 49.0
Counter: 8 Result @ Counter: 64.0
Counter: 9 Result @ Counter: 81.0
Counter: 10 Result @ Counter: 100.0