- •А.К. Ефремов интегрированная
- •Рекомендовано редсоветом мгту им. Н.Э. Баумана
- •Isbn 5-7038-2301-3 мгту им. Н.Э. Баумана, 2003
- •1. Интерфейс системЫ matlab
- •1.1. Программная группа matlab
- •1.2. Командное окно matlab
- •1.2.1. Главное меню
- •1.2.2. Панель инструментов
- •1.3. Настройка параметров рабочего пространства
- •1.4. Справочная система matlab
- •2. Работа в режиме прямых вычислений
- •3. Базовые объекты системы matlab
- •3.1. Способы формирования матриц и векторов
- •3.2. Матричные операции и функции
- •3.3. Решение линейных уравнений
- •3.4. Вычисление корней полиномов
- •3.5. Обработка данных
- •4. Графические средства системы matlab
- •4.1. Графические объекты на плоскости
- •4.1.1. Функция plot
- •4.1.2. Функции fplot и ezplot
- •4.1.3. Другие графические функции
- •4.1.5. Обработка данных
- •4.2. Построение трехмерных поверхностей и тел
- •4.2.1. Основные графические функции
- •4.2.2. Дополнительные возможности
- •5. Основы программирования в среде matlab
- •5.1. Общие положения
- •5.2. Примеры простых программ
- •Xlabel('sin(X)') % Надпись по оси х
- •Xlabel('X') % Надпись по оси абсцисс
- •5.3. Программа с использованием внешней функции
- •5.4. Дополнительные программы
- •5.4.1. Дифференцирование функций
- •Xlabel('Число элементов массивов')
- •Xlabel('Число элементов массивов')
- •5.4.2. Функции eval, feval
- •Xlabel(‘t’), ylabel(‘y, dy/dt’)
- •Xlabel(‘y’), ylabel(‘dy/dt’)
- •6. Символьные вычисления
- •6.1. Определение символьной переменной
- •6.2. Основные функции
- •6.3. Математический анализ
- •6.3.1. Функция limit – предел функции одной переменной
- •6.3.2. Функция diff – дифференцирование функции одной переменной
- •6.3.3. Функция int – интегрирование функции одной переменной
- •6.3.4. Функция symsum – суммирование членов рядов
- •6.3.5. Функция taylor – разложение функции в ряд Тэйлора
- •6.4. Символьное решение уравнений
- •6.4.1. Решение отдельных уравнений
- •6.4.2. Решение систем уравнений
- •6.4.3. Решение дифференциальных уравнений
- •7. Пакет моделирования динамических систем simulink
- •7.1. Рабочая среда Simulink
- •7.2. Представление динамической системы в виде структурной схемы
- •7.3. Основные приемы работы в среде Simulink
- •7.4. Модель с ветвлением соединений
- •7. 5. Интегрирование дифференциального уравнения
- •Список литературы
- •Оглавление
- •Приложение
- •Разделы справочной системы
- •Программирования и отладки программ
- •Графические средства matlab
- •Символьные вычисления (symbolic math toolbox)
5. Основы программирования в среде matlab
5.1. Общие положения
В предыдущих разделах вычисления проводились в соответствии с определенной последовательностью команд, обрабатываемых интерпретатором и немедленно выполняемых. Этот режим, удобный при проведении оперативных вычислений, тем не менее имеет недостатки:
– не всегда удается повторить предыдущие команды при изменении исходных данных без повторного набора операторов;
– отсутствует возможность сохранения последовательности вычислений и их модификации в случае необходимости.
Для проведения многократных расчетов по определенному алгоритму составляют программы. Пользователь может ввести собственные внешние процедуры и функции, которые автоматически подключаются к выполняемой программе. В этом проявляется свойство расширимости системы MATLAB. Создаваемые функции могут быть в дальнейшем включены в число встроенных функций. Помимо команд и функций, используемых в режиме прямых вычислений (входной язык MATLAB), при программировании используются и специфические возможности языка программирования, который относится к числу проблемно ориентированных языков весьма высокого уровня.
В связи с тем, что в системе MATLAB реализуется механизм интерпретации, исполняемые программы (.exe) не создаются, т.е. программы могут работать только в среде MATLAB. Однако для версий MATLAB 5.х разработаны компиляторы, транслирующие программы MATLAB в коды алгоритмических языков С и С++.
В системе MATLAB различают script-файлы («сценарии») и внешние функции; и те и другие хранятся на диске как m-файлы, т.е. файлы, имеющие расширение *.m. Использование внешних функций позволяет создавать структурированные программы, имеющие сходство с программами, написанными на языках Паскаль и Бейсик, без применения меток. Последовательность операторов – такая же, как при прямых вычислениях (интерпретатор MATLAB просматривает строки программы одну за другой, в естественном порядке).
Script-файлы по существу представляют собой основные (вызывающие) программы, поскольку они не используют входные данные как аргументы или параметры и не возвращают выходные данные, но могут обращаться к внешним функциям. Имена сценариев нельзя применять в качестве операндов и аргументов функций. М-функции используются как обычные встроенные функции MATLAB, и их имена можно применять в вычислительных операторах.
Структура script-файла:
<Script>
% Имя файла <и назначение программы>
<% Дополнительный (поясняющий) комментарий>
Тело файла
Символ % используется для обозначения комментариев. Комментарии, помещаемые в начале текста файла, выводятся на экран по команде help name. Остальные комментарии могут фигурировать в любом месте программы (при выполнении программы они интерпретатором игнорируются). В текстах комментариев допускается использование кириллицы.
Структура М-функции:
function [var1,var2,…]=f_name(Список аргументов)
<% Основной комментарий>
<% Дополнительный комментарий>
Тело функции
var1=выражение
var2=выражение
……………………………
<% ------------------------------------------------
Локальные функции >
Локальные функции (подфункции), применение которых разрешено в версиях MATLAB 5.х, могут быть расположены в любом порядке и вызываются первой (основной) функцией. Помимо локальных могут быть также объявлены и глобальные переменные (в script-файле). В списке они отделяются друг от друга пробелами:
global var1 var2 …
В дальнейшем будем предполагать, что создаваемые m-файлы будут сохраняться в пользовательской папке, например, D:\USER.