- •Начала программирования в среде 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
1.4. Функции прикладной численной математики |
|
71 |
|||
|
1200 |
Модуль Фурье - изображения |
|
||
|
|
|
|
|
|
|
1000 |
|
|
|
|
(F(X(t))bsa |
800 |
|
|
|
|
600 |
|
|
|
|
|
|
|
|
|
|
|
|
400 |
|
|
|
|
|
200 |
|
|
|
|
|
0 |
-10 |
0 |
10 |
20 |
|
-20 |
||||
|
|
|
Частота (Гц) |
|
|
|
|
|
Рис. 1.25 |
|
|
Из графика рис. 1.25 уже становится очевидным, что в спектре входного сигнала есть две гармоники - с частотами 5 и 12 Гц.
Остается лишь то неудобство, что из графика спектра невозможно установить амплитуды этих гармоник. Во избежание этого, нужно весь вектор y Фурьеизображения разделить на число его элементов (n), чтобы получить вектор комплексного спектра сигнала:
N=length(y); a =abs(v)/N; plot(f1(970:1030),a(970:1030)); grid
set(gca,'FontName','Arial Cyr','FontSize',16,'Color','white'), title('Модуль комплексного спектра');
xlabel('Частота (Гц)'); ylabel('abs(F(X(t)) / N')
Результат приведен на рис. 1.26. Из его рассмотрения вытекает, что "амплитуды" всех составляющих гармоник равны 0.5. При этом нужно принять во внимание, что "амплитуды" распределены между положительными и отрицательными частотами поровну, поэтому они вдвое меньшее действительной амплитуды соответствующей гармоники.
1.4.6. Задания
Задание 1.6.
1.Введите произвольную матрицу размером (4*6). Найдите сумму наибольших элементов ее строк.
2.Введите квадратную матрицу (5*5) с одним наименьшим элементом. Найдите сумму элементов строки, в которой размещен элемент с наименьшим
значением.
1.4. Функции прикладной численной математики |
|
72 |
|||
|
0.7 |
Модуль комплексного спектра |
|
||
|
|
|
|
|
|
|
0.6 |
|
|
|
|
/ N |
0.5 |
|
|
|
|
0.4 |
|
|
|
|
|
abs(F(X(t)) |
|
|
|
|
|
0.3 |
|
|
|
|
|
|
|
|
|
|
|
|
0.2 |
|
|
|
|
|
0.1 |
|
|
|
|
|
0 |
-10 |
0 |
10 |
20 |
|
-20 |
||||
|
|
|
Частота (Гц) |
|
|
|
|
|
Рис. 1.26 |
|
|
3.Введите матрицу (6*9), в которой есть единственные наибольший и наименьшие элементы и они расположены в разных строках. Поменяйте местами строку с наибольшим элементом и строку с наименьшим элементом.
4.Введите матрицу (5*6) с разными значениями элементов. В каждой строке выберите элемент с наименьшим значением, из полученных чисел выберите наибольшее. Найдите индексы полученных элементов.
5.Введите матрицу (5*6). Найдите вектор, элементами которого являются наибольшие элементы соответствующей строки матрицы.
6.Введите матрицу (5*6). Постройте вектор, элементами которого являются суммы наибольшего и наименьшего элементов соответствующей строки матрицы.
7.Введите матрицу (5*6). Постройте вектор, элементами которого являются средние значения элементов соответствующей строки матрицы.
8.Введите матрицу (5*6). Постройте вектор, элементами которого являются среднеквадратичные отклонения элементов соответствующей строки матрицы от их среднего значения.
9.Введите матрицу (5*6). Постройте вектор, элементами которого являются средние арифметические наибольшего и наименьшего элементов соответствующей строки матрицы.
10.Введите матрицу (6*5). Постройте вектор, элементами которого являются суммы квадратов элементов соответствующего столбца матрицы.
11.Введите матрицу (5*5). Постройте векторы, элементами которых являются суммы элементов столбцов матрицы, произведения элементов столбцов и наименьшие значения элементов столбцов.
12.Введите матрицу (5*6). Найдите среднее арифметическое наибольших и наименьших ее элементов.
13.Введите матрицу (5*5). Постройте вектор, элементами которого являют-
ся элементы главной диагонали матрицы. Найдите след матрицы.
1.4. Функции прикладной численной математики |
73 |
14.Введите две матрицы (4*4). Постройте новую матрицу размером (4*8), включая в первые 4 столбца строки первой матрицы, а в другие - столбцы второй матрицы.
15.Найдите сумму всех элементов матрицы размером (4*3).
Задание 1.7. Вычислите векторы:
а) модуля частотной передаточной функции (ЧПФ); б) аргумента ЧПФ; в) действительной части ЧПФ; г) мнимой части ЧПФ
по заданным числителю и знаменателю передаточной функции (таблица 1.4). Предварительно найдите корни знаменателя передаточной функции, опре-
делите наибольшую собственную частоту ωmax системы. Обеспечьте вычисление ЧПФ при 100 значениях частоты ω в диапазоне от 0 до 5ωmax .
|
|
|
Таблица 1.4 |
|
Ва- |
|
Числитель |
Знаменатель |
|
ри- |
|
|
|
|
ант |
|
|
|
|
1 |
1. |
82p+67.56 |
p4+2. 65p3+3. 09p2+7. 04p+34.05 |
|
2 |
4. |
61p2+1. 82p+67.56 |
p4+3. 65p3+45p2+7. 04p+125 |
|
3 |
p2+4p+23 |
p4+2p3+39p2+2p+45 |
|
|
4 |
3p2+1. 82p+67.56 |
p2+7. 04p+34.05 |
|
|
5 |
p+6 |
p2+0. 7p+48 |
|
|
6 |
p3+4. 61p2+1. 82p |
2. 65p3+3p2+4p+87 |
|
|
7 |
p3+4. 61p2+1. 82p+67.56 |
p4+2. 65p3+68p2+5p+34 |
|
|
8 |
4. |
61p2+68 |
p4+2. 65p3+3. 09p2+7. 04p+34.05 |
|
9 |
7.56 |
p4+2. 65p3+3. 09p2+7. 04p+34.05 |
|
|
10 |
p3+1. 8p+7 |
p4+6. 5p3+39p2+7p+45 |
|
|
11 |
p3+4. 61p2+1. 82p+67.56 |
p3+3. 09p2+70p+34 |
|
|
12 |
p2+1. 8p+78 |
2. 65p3+3. 09p2+7. 04p+34.05 |
|
|
13 |
p3+1. 82p+67.56 |
p4+2. 6p3+3p2+4p+34 |
|
|
14 |
p3+4. 61p2+1. 82p+67.56 |
7p2+7p+34 |
|
|
15 |
4. |
61p2+1. 82p+67.56 |
p2+7. 04p+560 |
|
16 |
1. |
82p+67.56 |
3. 09p2+7. 04p+34.05 |
|
17 |
p3 |
|
3. 09p2+7. 8p+125 |
|
18 |
1. |
82p |
p3+3. 09p2+7. 04p+34.05 |
|
19 |
4. |
61p2 |
p2+7. 04p+34.05 |
|
20 |
p3+67.56 |
p4+2. 65p3+3. 09p2+7. 04p+34.05 |
|
|
21 |
p3 |
|
p4+2p3+3p2+12p+100 |
|
22 |
p3+4. 61p2+1. 82p+67.56 |
p4+5p3+30p2+7p+305 |
|
|
23 |
p2+1. 82p+67.56 |
p4+2p3+9p2+4p+35 |
|
|
24 |
p3+61p2+182p+67 |
p4+3p3+9p2+0. 04p+39 |
|
1.4. Функции прикладной численной математики |
74 |
||||
|
|
|
|
|
|
|
25 |
p2+1. 82p+67.56 |
p4+5p3+20p2+7p+34 |
|
Указание. Частотной передаточной функцией называют передаточную функцию системы при мнимых значениях її аргумента ( p = j ω ).
Собственные частоты системы - это значения модулей мнимых частей корней характеристического уравнения системы (которое получается приравниванием нулю знаменателя передаточной функции).
Задача 1.8. Введите произвольную матрицу размером (5*5). Найдите:
1)определитель матрицы; в случае, если определитель окажется равным нулю, или слишком малым, измените некоторые элементы матрицы и повторите вычисления;
2)обратную матрицу; проверьте правильность путем обращения обратной матрицы;
3)характеристический полином матрицы;
4)корни характеристического полинома матрицы; рассортируйте корни по комплексно-спряженным парам и в порядке возрастания величин;
5)собственные значения матрицы; сравните с ранее найденными корнями характеристического полинома;
6)LU-разложение матрицы; проверьте его правильность;
7)QR-разложение матрицы; проверьте его правильность;
8)сингулярные числа матрицы; сравните их с получаемыми при svd- разложении;
9)след матрицы;
10)число обусловленности матрицы;
11)экспоненту от матрицы;
12)логарифм от экспоненты матрицы; сравните с исходной матрицей.
1.4.7.Вопросы
1.Какой объект в MatLAB называется полиномом?
2.Как в MatLAB осуществляется перемножение и деление полиномов?
3.При помощи каких функций можно найти корни заданного полинома, значение полинома по известному значению аргумента?
4.Какие функции позволяют найти производную от полинома?
5.Как найти характеристический полином матрицы?