У меня есть график в Excel, который представляет некоторую ценность за один день.Поэтому я добавляю опорную функцию и получаю что-то вроде этого:
y = 1E-13x6 - 2E-10x5 + 8E-08x4 - 1E-05x3 + 0,0004x2 + 0,0275x + 8,414
Мера в моем наборе данных:
09:36:21 => 5,27
Первое, что мне нужно знать, это как преобразоватьвременная метка в значение для функции.После некоторого преобразования значения ячейки я обнаружил, что в Excel метки времени отображаются в диапазоне от 0,00000 до 0,99999, поэтому, например, 09:36:21 - это 0,400243055555556.Затем я написал небольшой сценарий тестирования Java:
double x = 0.400243055555556;
double x6 = (1*Math.pow(10, -13))*Math.pow(x, 6);
double x5 = (2*Math.pow(10, -10))*Math.pow(x, 5);
double x4 = (8*Math.pow(10, -8))*Math.pow(x, 4);
double x3 = (1*Math.pow(10, -5))*Math.pow(x, 3);
double x2 = (4*Math.pow(10, -4))*Math.pow(x, 2);
double y = x6 - x5 + x4 - x3 + x2 + 0.0275*x + 8.414;
Но после выполнения этого сценария я получаю y = 8.425070122712738.Так что это, очевидно, не работает.Должен сказать, что все значения на графике находятся в диапазоне от 5 до 12.
Я, очевидно, что-то делаю не так, но не знаю, что именно.Может быть, я плохо закодировал функцию, или, может быть, выбранный x не является правильным значением, но что-то не так.Может ли кто-нибудь помочь?
Обновление: мой код не был так хорош, что, как предложил Даффимо, работало лучше.Но проблема заключалась в том, что Excel указывал мне неверную тенденду.Мне удалось получить хорошую диаграмму рассеяния.