Сам столкнулся с такой проблемой, когда поступил в аспирантуру.
Начал программировать сначала в Matlab и Builder C++, но потом перешел исключительно на Qt.
Конечно для таких задач идеально подходит Matlab, но как верно здесь заметили он платный.
Если брать бесплатный софт и у вас есть желание освоить несколько языков программирования, то можно попробовать Qt C++ для алгоритмов и openGL для визуализации графики. Я так и сделал в свое время. Да, придется повозиться с изучением C++, без этого никуда, но зато результа вас порадует и вы получите удовлетворение от процесса.
Что касается Java, то в принципе это хороший вариант в плане кросплатформенности. Я делал несколько программ расчетных с визуализацией на Java, мне показалось, они работают несколько медленнее чем те же на Qt. Там было численное решение систем диффуров и необходимую мне скорость обеспечил C++.