
- •Математические пакеты. Курс лекций Введение
- •1 Анализ состояния рынка математических пакетов
- •1.1 Цели и задачи математического моделирования
- •1.2 Принципы построения математических моделей
- •1.2.1 Основные этапы моделирования
- •1.2.2 Постановка задачи моделирования
- •1.2.3 Построение схемы модели, выделение основных частей и процессов
- •1.2.4 Математическое описание основных частей и процессов
- •1.2.5 Построение решения, связывающего изменяемые параметры и критерий оптимизации
- •1.2.6 Исследование решения на экстремум
- •1.3 Обзор прикладных пакетов математического моделирования
- •1.3.1 Пакеты общего назначения
- •1.3.2 Альтернативные пакеты
- •1.3.3 Специализированные пакеты
- •1.3.4 Узкоспециализированные пакеты
- •1.3.5 Пакеты статистического анализа данных
- •1.4 Применение математических пакетов в интернет технологиях
- •1.4.1 Проприетарные математические программы и пакеты в Интернете
- •1.4.2 Свободные кроссплатформенные математические программы и пакеты в Интернете
- •1.4.3 Математические программы и пакеты реализованные на языках программирования
- •1.4.4 Библиотеки алгоритмов
- •1.4.5 Математические порталы, универсальные библиотеки текстов программ и статей по математической тематике
- •1.4.6 Специализированные библиотеки текстов программ и статей по математической тематике
- •1.4.7 Обзор информационных ресурсов Интернета по математике
- •1.4.8 Поиск и просмотр математической литературы
- •1. Поиск и просмотр математической литературы.
- •1.4.9 Математические документы в Интернете
- •1.4.10 Языки разметки для создания электронных публикаций
- •1.Языки разметки для создания электронных публикаций.
- •1.4.11 Математические конференции в Интернете
- •2 Математические пакеты
- •2.1 Математический пакет MathCad
- •2.1.1 Основные возможности MathCad
- •2.1.2 Особенности интерфейса
- •2.1.3 Особенности при работе с графикой
- •2.1.4 Расширение функциональности Mathcad
- •2.1.5 Взаимодействие с другими программами
- •2.1.6 Использование компонентов
- •2.1.7 Комплектации
- •2.2 Математический пакет Mupad
- •2.3 Математический пакет MatLab
- •2.3.1 Язык MatLab
- •2.3.2 Ключевые возможности Matlab
- •2.3.3 Расширение функциональности Matlab. Библиотеки
- •2.3.4 Возможности использования некоторых библиотек Matlab
- •2.3.5 Математика и вычисления Matlab
- •2.3.6 Альтернативные пакеты. SciLab
- •2.3.7Альтернативные пакеты. Oktave
- •2.4 Математический пакет Maple
- •2.4.1 Интерфейс Maple
- •2.4.2 Вычисления в Maple
- •2.4.3 Графика в Maple
- •2.4.4 Специализированные приложения Maple
- •2.4.5 Программирование Maple
- •2.4.6 Интернет-совместимость Maple
- •2.4.7. Перспективы развития Maple
- •2.4.8 Альтернативные пакеты Maple
- •2.5 Пакет Mathematica
- •2.5.1 Альтернативные пакеты
- •2.6 Пакет для построения графиков и функций FlatGraph
- •3 Среда Scilab
- •3.1 Введение в среду Scilab
- •3.3 Основы работы в Scilab
- •3.3.1 Текстовые комментарии
- •3.3.2 Элементарные математические выражения
- •3.3.3 Переменные в Scilab
- •3.3.4 Системные переменные Scilab
- •3.4 Функции в Scilab
- •3.4.1 Элементарные математические функции
- •3.5 Контрольные вопросы
2.3.5 Математика и вычисления Matlab
MATLAB предоставляет пользователю большое количество (несколько сотен) функций для анализа данных, покрывающие практически все области математики, в частности:
Матрицы и линейная алгебра — алгебра матриц, линейные уравнения, собственные значения и вектора, сингулярности, факторизация матриц и другие.
Многочлены и интерполяция — корни многочленов, операции над многочленами и их дифференцирование, интерполяция и экстраполяция кривых и другие.
Математическая статистика и анализ данных — статистические функции, статистическая регрессия, цифровая фильтрация, быстрое преобразование Фурье и другие.
Обработка данных — набор специальных функций, включая построение графиков, оптимизацию, поиск нулей, численное интегрирование (в квадратурах) и другие.
Дифференциальные уравнения — решение дифференциальных и дифференциально-алгебраических уравнений, дифференциальных уравнений с запаздыванием, уравнений с ограничениями, уравнений в частных производных и другие.
Разреженные матрицы — специальный класс данных пакета MATLAB, использующийся в специализированных приложениях.
Целочисленная арифметика — выполнение операций целочисленной арифметики в среде MATLAB.
MATLAB предоставляет удобные средства для разработки алгоритмов, включая высокоуровневые с использованием концепций объектно-ориентированного программирования. В нём имеются все необходимые средства интегрированной среды разработки, включая отладчик и профайлер. Функции для работы с целыми типами данных облегчают создание алгоритмов для микроконтроллеров и других приложений, где это необходимо.
В составе пакета MATLAB имеется большое количество функций для построения графиков, в том числе трёхмерных, визуального анализа данных и создания анимированных роликов (Рисунок 2.9).
Рисунок – 2.9 График sinc-функции, нарисованный с помощью MATLAB
Встроенная среда разработки позволяет создавать графические интерфейсы пользователя с различными элементами управления, такими как кнопки, поля ввода и другими. С помощью компонента MATLAB Compiler эти графические интерфейсы могут быть преобразованы в самостоятельные приложения, для запуска которых на других компьютерах необходима установленная библиотека MATLAB Component Runtime.
Пакет MATLAB включает различные интерфейсы для получения доступа к внешним подпрограммам, написанным на других языках программирования, данным, клиентам и серверам, общающимся через технологии Component Object Model или Dynamic Data Exchange, а также периферийным устройствам, которые взаимодействуют напрямую с MATLAB. Многие из этих возможностей известны под названием MATLAB API.
Пакет MATLAB предоставляет доступ к функциям, позволяющим создавать, манипулировать и удалять COM-объекты (как клиенты, так и серверы). Поддерживается также технология ActiveX. Все COM-объекты принадлежат к специальному COM-классу пакета MATLAB. Все программы, имеющие функции контроллера автоматизации (англ. Automation controller) могут иметь доступ к MATLAB как к серверу автоматизации (англ. Automation server).
Пример кода, являющегося частью функции magic.m, генерирующего магический квадрат M для нечётных значений размера стороны n:
[J,I] = meshgrid(1:n);
A = mod(I+J-(n+3)/2,n);
B = mod(I+2*J-2,n);
M = n*A + B + 1;
Пример кода, загружающего одномерный массив A значениями массива B в обратном порядке (только если вектор A определен, и число его элементов совпадает с числом элементов вектора B):
A(1:end) = B(end:-1:1);