Точные вычисления на java? Возник вопрос с вычислительной математикой. Делаю некоторые задания, где необходимо рассчитывать корни уравнений с точностью до 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 ~знака после запятой

21 Авг 2019 в 06:13
185 +1
0
Ответы
1

.

Для точных вычислений с высокой точностью на Java рекомендуется использовать класс BigDecimal. Однако, если результаты вычислений отличаются от ожидаемых, возможно есть ошибка в реализации алгоритма вычислений.

Чтобы увеличить точность вычислений, следует следить за округлением промежуточных результатов. Также желательно использовать специальные методы для сравнения чисел с плавающей запятой с заданной точностью, а не сравнивать их напрямую.

Если результат вычислений не соответствует ожидаемому даже с учетом увеличения точности, возможно есть ошибка в самом алгоритме вычислений или его реализации. Рекомендуется внимательно перепроверить логику алгоритма и правильность передачи параметров. Возможно, также стоит обратить внимание на порядок выполнения операций и их последовательность.

Если успешно решите проблему с некорректными результатами, вы сможете получить правильные ответы с точностью до 6 знака после запятой при вычислениях на Java.

20 Апр в 13:22
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 93 277 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир