оглавление   ДМ   экономическая информатика   визуальные среды - 4GL   Теория и практика обработки информации
Свободно распространяемое бесплатное ПО компьютерного моделирования

Cистема численно-математического моделирования MatLab

  1. Внешние интерфейсы
  2. Наборы инструментов
  3. История версий MatLab
  4. Базовые сведения о MatLab
    1. Рабочая среда MatLab
    2. Простейшие вычисления
    3. Эхо команд
    4. Сохранение рабочей среды. MAT файлы
    5. Журнал
    6. Система помощи
  5. Матрицы
    1. Скаляры, векторы и матрицы
    2. Доступ к элементам
    3. Основные матричные операции
    4. Создание матриц специального вида
    5. Матричные вычисления
  6. Интегрирование MatLab и Excel
    1. Конфигурирование Excel 
    2. Обмен данными между MatLab и Excel
  7. Программирование
    1. М-файлы
    2. Файл-программа
    3. Файл-функция
    4. Создание графика
    5. Печать графиков
  8. Примеры программ MatLab
    1. Центрирование и шкалирование
    2. SVD/PCA
    3. PCA/NIPALS 
    4. PLS1
    5. PLS2
  9. Моделирование в MatLab
    1. Система моделирования динамических
      систем Simulink MatLab
    2. Интеракривный пакет гибридного
      событийного моделирования Stateflow
  10. Литература
  11. Форум по MatLab
Клив Моулер, Cleve Moler

MatLab как язык программирования был разработан Кливом Моулером (Cleve Moler) в конце 1970-х годов когда он был деканом факультета компьютерных наук в Университете Нью-Мексико. Целью разработки служила задача дать студентам факультета возможность использования программных библиотек Linpack и EisPack без необходимости изучения Фортрана. Вскоре новый язык распространился среди других университетов и был с большим интересом встречен учёными, работающими в области прикладной математики. До сих пор в Интернете можно найти версию 1982 года, написанную на Фортране, распространяемую с открытым исходным кодом. Инженер Джон Литтл (англ. John N. (Jack) Little) познакомился с этим языком во время визита Клива Моулера в Стэндфордский университет в 1983 году. Поняв, что новый язык обладает большим коммерческим потенциалом, он объединился с Кливом Моулером и Стивом Бангертом (англ. Steve Bangert). Совместными усилиями они переписали MatLab на C и основали в 1984 компанию The MathWorks для дальнейшего развития. Эти переписанные на С библиотеки долгое время были известны под именем JackPac. Первоначально MatLab предназначался для проектирования систем управления (основная специальность Джона Литтла), но быстро завоевал популярность во многих других научных и инженерных областях. Он также широко использовался и в образовании, в частности, для преподавания линейной алгебры и численных методов.

Сегодня MatLab (абр. "Matrix Laboratory") - это пакет прикладных программ для решения задач технических вычислений и одноимённый язык программирования, используемый в этом пакете.

MatLab используют более миллиона инженерных и научных работников, он работает на большинстве современных операционных систем, включая Linux, Mac OS, Solaris и Microsoft Windows.

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

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

Основной особенностью языка MatLab являются его широкие возможности по работе с матрицами, которые создатели языка выразили в лозунге "думай векторно" (Think vectorized).

В этом пособии рассказывается о применении пакета  MatLab для анализа многомерных данных. Этот текст не является учебником по MatLab. В нем приведены только базовые сведения  о работе в этой среде, необходимые для реализации основных алгоритмов. Более подробное изложение можно найти здесь

В пособии интенсивно используются понятия и методы матричной алгебры - вектор, матрица, и т.п. Читателям, которые плохо знакомы с этим аппаратом, рекомендуется изучить, или, хотя бы просмотреть, пособие "Матрицы и векторы". 

Для практического воплощения конкретных методов используются как специализированные пакеты программ (например, the Unsrambler или SIMCA), так и статистические пакеты общего назначения (например, SPSS или Statistica). Среди средств общего назначения, используемых в исследовательских задачах, особое место занимает пакет MatLab. Его популярность необычайно высока. Это объясняется тем, что MatLab является мощным и универсальным обработки многомерных данных. Сама структура пакета делает его удобным средством для проведения матричных вычислений. Спектр проблем, исследование которых может, осуществлено при помощи MatLab, охватывает: матричный анализ, обработку сигналов и изображений, нейронные сети и многие другие. MatLab - это язык высокого уровня, имеющий открытый код, что дает возможность опытным пользователям разбираться в запрограммированных алгоритмах. Простой встроенный язык программирования позволяет легко создавать собственные алгоритмы. За много лет использования MatLab создано огромное количество функций и ToolBox (пакетов специализированных средств). Самым популярным является пакет PLS ToolBox компании Eigenvector Research, Inc.

Многие книги  и статьи содержат MatLab коды, позволяющие читателю сразу применить описываемые методы на практике. MatLab прекрасно интегрируется с Microsoft Word и Excel.

MatLab - это это очень популярный инструмент для анализа данных. По данным опроса, его используют до трети всех исследователей, тогда как программа the Unsrambler применяется только 16% ученых. Главным недостатком MatLab являются его высокая цена. Кроме того, MatLab хорош для рутинных расчетов. Отсутствие интерактивности делает его неудобным при выполнении поисковых, исследовательских расчетов для новых, неисследованных массивов данных.  

Проблему цены решает альтернативное математическое обеспечение Chemometrics - специальная надстройка для системы Microsoft Excel. Подробнее о ней рассказано в пособии Проекционные методы в системе Excel.

Внешние интерфейсы

