Я должен написать метод, который вычисляет ArcTan без использования Math.atan ()
Мой алгоритм работает, но он не останавливается.
public final static double EPSILON = 1E-16; // Given Value 0,00000000000000010000
public static void main(String[] args)
{
double arcTan = formula;
while(Math.abs(arcTan) < EPSILON)
{
...myAlgorythm...
}
}
После 23 циклов мой алгоритм вычислил почти тот же arcTan, что и Math.atan (), но мое время не останавливается.
Как правильно указать стоп-условие?
Для лучшего понимания смотрите вывод моего цикла:
1: 0,45833333333333330000 0,00000000000000010000
2: 0,46458333333333330000 0,00000000000000010000
3: 0,46346726190476184000 0,00000000000000010000
4: 0,46368427579365074000 0,00000000000000010000
5: 0,46363988658910527000 0,00000000000000010000
6: 0,46364927661314370000 0,00000000000000010000
7: 0,46364724210793534000 0,00000000000000010000
8: 0,46364769089584895000 0,00000000000000010000
9: 0,46364759050907880000 0,00000000000000010000
10: 0,46364761321561010000 0,00000000000000010000
11: 0,46364760803259750000 0,00000000000000010000
12: 0,46364760922469040000 0,00000000000000010000
13: 0,46364760894874296000 0,00000000000000010000
14: 0,46364760901297210000 0,00000000000000010000
15: 0,46364760899795077000 0,00000000000000010000
16: 0,46364760900147850000 0,00000000000000010000
17: 0,46364760900064694000 0,00000000000000010000
18: 0,46364760900084356000 0,00000000000000010000
19: 0,46364760900079693000 0,00000000000000010000
20: 0,46364760900080804000 0,00000000000000010000
21: 0,46364760900080537000 0,00000000000000010000
22: 0,46364760900080600000 0,00000000000000010000
23: 0,46364760900080580000 0,00000000000000010000
24: 0,46364760900080587000 0,00000000000000010000
25: 0,46364760900080587000 0,00000000000000010000
26: 0,46364760900080587000 0,00000000000000010000
27: 0,46364760900080587000 0,00000000000000010000
28: 0,46364760900080587000 0,00000000000000010000
29: 0,46364760900080587000 0,00000000000000010000
30: 0,46364760900080587000 0,00000000000000010000
1-й столбец - это моя переменная-счетчик n
2-й столбец - мой вычисленный arcTan - вы видите, что он не становится более точным после 23 цикла
3-я колонка - мой Эпсилон
Как проверить, есть ли в моем втором столбце прецизионность, указанная в 3-м столбце?