Если лишь для моделирования с последующей визуализацией результатов, то Octave/MATLAB. Есть большая база готовых алгоритмов.
Если нужна независимая программа с графическим/текстовым интерфейсом, то для Python тоже можно найти много пакетов для вычислений.
Ну и, классика - Фортран. Хотя в наши дни он уже не столь популярен как два десятка лет назад.
Ещё добавлю два популярных ныне языка общего применения: Java, C#.
А в каком языке можно определить объект (в моем случае геометрическую фигуру) и далее добавлять к ней условия: связь с другими объектами, которые как сателлиты должны размещаться рядом (как Луна относительно земли, планеты относительно солнца), добавлять размеры, массу, цвет, определять объекту стороны для которых назначать текстуры? Это нужно все заново разрабатывать или есть готовый API чтобы работать с геометрией и математическими зависимостями между ними, а потом еще и качественно визуализировать это?
В самом простом случае, когда не требуется наследование, то объектом может выступать структура (данных)/запись (в разных языках называется по-разному). Но обычно в ООП-языках для этой целей используют класс/объект (также именуется по-разному).
Образно говоря, речь идет об инструменте, который в автоматизированном виде с учетом предварительно определенных зависимостей (количество объектов, их предпочительные связи) и некого случайного выбора будет генерить систему, где все объекты взаимосвязаны с другими и меняются при изменении исходных данных.
Такой магический инструмент предстоит создать самому.
Для построения
логической части программы можно воспользоваться
визуальным языком ДРАКОН, для которого существует несколько реализаций инструментов. Некоторые из них позволяют автоматически транслировать ДРАКОН-схему в исходный код.
Но ДРАКОН не имеет ничего общего с нотацией UML. Возможно, как раз некоторые построители UML смогут сгенерировать код со связями на основе диаграммы связей UML.