Пакет MatLab включает различные интерфейсы для получения доступа к внешним подпрограммам, написанным на других языках программирования, данным, клиентам и серверам, общающимся через технологии Component Object Model или Dynamic Data Exchange, а также периферийным устройствам, которые взаимодействуют напрямую с MatLab. Многие из этих возможностей известны под названием MatLab API.

COM

Пакет MatLab предоставляет доступ к функциям, позволяющим создавать, манипулировать и удалять COM-объекты (как клиенты, так и серверы). Поддерживается также технология ActiveX. Все COM-объекты принадлежат к специальному COM-классу пакета MatLab. Все программы, имеющие функции контроллера автоматизации (англ. Automation controller) могут иметь доступ к MatLab как к серверу автоматизации (англ. Automation server).

.NET

Пакет MatLab в Microsoft Windows предоставляет доступ к программной платформе .NET Framework. Имеется возможность загружать .NET сборки (Assemblies) и работать с объектами .NET классов из среды MatLab. В версии MatLab 7.11 (R2010b) поддерживается .NET Framework версий 2.0, 3.0, 3.5 и 4.0.

DDE

Пакет MatLab содержит функции, которые позволяют ему получать доступ к другим приложениям среды Windows, равно как и этим приложениям получать доступ к данным MatLab, посредством технологии динамического обмена данными (DDE). Каждое приложение, которое может быть DDE-сервером, имеет своё уникальное идентификационное имя. Для MatLab это имя - MatLab.

Веб-сервисы

В MatLab существует возможность вызывать методы веб-сервисов. Специальная функция создаёт класс, основываясь на методах API веб-сервиса.

MatLab взаимодействует с клиентом веб-сервиса с помощью принятия от него посылок, их обработки и посылок ответа. Поддерживаются следующие технологии: Simple Object Access Protocol (SOAP) и Web Services Description Language (WSDL).

COM-порт

Интерфейс для последовательного порта пакета MatLab обеспечивает прямой доступ к периферийным устройствам, таким как модемы, принтеры и научное оборудование, подключающееся к компьютеру через последовательный порт (COM-порт). Интерфейс работает путём создания объекта специального класса для последовательного порта. Имеющиеся методы этого класса позволяют считывать и записывать данные в последовательный порт, использовать события и обработчики событий, а также записывать информацию на диск компьютера в режиме реального времени. Это бывает необходимо при проведении экспериментов, симуляции систем реального времени и для других приложений.

MEX-файлы

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

DLL

Интерфейс MatLab, относящийся к общим DLL позволяет вызывать функции, находящиеся в обычных динамически подключаемых библиотеках, прямо из MatLab. Эти функции должны иметь C-интерфейс.

Кроме того, в MatLab имеется возможность получить доступ к его встроенным функциям через C-интерфейс, что позволяет использовать функции пакета во внешних приложениях, написанных на C. Эта технология в MatLab называется C Engine.

Наборы инструментов

Для MatLab имеется возможность создавать специальные наборы инструментов (англ. toolbox), расширяющие его функциональность. Наборы инструментов представляют собой коллекции функций, написанных на языке MatLab для решения определённого класса задач. Компания Mathworks поставляет наборы инструментов, которые используются во многих областях, включая следующие:

Помимо вышеперечисленных, существуют тысячи других наборов инструментов для MatLab, написанных другими компаниями и энтузиастами.

Свободно распространяемое бесплатное ПО компьютерного моделирования
оглавление   ДМ   экономическая информатика   визуальные среды - 4GL   Теория и практика обработки информации

Знаете ли Вы, что макроэкономическая модель - это экономико-математическая модель, в которой присутствуют переменные, характеризующие различных хозяйствующих субъектов (предприятия, отрасли), составляющих моделируемую хозяйственную систему, и математическое описание связей между этими субъектами.

НОВОСТИ ФОРУМА

Форум Рыцари теории эфира


Рыцари теории эфира
 10.11.2021 - 12:37: ПЕРСОНАЛИИ - Personalias -> WHO IS WHO - КТО ЕСТЬ КТО - Карим_Хайдаров.
10.11.2021 - 12:36: СОВЕСТЬ - Conscience -> РАСЧЕЛОВЕЧИВАНИЕ ЧЕЛОВЕКА. КОМУ ЭТО НАДО? - Карим_Хайдаров.
10.11.2021 - 12:36: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от д.м.н. Александра Алексеевича Редько - Карим_Хайдаров.
10.11.2021 - 12:35: ЭКОЛОГИЯ - Ecology -> Биологическая безопасность населения - Карим_Хайдаров.
10.11.2021 - 12:34: ВОЙНА, ПОЛИТИКА И НАУКА - War, Politics and Science -> Проблема государственного терроризма - Карим_Хайдаров.
10.11.2021 - 12:34: ВОЙНА, ПОЛИТИКА И НАУКА - War, Politics and Science -> ПРАВОСУДИЯ.НЕТ - Карим_Хайдаров.
10.11.2021 - 12:34: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Вадима Глогера, США - Карим_Хайдаров.
10.11.2021 - 09:18: НОВЫЕ ТЕХНОЛОГИИ - New Technologies -> Волновая генетика Петра Гаряева, 5G-контроль и управление - Карим_Хайдаров.
10.11.2021 - 09:18: ЭКОЛОГИЯ - Ecology -> ЭКОЛОГИЯ ДЛЯ ВСЕХ - Карим_Хайдаров.
10.11.2021 - 09:16: ЭКОЛОГИЯ - Ecology -> ПРОБЛЕМЫ МЕДИЦИНЫ - Карим_Хайдаров.
10.11.2021 - 09:15: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Екатерины Коваленко - Карим_Хайдаров.
10.11.2021 - 09:13: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Вильгельма Варкентина - Карим_Хайдаров.
Bourabai Research - Технологии XXI века Bourabai Research Institution