Другие языки программирования и технологии

Какой язык программирования лучше всего для сложных математических расчетов?

Пишу программу на Java и столкнулся с такой проблемой, как отбрасывание значений, т. е. при вычислении суммы ряда при больших значениях Java начинает отбрасывать значения. Особенно в циклах. Эти формулы никак нельзя изменить, поэтому нужен язык программирования с очень высокой точностью расчётов. Какой язык программирования в соотношении популярность/точность лучше всего выбрать?
Если проблема в накапливающихся ошибках вычисления, то можно использовать любой язык программирования в котором есть библиотека big_math. Название условное. В разных языках она может называться по своему. Однако, суть проста. Вместо real, float или extended вы используете класс в котором кранится массив цифр достаточной длины. Понятно, что работает это намного медленней, чем вычисления с использованием обычных вещественных типов (real, float или extended), однако таким образом вы может поднять точность там, где она действительно нужна.
Сначала поищите библиотеку на языке, которым вы хорошо владеете. Можно попробовать пакет Wolfram Mathematica. В нем такие вычилсения делать можно, но нужно осовить язык программирования этого пакета. Короче, варинатов решения проблемы много.

Если говорить о Java, то поисковик на запрос BigMath for Java показал несколько готовых библиотек. Скачивайте, сравнивайте и пользуйтесь.

Кроме того, в программировании лучше сумировать ряды в обратном порядке. Находите член ряда, который достаточно мал и сумиируете от меньшего к большему. Благодаря такому приему малые челены ряда не тонут в ошибках округления, когда вы начинаете вычислять сумму с самого большого члена.
ИБ
Илья Борисенко
80 840
Лучший ответ
Санек Резанов стоит добавить, что такое число как 1/3 в десятичной системе невозможно записать без потери качества, даже имея огромное количество знаков после запятой.
такие числа (покуда они рациональные) проще записывать именно в виде дроби, в том числе дроби, где числитель и знаменатель - вышеупомянутые большие числа.

многие языки поддерживают такой тип данных (обычно называется Rational) из коробки или с помощью отдельных математических библиотек.
Санек Резанов без потери точности :) пардон
Что значит "начинает отбрасывать значения"? Не совсем понятно. Конкретный пример приведите
Егор Дубовик
Егор Дубовик
65 664
Костя Сафронов При увеличении значений исходных данных увеличивается ошибка в расчетах. Формулы проверенные и в них ошибок нет.
Султан Абдыжапаров Что здесь не понятного? Типичный выход за пределы разрядности числа.
Для математики, вроде как, Fortran хорошо подходит.
На счет недостаточной разрядности числа, обычно это решается подключением сторонней библиотеки для работы с большими числами.
Маkc Link
Маkc Link
38 877
Для таких целей подойдёт любой, где определён и без "костылей" используется 40-битный тип дробных чисел. К примеру, в Delphi таким типом является Extended.
Когда быстродействия не требуется, а высокая точность очень важна, тогда целесообразно использовать математические пакеты: Maple, MathCAD, MATLAB, Mathematica и подобные.
Иногда при работе с числовыми рядами существует способ их упростить (например, разбить на несколько рядов, часть из которых является разложением каких-либо функций, а другая часть сходится быстрее исходного ряда), в таких случаях нужда в длительных высокоточных расчётах и вовсе отпадает, в этом также могут помочь вышеперечисленные пакеты.
Islam Aliyev
Islam Aliyev
31 768