MATLAB (сокращение от англ. «Matrix Laboratory») — термин, относящийся к пакету прикладных программ для решения задач технических вычислений, а также к используемому в этом пакете языку программирования. MATLAB используют более 1 000 000 инженерных и научных работников, он работает на большинстве современных операционных систем, включая Linux, Mac OS, Solaris (начиная с версии R2010b поддержка Solaris прекращена) и Microsoft Windows.
MATLAB как язык программирования был разработан Кливом Моулером (англ. Cleve Moler) в конце 1970-х годов, когда он был деканом факультета компьютерных наук в Университете Нью-Мексико. Целью разработки служила задача дать студентам факультета возможность использования программных библиотек Linpack и EISPACK без необходимости изучения Фортрана. Вскоре новый язык распространился среди других университетов и был с большим интересом встречен учёными, работающими в области прикладной математики. До сих пор в Интернете можно найти версию 1982 года, написанную на Фортране, распространяемую с открытым исходным кодом. Инженер Джон Литтл (англ. John N. (Jack) Little) познакомился с этим языком во время визита Клива Моулера в Стэнфордский университет в 1983 году. Поняв, что новый язык обладает большим коммерческим потенциалом, он объединился с Кливом Моулером и Стивом Бангертом (англ. Steve Bangert). Совместными усилиями они переписали MATLAB на C и основали в 1984 компанию The MathWorks для дальнейшего развития. Эти переписанные на С библиотеки долгое время были известны под именем JACKPAC. Первоначально MATLAB предназначался для проектирования систем управления (основная специальность Джона Литтла), но быстро завоевал популярность во многих других научных и инженерных областях. Он также широко использовался и в образовании, в частности, для преподавания линейной алгебры и численных методов.
Система MATLAB состоит из большого количества специальных программ, позволяющих решать широкий спектр математических и технических задач из разных областей науки. Главный ее элемент – это ядро системы MATLAB. В дополнение к нему система содержит около 60-ти различных комплектов команд (т.н. "Toolboxes"), соответствующие различным разделам математики, математической физики, проектирования, связи, экономики и т.д. Система постоянно совершенствуется. Новая версия системы выходит примерно каждые год – полтора. MATLAB совместима с различными системами и текстовыми редакторами, в том числе, и с Microsoft Word. Он может быть запущен вместе с MATLAB с помощью приложения notebook. В результате программные файлы (т.н. m-файлы), которые выполняются в директории Work системы, могут быть перенесены в текстовый файл в редакторе Word и, запускаться непосредственно из него, т.е. работа производится в режиме создания т.н. M-книги. Одним из удобств работы в режиме M-книги является то, что результат выполнения программы вставляется в текст книги сразу после программы, что позволяет исключить недоразумения, связанные с опечатками в текстах программ.
Программы, написанные на MATLAB, бывают двух типов — функции и скрипты. Функции имеют входные и выходные аргументы, а также собственное рабочее пространство для хранения промежуточных результатов вычислений и переменных. Скрипты же используют общее рабочее пространство. Как скрипты, так и функции не компилируются в машинный код и сохраняются в виде текстовых файлов. Существует также возможность сохранять так называемые pre-parsed программы — функции и скрипты, обработанные в вид, удобный для машинного исполнения. В общем случае такие программы выполняются быстрее обычных, особенно если функция содержит команды построения графиков.
Основной особенностью языка MATLAB является его широкие возможности по работе с матрицами, которые создатели языка выразили в лозунге «думай векторно».
Применение. Математика и вычисления
MATLAB предоставляет пользователю большое количество (несколько сотен) функций для анализа данных, покрывающие практически все области математики, в частности:
· Матрицы и линейная алгебра — алгебра матриц, линейные уравнения, собственные значения и вектора, сингулярности, факторизация матриц и другие.
· Многочлены и интерполяция — корни многочленов, операции над многочленами и их дифференцирование, интерполяция и экстраполяция кривых и другие.
· Математическая статистика и анализ данных — статистические функции, статистическая регрессия, цифровая фильтрация, быстрое преобразование Фурье и другие.
· Обработка данных — набор специальных функций, включая построение графиков, оптимизацию, поиск нулей, численное интегрирование (в квадратурах) и другие.
· Дифференциальные уравнения — решение дифференциальных и дифференциально-алгебраических уравнений, дифференциальных уравнений с запаздыванием, уравнений с ограничениями, уравнений в частных производных и другие.
· Разреженные матрицы — специальный класс данных пакета MATLAB, использующийся в специализированных приложениях.
· Целочисленная арифметика — выполнение операций целочисленной арифметики в среде MATLAB.