Возник вопрос с вычислительной математикой. Делаю некоторые задания, где необходимо рассчитывать корни уравнений с точностью до 6 знака после запятой. Делаю все по алгоритмам. В связи с этим возник вопрос, годятся ли встроенные типы для вычислений такого типа(всего 6 знаков после запятой). Пробовал использовать BigDecimal, результат тот же, ответы верны только до 3-4 знака. Делаю по типовым примерам.
В связи с этим, ошибка может находится в вычислениях(т.к. готовые формулы для вычислений уже есть в типовом примере и результат их вычислений отличается от результатов в книжке). В связи с этим, вопрос, как считать на джаве? А если считается все правильно и расчеты правильные, то почему ответ верен только частично? Дело в округлении промежуточных расчетов до 6 знака? Тогда без округления тоже должен быть правильный ответ ведь?
Метод не такой сложный.
Решал два примера, везде ответ верен не до конца.
Конкретно интересует "Решение систем нелинейных уравнений методом наискорейшего спуска"
rs1 = 2*(Math.cos(1.5 + x1)*(Math.sin(x1 + 1.5) + 2.9 - x2) + x1 + Math.cos(x2-2));
rs2 = -2 * (Math.cos(x2 - 2) * Math.sin(x2 - 2) - x2 + Math.sin(x1 + 1.5) + 2.9 + x1*Math.sin(x1 + 1.5));
Пример вычисления значения первой и второй производных.
Просто каждый раз пересчитываем их, подставляя предыдущие значения иксов, пока разность между ними и текущими не будет меньше 0.000001, но ответ верен только до 3 ~знака после запятой