Задать вопрос

Язык программирования для математических расчетов?

Как вы думаете, на каком языке программирования лучше всего реализовывать сложные расчеты (финансовая и актуарная математика, статистика).

Понимаю что для этих целей собирают супер-компьютеры и HPC кластеры, но все-таки, какой язык использовать предпочтительней в условиях относительно слабой вычислительной мощности?

Я думаю, что язык должен быть функциональным, так как эта парадигма наиболее близка к чистой математике, так же важна возможность кластеризации приложения…


Вообщем, у кого какие мысли по этому поводу?

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


Спасибо!
  • Вопрос задан
  • 21907 просмотров
Подписаться 5 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 12
DeNnEr
@DeNnEr
Во-первых, парадигма функционального программирования всего-лишь говорит о том, как писать программы. Цель данной парадигмы — оформлять программы как математические функции.
Конечно, за этим стоят какие-то большие цели, кто-то считает что это единственный верный способ программирования, кто-то поклоняется данной парадигме как богу. Но данные люди, простите за столь грубое высказывание — дураки. Истина находится «между». Иначе говоря, функциональное программирование позволяет сделать код более компактным, красивым, быстрым, но использование только этой парадигмы, игнорируя остальные — только вред.

Важно понять что требуется от языка. Как я вижу, требование одно — большая скорость при небольших ресурсах, которые не будут увеличиваться(я правильно понял?).
Если всё так критично(100 и 1 раз оцените задачу!), то выбор не велик: C, C++.
Если хочется вкусить функциональщины, то можно попробовать Haskell, CL(Common Lisp). Но я повторюсь, если в задаче есть слово «функция», это ещё не значит что нужно использовать «функциональное программирование».
Ответ написан
YasonBy
@YasonBy
Для статистики есть специальный язык R. Кроссплатформенный, открытый, и с кучей библиотек.
Ответ написан
FeNUMe
@FeNUMe
>>большая скорость при небольших ресурсах
>>Да, именно оно, но еще чего хотелось бы получить это скорость разработки и элегантность кода на выходе (да, я люблю красивые вещи)
Ответ написан
akzhan
@akzhan
C# + F# ?)
Ответ написан
Комментировать
@Yakhnev
Я думаю, что язык должен быть функциональным, так как эта парадигма наиболее близка к чистой математике,

Я же бы решил, что если нужно делать именно математические расчеты, то следует подумать о математическом пакете, например Matlab. Если Вы хотите получить лаконичность кода, то с этим здесь не должно быть проблем. Огромное количество стандартных функций математики и статистики. С тулбоксами Financial Derivatives Toolbox и Financial Toolbox не знаком, но список функций выглядит внушительным.
Скорость вычислений при правильном программировании, по моим наблюдениям ниже не более, чем в 2 раза (в сравнении, с C#, например). Можно использовать компиляторы и вызывать функции Matlab из любого языка. Правда в этом случае существенным недостатком является долгий старт окружения Matlab.
Ответ написан
@aazon
APL, Fortran
Ответ написан
Комментировать
@zavg
MATLAB оптимален для большинства прикладных задач, тем более подразумевает удобную интеграцию с другими языками.
Ответ написан
Комментировать
@kimor

Если задачи подразумевают широкое использование существующих алгоритмов (без вмешательства в их код) то Матлаб.

Если же алгоритмы будут свои или потребуется адаптация (с внутренним насилием!) чужих или же необходимость перехода в один прекрасный день к большим вычислительным мощностям, то Фортран.

Ответ написан
Комментировать
@xspider2000
MATLAB - является платным пакетом, если вас это не устраивает, то можно посмотреть в сторону Octave. Octave - опенсорсный продукт, синтаксис схож с MATLAB. Прекрасно подходит для высокоуровневого программирования математических расчетов.
Ответ написан
Комментировать
@evsc
Erlang, Haskell или Ruby. В общем большинство функциональных языков.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы