Справочник от Автор24
Найди эксперта для помощи в учебе
Найти эксперта
+2

Математический язык программирования

Инструменты решения математических задач в программировании

Казалось бы, в самом слове "компьютер" (в переводе с английского - "вычислитель") заложена связь с математикой. Каждый современный язык программирования располагает стандартными библиотеками для математических вычислений. В качестве примера приведем несколько выражений на JavаScript:

let a = Math.sqrt(4) // Квадратный корень.
let b = Math.round(1.234) // Округление.
let c = Math.sin(Math.PI) // Синус угла. 
let d = 5 % 2 // Нахождение остатка от деления.

Однако не любой язык программирования подходит для эффективного решения математических задач Причины этого следующие:

  • многие языки созданы для разработки программ, не связанных с интенсивными вычислениями (например, для программирования веб-приложений, системных утилит, обработки текстов);
  • точность вычислений во многих языках невысока для математических целей, хотя и достаточна для большинства практических задач;
  • стандартные библиотеки популярных языков охватывают лишь самые общие математические действия и константы;
  • многие алгоритмы современной математики не так просто свести к простым последовательностям арифметических и логических вычислений.

Существует несколько подходов к написанию программ, интенсивно использующих математические вычисления:

  1. применение специальных библиотек; например, для Python существуют пакеты NumPy/SciPy, фреймворк boost для языков C/C++ содержит необходимые для математических вычислений библиотеки, свои математические пакеты есть у Java (например, JScience) и других языков;
  2. применение функциональных языков, таких, как Erlang, Haskell, F# в которых понятие функции точно совпадает с ее математическим определением;
  3. применение специализированных языков, таких, как Fortran (Formula Translator, ориентирован на математические и инженерные задачи), язык R (используется для статистических исследований);
  4. использование специализированных интегрированных продуктов, таких, как Matlab, Octave, включающих в себя, помимо языка, эффективные специализированные инструменты.

MATHLAB и GNU Octave

MATHLAB и GNU Octave это, соответственно, коммерческая и свободная реализации среды для математических вычислений.

MATLAB появился еще в конце 1970-х гг. как специализированный язык программирования, который позволил бы применить компьютерные алгоритмы к потребностям математики без необходимости изучения языка Fortran. В 1984 г. была создана компания The MathWorks, занявшаяся развитием MATHLAB и связанного с его использованием инструментария.

«Математический язык программирования» 👇
Помощь эксперта по теме работы
Найти эксперта
Решение задач от ИИ за 2 минуты
Решить задачу
Найди решение своей задачи среди 1 000 000 ответов
Найти

Высокоуровневый язык MATLAB принадлежит к категории интерпретируемых. Он поддерживает возможности объектно-ориентированного программирования. Функции MATHLAB получают входные и выходные параметры. Внутри функций можно объявлять дополнительные переменные и производить промежуточные вычисления. Функции могут содержать команды для построения графиков. Помимо функций в MATLAB применяются скрипты, выполняющие законченные задачи. С помощью MATLAB удобно производить матричные и векторные вычисления.

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

Скриншот среды Octave. Автор24 — интернет-биржа студенческих работ

Рисунок 1. Скриншот среды Octave. Автор24 — интернет-биржа студенческих работ

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

Fortran

Программа на Fortran. Автор24 — интернет-биржа студенческих работ

Рисунок 2. Программа на Fortran. Автор24 — интернет-биржа студенческих работ

Fortran (сокращение от Formula Translator) - один из первых успешных языков высокого уровня. Появившись во второй половине 1950-х гг., он до сих пор активно развивается и остается популярным в отраслях, связанных с математическими и инженерными расчетами. Для этого языка создано большое количество библиотек, связанных с такими направлениями, как:

  • матричная алгебра;
  • системы линейных уравнений;
  • дифференциальные уравнения;
  • интегральные уравнения;
  • аппроксимация функций;
  • преобразования Фурье;
  • математическая статистика и др.

Эти возможности входят в состав стандартной поставки языка Fortran. Они надежны и обладают высоким быстродействием. При этом пользоваться ими можно под свободной лицензией.

Языки S и R

Программа на языке R.

Рисунок 3. Программа на языке R.

R — это свободная (с открытым исходным кодом) реализация коммерческого языка S. Оба они предназначены для статистической обработки данных и построены на базе разработанной в середине 1970-х гг. Дж. Тьюки концепции EDA (Exploratory Data Analysis, разведочный анализ данных), предполагающей следующее:

  • необходимость графического моделирования математических функций;
  • инкрементный анализ моделей (построение следующей модели на основе результатов предыдущей);
  • графическая проверка допущений;
  • нейтрализация отклонений в распределениях с помощью т.н. робастных методов.

Другие коммерческие продукты для статистического анализа: SAS Analytics, StatSoft STATISTICA, Minitab.

Язык Julia

Язык Julia был выпущен в 2009 г. Стефаном Карпински (Нью-Йоркский университет) с целью преодоления ограничений R и MATHLAB. Задачи Julia:

  • высокое быстродействие при обработке больших объемов данных (BigData);
  • широкое использование параллельных вычислений;
  • поддержка облачных технологий хранения и обработки данных.

Julia по скорости обработки данных уже превосходит такие языки, как Python, JavaScript, MATLAB, R. Хотя язык еще далек от полной реализации своих целей, его популярность довольно быстро растет.

Дата написания статьи: 03.05.2019
Найди решение своей задачи среди 1 000 000 ответов
Крупнейшая русскоязычная библиотека студенческих решенных задач
Все самое важное и интересное в Telegram

Все сервисы Справочника в твоем телефоне! Просто напиши Боту, что ты ищешь и он быстро найдет нужную статью, лекцию или пособие для тебя!

Перейти в Telegram Bot