- •Начала программирования в среде MatLab
- •Содержание
- •Предисловие
- •Введение
- •1. MatLAB как научный калькулятор
- •1.1. Командное окно
- •1.2. Операции с числами
- •1.2.1. Ввод действительных чисел
- •1.2.2. Простейшие арифметические действия
- •1.2.3. Ввод комплексных чисел
- •1.2.4. Элементарные математические функции
- •1.2.5. Специальные математические функции
- •1.2.6. Элементарные действия с комплексными числами
- •1.2.7. Функции комплексного аргумента
- •1.2.8. Задания
- •1.2.9. Вопросы
- •1.3. Простейшие операции с векторами и матрицами
- •1.3.1. Ввод векторов и матриц
- •1.3.2. Формирование векторов и матриц
- •1.3.3. Извлечение и вставка частей матриц
- •1.3.4. Действия над векторами
- •1.3.5. Поэлементное преобразование матриц
- •1.3.6. Матричные действия над матрицами
- •1.3.7. Матричные функции
- •1.3.8. Задания
- •1.3.9. Вопросы
- •1.4. Функции прикладной численной математики
- •1.4.1. Операции с полиномами
- •1.4.2. Обработка данных измерений
- •1.4.3. Функции линейной алгебры
- •1.4.4. Аппроксимация и интерполяция данных
- •1.4.5. Векторная фильтрация и спектральный анализ
- •1.4.6. Задания
- •1.4.7. Вопросы
- •1.5. Построение простейших графиков
- •1.5.1. Процедура plot
- •1.5.2. Специальные графики
- •1.5.3. Дополнительные функции графического окна
- •1.5.5. Задания
- •1.5.6. Вопросы
- •1.6. Операторы управления вычислительным процессом
- •1.6.1. Оператор условного перехода
- •1.6.2. Оператор переключения
- •1.6.3. Операторы цикла
- •1.6.4. Задания
- •1.6.5. Вопросы
- •2. Программирование в среде MatLAB
- •2.1. Функции функций
- •2.2. Создание М-файлов
- •2.2.1. Особенности создания М-файлов
- •2.3.1. Общие требования к построению
- •2.3.2. Типовое оформление процедуры-функции
- •2.3.3. Задания
- •2.3.4. Вопросы
- •2.4. Создание Script-файлов
- •2.4.1. Основные особенности Script-файлов
- •2.4.2. Ввод и вывод информации в диалоговом режиме
- •2.4.3. Организация повторения действий
- •2.4.4. Организация изменения данных в диалоговом режиме
- •2.4.5. Типовая структура и оформление Script-файла
- •2.5. Графическое оформление результатов
- •2.5.1. Общие требования к представлению графической информации
- •2.5.2. Разбивка графического окна на подокна
- •2.5.3. Вывод текста в графическое окно (подокно)
- •2.6. Создание функций от функций
- •2.6.1. Процедура feval
- •2.6.2. Примеры создания процедур от функций
- •2.6.3. Задания
- •2.7. Пример создания сложной программы
- •2.7.1. Программа моделирования движения маятника
- •2.7.2. Задания
- •3.1. Функции меню командного окна
- •3.1.2. Другие меню командного окна
- •3.1.3. Панель инструментов
- •3.2. Команды общего назначения
- •3.3. Создание М-книги
- •3.3.1. Начало новой М-книги
- •3.3.2. Написание М-книги
- •3.3.3. Редактирование М-книги
- •3.3.4. Преобразование документа WORD в М-книгу
- •3.3.6. Изменение параметров вывода результатов
- •4. Классы вычислительных объектов
- •4.1. Основные классы объектов
- •4.1.1. Класс символьных строк (char)
- •4.1.2. Класс записей (struct)
- •4.1.3. Класс ячеек (cell)
- •4.2. Производные классы MatLAB
- •4.2.1. Класс объектов Inline
- •4.2.2. Классы пакета CONTROL
- •4.3. Пример создания нового класса polynom
- •4.3.1. Создание подкаталога @polynom
- •4.3.2. Создание конструктора
- •4.3.3. Создание процедуры символьного представления polynom-объекта.
- •4.4. Создание методов нового класса
- •5.1. Формирование типовых процессов
- •5.1.1. Формирование одиночных импульных процессов
- •5.1.2. Формирование колебаний
- •5.2.1. Основы линейной фильтрации
- •5.2.2. Формирование случайных процессов
- •5.3. Процедуры спектрального (частотного) и статистического анализа процессов
- •5.3.1. Основы спектрального и статистического анализа
- •5.3.2. Примеры спектрального анализа
- •5.3.3. Статистический анализ
- •5.4. Проектирование фильтров
- •5.4.1. Формы представления фильтров и их преобразования
- •5.4.2. Разработка аналоговых фильтров
- •5.4.3. Проектирование БИХ-фильтров
- •5.5. Графические и интерактивные средства
- •5.5.1. Графические средства пакета SIGNAL
- •5.5.2. Интерактивная оболочка SPTOOL
- •6.1. Ввод и преобразование моделей
- •6.2. Получение информации о модели
- •6.3. Анализ системы
- •6.4. Интерактивный "обозреватель" ltiview
- •6.5. Синтез системы
- •7.1. Общая характеристика пакета SimuLink
- •7.1.1. Запуск SimuLink
- •7.1.2. Библиотека модулей (блоков)
- •7.1.3. Раздел Sinks (приемники)
- •7.1.4. Раздел Sources (Источники)
- •7.1.5. Раздел Сontinuous
- •7.1.6. Раздел Discrete
- •7.1.7. Раздел Math
- •7.1.8. Раздел Functions & Tables
- •7.1.9. Раздел Nonlinear
- •7.1.10. Раздел Signals & Systems
- •7.2. Построение блок-схем
- •7.2.1. Выделение объектов
- •7.2.2. Оперирование с блоками
- •7.2.3. Проведение соединительных линий
- •7.2.4. Проставление меток сигналов и комментариев
- •7.2.5. Создание подсистем
- •7.2.6. Запись и распечатка блок-схемы S-модели
- •7.3. Примеры моделирования
- •7.3.1. Моделирование поведения физического маятника
- •7.3.2. Моделирование поведения гироскопа в кардановом подвесе
- •7.4. Объединение S-моделей с программами MatLAB
- •7.4.2. Функции пересечения нуля
- •7.4.5. Образование S-блоков путем использования программ MatLab. S-функции
- •7.4.6. Пример создания S-функции
- •7.5.1. Создание библиотеки
- •7.5.2. Маскировка блоков
- •7.5.3. Моделирование процесса ориентации космического аппарата
- •Послесловие
- •Предметный указатель
- •Указатель операторов, команд, функций и функциональных блоков MatLAB
2.3. Создание файл-функций |
|
|
|
|
|
101 |
||
400 |
|
|
Графік функції "MYFUN" |
|
|
|
||
|
|
|
|
|
|
|
|
|
350 |
|
|
|
|
|
|
|
|
300 |
|
|
|
|
|
|
|
|
250 |
|
|
|
|
|
|
|
|
200 |
|
|
|
|
|
|
|
|
150 |
|
|
|
|
|
|
|
|
100 |
|
|
|
|
|
|
|
|
50 |
|
|
|
|
|
|
|
|
0 |
|
|
|
|
|
|
|
|
-50 |
-15 |
-10 |
-5 |
0 |
5 |
10 |
15 |
20 |
-20 |
||||||||
|
|
|
|
Рис. 2.1 |
|
|
|
|
Третий пример - создание файл-функции, вычисляющей значения функции y(t) = k1+k2*t+k3*sin(k4*t+k5).
В этом случае удобно объединить совокупность коэффициентов k в единый вектор К:
К= [k1 k2 k3 k4 k5]
исоздать такой М-файл:
function y = dvob(x, K)
%Вычисление функции
%y = K(1)+K(2)*x+K(3)*sin(K(4)*x+K(5)),
%где К - вектор из пяты элементов
%Используется для определения текущих значений
%параметров движения подвижного объекта
y = K(1)+K(2)*x+K(3)*sin(K(4)*x+K(5));
Тогда расчет, например, 11-ти значений этой функции можно осуществить
так
»K = ones(1,5);
»t = 0:1:10;
»fi = dvob(t, K)
fi = 1. 8415 2. 9093 3. 1411 3. 2432 4. 0411 5. 7206 7. 6570 8. 9894 9. 4560 10. 0000
2.3.2. Типовое оформление процедуры-функции
Рекомендуется оформлять М-файл процедуры-функции по такой схеме: function [<Выход>] = <имя функции>(<Вход>)
%<Краткое пояснение назначения процедуры>
%Входные переменные
%<Детальное пояснение о назначении, типе и размерах
%каждой из переменных, перечисленных в перечне <Вход>
%Выходные переменные
%<Детальное пояснение о назначении, типе и размерах
%каждой из переменных перечня <Выход>
%и величин, используемых в процедуре как глобальные>
%Использование других функций и процедур
%<Раздел заполняется, если процедура содержит обращение
%к другим процедурам, кроме встроенных>
2.3. Создание файл-функций |
102 |
|
< П у с т а я с т р о к а > |
|
|
%Автор : <Указывается автор процедуры, дата создания конечного варианта
%процедуры и организация, в которой созданная программа>
< Т е к с т и с п о л н я е м о й ч а с т и п р о ц е д у р ы >
Здесь обозначен: <Выход> - перечень выходных переменных процедуры, <Вход> - перечень входных переменных, разделенных запятыми.
Примечание. При использовании команды help <имя процедуры> в командное окно выводятся строки комментария до первой пустой строки.
2.3.3. Задания
Задание 2.1. Создайте М-файл, вычисляющий значение функции из задания 1.5. Постройте график этой функции с помощью процедуры fplot в границах, заданных в задании 1.5. Вычислите интеграл от функции в тех же пределах, используя процедуры quad и quad8. Найдите точку локального минимума и локальный минимум функции и ближайший корень (нуль).
Задание 2.2. Найдите точку локального минимума и локальный минимум функции двух переменных, приняв за начальную точку с заданными координатами (таблица 2.1). Предварительно создайте соответствующую файл-функцию.
Таблица 2.1
Вариант |
xo |
yo |
f(x,y) |
|
|
|
|
1 |
0 |
1 |
ex +y + (x − y)2 − 2x − 2 y |
||||
2 |
0.7 |
-1. 2 |
(x − y)2 − cos(x − y −1) |
||||
3 |
1.5 |
-0. 5 |
ex +y −2x −2 y −cos(x − y −1) |
||||
4 |
0.5 |
1.5 |
e x +y + 4x 2 − 3x − 3y |
||||
5 |
0 |
1 |
4x 2 + ln(x + y) + |
|
1 |
|
|
|
|
|
x |
+ y |
|||
|
|
|
|
||||
|
|
|
|
|
|
||
6 |
1.2 |
0.7 |
2x+y − 2x − 2y + 2(x − y)2 |
||||
7 |
0 |
-0. 9 |
e x−y + 2x + 2 y + (x + y)2 |
||||
8 |
0.8 |
1.3 |
(x − y)2 − cos(x + y −1) |
||||
9 |
1.5 |
0.5 |
e x−y − 2x + 2 y − cos(x + y −1) |
||||
10 |
0.5 |
-1. 5 |
e x−y − 3x + 3y + 4x 2 |
||||
11 |
0 |
-1 |
4x 2 + ln(x − y) + |
|
1 |
|
|
|
|
|
x |
− y |
|||
|
|
|
|
||||
|
|
|
|
||||
12 |
1.2 |
-0. 8 |
2x− y − 2x + 2 y + 2(x + y)2 |