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

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

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

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

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

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

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

Очень интересно, да и на shootout.alioth.debian.org/ отображены очень неплохие результаты особенно по скорости у этого языка. Думаю стоит плотнее к нему присмотреться.

Поддерживаю Фортран. Хорошо оптимизированный интелловский компилятор, есть некоторые конструкции близкие к функциональным языкам, вроде удобных операций над массивами, которые автоматически распараллеливиаются, много готовых библиотек.

Во-первых, парадигма функционального программирования всего-лишь говорит о том, как писать программы. Цель данной парадигмы — оформлять программы как математические функции.

Конечно, за этим стоят какие-то большие цели, кто-то считает что это единственный верный способ программирования, кто-то поклоняется данной парадигме как богу. Но данные люди, простите за столь грубое высказывание — дураки. Истина находится «между». Иначе говоря, функциональное программирование позволяет сделать код более компактным, красивым, быстрым, но использование только этой парадигмы, игнорируя остальные — только вред.

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

большая скорость при небольших ресурсах
Да, именно оно, но еще чего хотелось бы получить это скорость разработки и элегантность кода на выходе (да, я люблю красивые вещи)
Я понимаю что C язык быстрый и при правильном уходе требует мало ресурсов, но я видел как решались тривиальные интегральные уравнения на нем — мне не понравилось.

Ради эксперимента, могу посоветовать тот же CL, Haskell, но для первого нужны хорошие программисты(чтобы не наделали бед), а для второго нужно много времени на изучение и сложнее найти специалистов.
Могу посоветовать C++ с использованием Qt, boost, получается не такой и страшный код, зато в будущем не будет проблем.

Про высокопроизводительные вычисления в R имеет смысл посмотреть cran.r-project.org/web/views/HighPerformanceComputing.html.
Возможно, компромисс скорости разработки производительности поможет достигнуть использование Rcpp. Кое-что про это есть тут есть и завязки к hadoop etc. Большая проблема в этом смысле то, что R хранит объекты в памяти, но с помощью сторонних пакетов это преодолевается для больших объёмов данных.

Так как при разработке R учитывался опыт Scheme, в нём во многом поддерживается ФП (более подробно советую смотреть отличную книгу проф. Чемберса Software for Data Analysis).

Точно, R это то что доктор прописал, особенно если нужно бесплатное решение
Если платность не волнует — смотрите Matlab

Это первое что пришло мне в голову, честно говоря, подтектс этого вопроса — узнать о альтернативах Haskell’у 🙂

>>большая скорость при небольших ресурсах
>>Да, именно оно, но еще чего хотелось бы получить это скорость разработки и элегантность кода на выходе (да, я люблю красивые вещи)

Будь у человека больше вычислительных ресурсов, я бы посоветовал именно Пайтон, т.к. в нём присутствуют все парадигмы в необходимом для качественного кода объёме.
В конце концов, Пайтон не создан для таких вещей. Если такое и писать на нём, то только в виде модуля на Си.

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

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

Можно еще добавить, что если хочется чисто функционального языка, то больше подойдет пакет Mathematica. Хотя MatLAB в плане программирования, конечно, более предпочтительный.

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

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

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

MATLAB — является платным пакетом, если вас это не устраивает, то можно посмотреть в сторону Octave. Octave — опенсорсный продукт, синтаксис схож с MATLAB. Прекрасно подходит для высокоуровневого программирования математических расчетов.

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

Как проще найти большую и малую полуось эллипса ошибок?

Источник

Язык программирования для решения математических задач, 7 букв

Ответ на вопрос в сканворде (кроссворде) «Язык программирования для решения математических задач», 7 букв (первая — ф, последняя — н):

Другие определения (вопросы) к слову «фортран» (19)

  1. Язык для ЭВМ
  2. Язык программирования
  3. Язык ЭВМ
  4. Программирование
  5. Компьютерный язык
  6. Язык програмирования для решения инженерных задач
  7. Язык программирования, широко используемый при научных подсчетах
  8. Язык программирования, разработан в 1957 г. программистами фирмы IBM
  9. Это язык программирования разработан инженерами «IBM» в 1957 году
  10. Один из первых языков программирования
  11. Первый язык программирования, появился в 1957 году
  12. Язык программирования, разработан в 1957 (США)
  13. Один из ранних языков программирования
  14. Коллега алгола
  15. Компьютерный язык Джона Бэкуса
  16. Язык программирования, разработанный инженерами IBM в 1957 году
  17. Компьютерный язык, переводится как «Переводчик формул»
  18. Какой язык разработан фирмой IBM в 1954 году
  19. Первый язык программирования высокого уровня, имеющий транслятор

Фортра́н (английское Fortran ) — первый язык программирования высокого уровня, получивший практическое применение, имеющий транслятор и испытавший дальнейшее развитие. Создан в период с 1954 по 1957 год группой программистов под руководством Джона Бэкуса в корпорации IBM. Название Fortran является сокращением от FORmula TRANslator (формульный транслятор). Фортран широко используется в первую очередь для научных и инженерных вычислений. Одно из преимуществ современного Фортрана — большое количество написанных на нём программ и библиотек подпрограмм.

Имеется большое количество написанных на Фортране (в большей части на старых версиях языка) различных математических библиотек для матричной алгебры и решения систем линейных уравнений, библиотеки для решения дифференциальных уравнений, интегральных уравнений и их систем, аппроксимации функций, специальных функций, быстрых преобразований Фурье, математической статистики и других математических дисциплин. Эти библиотеки поставляются, как правило, с компилятором. Ряд таких пакетов создавался на протяжении десятилетий и популярен в научной среде по сей день, например — Международная математическая библиотека подпрограмм (IMSL).

Большинство таких библиотек являются фактически достоянием человечества: они доступны в исходных кодах, хорошо документированы, отлажены и весьма эффективны.

Современный Фортран (Fortran 95 и Fortran 2003) приобрёл черты, необходимые для эффективного программирования, для новых вычислительных архитектур; позволяет применять современные технологии программирования, в частности, обобщённое и модульное программирование, ООП, сохраняя при этом преемственность с более ранними версиями. Одна из главных концепций развития современного Фортрана — средства поддержки параллельности и векторные операции.

Что искали другие

Случайное

  • Город в Узбекистане близ Бухары
  • Брус в авангарде парусника
  • Полуостров, приютивший Таиланд и Лаос
  • Основой для образа этой сказочной героини послужила Коломбина из итальянской комедии масок
  • Небольшой кусочек хлеба
  • Поиск занял 0.007 сек. Вспомните, как часто вы ищете ответы? Добавьте sinonim.org в закладки, чтобы быстро искать их, а также синонимы, антонимы, ассоциации и предложения.

Источник

Читайте также:  Основы алгоритмизации программирования экзамен
Оцените статью