Copyright ООО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис» Copyright ООО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис» МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ Федеральное государственное автономное образовательное учреждение высшего образования «ЮЖНЫЙ ФЕДЕРАЛЬНЫЙ УНИВЕРСИТЕТ» Инженерно-технологическая академия М. В. ПЕТРЯЕВА А. Н. ЦЕЛЫХ ПРИМЕНЕНИЕ MATLAB ДЛЯ РЕШЕНИЯ АНАЛИТИЧЕСКИХ ЗАДАЧ МОДЕЛИРОВАНИЯ Учебное пособие Ростов-на-Дону – Таганрог Издательство Южного федерального университета 2022 1 Copyright ООО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис» УДК 004.438:004.056 (075.8) ББК 32.973-018.1я73 П313 Печатается по решению кафедры информационно-аналитических систем безопасности Института компьютерных технологий и информационной безопасности Южного федерального университета (протокол № 7 от 27 апреля 2021 г.) Рецензенты: доктор технических наук, профессор кафедры информатики Таганрогского института имени А. П. Чехова (филиал) «Ростовского государственного Экономического университета (РИНХ)» Я. Е. Ромм доктор технических наук, профессор кафедры информационно- аналитических систем безопасности ИКТИБ ЮФУ А. В. Боженюк Петряева, М. В. П313 Применение MATLAB для решения аналитических задач моде- лирования : учебное пособие / М. В. Петряева, А. Н. Целых ; Южный федеральный университет. – Ростов-на-Дону ; Таганрог : Издатель- ство Южного федерального университета, 2022. – 131 с. ISBN 978-5-9275-4058-7 Изложены необходимые для освоения курса сведения – краткий кон- спект лекций, методические указания к выполнению лабораторных работ, индивидуального задания, а также образцы тестовых вопросов. Направление подготовки 10.03.01 “Информационная безопасность”. УДК 004.438:004.056 (075.8) ББК 32.973-018.1я73 ISBN 978-5-9275-4058-7 © Южный федеральный университет, 2022 © Петряева М. В., Целых А. Н., 2022 © Оформление. Макет. Издательство Южного федерального университета, 2022 2 Copyright ООО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис» ОГЛАВЛЕНИЕ ВВЕДЕНИЕ …………………………………………………………….. 5 ИСТОРИЯ ………………………………………………………………. 8 РАБОЧИЙ СТОЛ ……………………………………………………… 10 Лабораторная работа № 1. Основы работы в Matlab. Установка и 15 настройка среды ……………………………………………………… РАБОЧАЯ ОБЛАСТЬ. ПЕРЕМЕННЫЕ …………………………….. 16 Лабораторная работа № 2. Создание и редактирование переменных 24 СТРУКТУРА ПРОГРАММЫ ПАКЕТА MATLAB ………………... 26 Лабораторная работа № 3. Структура программы в Matlab. Мате- 27 матические операции ………………………………………………… ФУНКЦИИ ……………………………………………………………... 28 Лабораторная работа № 4. Работа с локальными и глобальными 35 функциями ……………………………………………………………. РАБОТА С МАТРИЦАМИ …………………………………………... 36 Лабораторная работа № 5. Функции для работы с матрицами …… 46 ПОЛЯ СТРУКТУР …………………………………………………….. 47 Лабораторная работа № 6. Работа со структурами ………………… 50 ГРАФИЧЕСКИЕ ОБЪЕКТЫ …………………………………………. 52 Лабораторная работа № 7. Функция plot …………………………… 58 60 ТРЕХМЕРНЫЕ ГРАФИКИ …………………………………………... Лабораторная работа № 8. Трехмерные объекты в Matlab. Сетча- 66 тые графики …………………………………………………………... УРАВНЕНИЯ …………………………………………………………... 68 Лабораторная работа № 9. Решение дифференциальных уравнений 70 АППРОКСИМАЦИЯ В MATLAB …………………………………... 71 Лабораторная работа № 10. Аппроксимация в Matlab ……………… 76 ФУНКЦИИ И ОПЕРАЦИИ ДЛЯ РАБОТЫ СО СТРОКАМИ ….. 77 3 Copyright ООО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис» Оглавление Лабораторная работа № 11. Обработка строк ……………………….. 84 ФУНКЦИИ ВРЕМЕНИ И ДАТЫ MATLAB ………………………. 85 Лабораторная работа № 12. Функции времени и даты Matlab ……... 92 ИНТЕГРАЦИЯ MATLAB …………………………………………….. 93 Лабораторная работа № 13. Экспорт графиков а MA Power point …. 95 РАБОТА С ФАЙЛАМИ ……………………………………………… 96 Лабораторная работа № 14. Форматированные файлы ……………... 100 ПОЛУЧЕНИЕ ДАННЫХ ……………………………………………... 101 ИНТЕЛЛЕКТУАЛЬНЫЙ АНАЛИЗ ТЕКСТА ……………………… 102 Лабораторная работа № 15. Подготовка текста, анализ и моделиро- 108 вание данных …………………………………………………………... РАЗРАБОТКА ПОЛЬЗОВАТЕЛЬСКОГО ИНТЕРФЕЙСА ………... 110 ИНДИВИДУАЛЬНОЕ ЗАДАНИЕ …………………………………… 127 ЗАКЛЮЧЕНИЕ ………………………………………………………… 128 СПИСОК ЛИТЕРАТУРЫ …………………………………………….. 129 4 Copyright ООО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис» Введение ВВЕДЕНИЕ В настоящее время развитие многих сфер деятельности напрямую связано с развитием информационных технологий. С появлением персо- нального компьютера появились такие понятия, как информатизация и информационное общество. Для современного научно-технического про- гресса характерны не только активная информатизация, но и высокая сте- пень автоматизации процессов. Появление компьютерной математики принесло с собой целый набор интегрированных пакетов программ и про- граммных комплексов, автоматизирующих инженерные и математические расчеты. К ним относятся Gauss, TK Solver!, Eureka, Derive, Mathcad, Mathematica, Maple V и др. Перечисленные выше программы позволят намного легче находить интегралы разных видов, работать с рядами, быстрее решать дифферен- циальные уравнения. Как наиболее популярные из них, выделяют MatLab, Maple, MathCad и Mathematica. MATLAB – одна из старейших, а потому тщательно разработанных и проверенных временем систем автоматизации математических вычис- лений. Эти системы относятся к классу автоматизированного проектиро- вания (CAE) в области инженерного проектирования. Инструментарий MATLAB основан на расширенном представлении и применении матрич- ных операций. Даже в названии системы – MATrix LABoratory – матрич- ная лаборатория отражена матричная основа. Несмотря на это пользователи, не заинтересованные в матричных вычислениях, практически не испытывают неудобств в работе. Это про- исходит за счет того, что синтаксис встроенного языка программирования данной системы тщательно продуман. Матрицы применяются в математике для компактной записи систем линейных алгебраических или дифференциальных уравнений, в матричной механике – разделе квантовой механики, в математическом моделировании различных статических и динамических систем и объектов. Матрицы со- ставляют основу для решения уравнений состояния динамических объектов и систем и используются для автоматизации их составления. Ярким примером является Simulink – расширение MATLAB. Си- стема MATLAB включает в себя новейшие достижения в области автома- 5 Copyright ООО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис» Введение тизации процесса решения матричных задач, а потому представляет инте- рес для специалистов, наряду с этим обладая понятным и удобным интер- фейсом, что важно для начинающих пользователей. Миллионы инженеров и ученых во всем мире используют MATLAB®, чтобы анализировать и спроектировать системы и продукты, преобразовывающие наш мир. Матричный язык MATLAB является са- мым естественным способом в мире описать вычислительную математи- ку. Встроенная графика облегчает визуализацию и понимание данных. Окружение рабочего стола способствует экспериментированию, исследо- ваниям и открытиям. Эти средства MATLAB и возможности все строго протестированы и спроектированы, чтобы работать совместно. Современный MATLAB позволяет проводить анализ данных прак- тически в любых разделах математики. Как было сказано ранее, основным объектом среды являются матрицы, что дает возможность решать уравне- ния линейной алгебры, выполнять операции над матрицами и векторами. Также среда помогает находить корни в виде многочленов, выполнять различные операции над ними, а также производить дифференцирование, интерполяцию и экстраполяцию кривых. Инструменты Matlab допускают работу со статистическими и ди- намическими функциями. Функции раздела математической статистики и анализа данных позволяют выполнять быстрое преобразование рядов Фурье. Matlab упрощает решение дифференциальных и дифференциаль- но-алгебраических уравнений, дифференциальных уравнений, допускает уравнения с ограничениями, частными производными, с начальными условиями (задача Коши) с помощью пакета PDE toolbox. Matlab – идеальная среда для моделирования физических явлений, инженерных и экономических систем. Чтобы расширить эти «способности», MathWorks вместе с Matlab поставляет сопутствующую интерактивную программу Simulink для мо- делирования динамических систем. По словам создателей, этот продукт «позволяет представить исследуемую динамическую систему с помощью соединенных между собой функциональных блоков (блок-диаграммы), а затем изучить ее поведение в динамике». MATLAB позволяет пользователям воплощать свои идеи за преде- лами рабочего стола. На сегодняшний день возможно запустить исследо- 6 Copyright ООО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис» Введение вания больших наборов данных и масштабировать до кластеров и обла- ков. Код MATLAB может быть интегрирован с другими языками, позво- лив вам развернуть алгоритмы и приложения в сети, предприятии и про- мышленных системах. Фактически MATLAB – это аббревиатура от MATLABoratory. Большая часть функциональных возможностей MATLAB может работать с несколькими значениями одновременно. Среда содержит все необходимые инструменты, типичные для IDE, включая отладчик и профайлер. Современный MATLAB позволяет разра- батывать алгоритмы на основе основных принципов классического объ- ектно-ориентированного программирования. Встроенные функции для работы с различными типами данных упрощают создание программ для микроконтроллеров. Рис. 1. Официальный сайт Matlab Для визуализации данных в MATLAB используются специальные функции для построения двумерных и трехмерных графиков. Среда поз- воляет проводить визуальный анализ данных и даже создавать анимиро- ванные ролики. Графический интерфейс пользователя содержит множе- ство элементов управления, таких как поля ввода, чекбоксы, кнопки, па- нели и т.д. 7 Copyright ООО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис» История ИСТОРИЯ Изначально MATLAB не был языком программирования, а пред- ставлял собой интерактивный матричный калькулятор. Со временем к про- стым вычислениям добавились сложные алгоритмы для расчетов FFT (быстрое преобразование Фурье) и ODE (обыкновенное дифференциальное уравнение), разнообразные наборы инструментов и средства визуализации. В 2020 г. в журнале PACMPL (Proceedings of ACM on Programming Languages) Ассоциацией вычислительной техники была опубликована статья создателей Matlab математика Клива Моулера (англ. Cleve Moler) и инженера Джека Литтла (настоящее имя John N. Little) под названием “A History of MATLAB”. Математической основой для первой версии MATLAB, по словам авторов, послужила серия исследовательских работ Дж. Х. Уилкинсона и его коллег, опубликованных между 1965 и 1970 гг. и позже собранных в книге “Handbook for Automatic Computation, Volume II, Linear Algebra”. В этих статьях были представлены алгоритмы решения матричных ли- нейных уравнений и задач на собственные значения, реализованные на языке ALGOL60. Язык программирования MATLAB был разработан в конце 1970-х гг. деканом факультета компьютерных наук Университета Нью-Мексико Кливом Моулером как замена языку программирования Фортран. Клив Моулер писал: «Изначально целью разработки была возможность исполь- зования программных библиотек для проведения расчетов Linpack и EISPACK студентами университета»1. Язык относительно быстро распространился среди других универси- тетов и стал довольно популярным. Matlab наиболее широко используется среди ученых, работающих в области прикладной математики. Одной из первых была версия, написанная на Фортране в 1982 г., которую и сегодня можно найти в Интернете. Эта версия с открытым исходным кодом. Ис- пользование Фортрана связано с тем, что инженер Джон Н. (Джек) Литтл познакомился с ним во время учебы у Клайва Моулера в Стэнфордском университете в 1983 г. Клив Моулер указывал в своей статье: «многие сту- 1 Статья Клива Моулера. URL: https://dl.acm.org/journal/pacmpl 8 Copyright ООО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис» История денты Стэнфорда изучали такие дисциплины, как теория управления и об- работка сигналов, в которых матрицы занимали важное место» 2. В результате совместных усилий Джона Литтла, Клева Моулера и Стива Бангерта (англ. Steve Bangert) MATLAB был перенесен на попу- лярный язык программирования C. По мнения создателей, новый язык обладал огромным коммерческим потенциалом, поэтому в 1984 г. была основана компания The MathWorks. Долгое время библиотеки, перепи- санные на C, выходили под общим названием JACKPAC. «Изначально MATLAB был предназначен для решения задач в тео- рии управления и обработке сигналов, использовался для проектирования систем управления», – писал Клив Моулер: «Быстрое развитие и удобство для начинающих пользователей, а также наличие большого количества справочных материалов способствовало развитию популярности Matlab в новых научных и инженерных областях»3. Простота и качество решения примеров линейной алгебры и иных численных методов способствовало популяризации Matlab в сфере образования. 2 Статья Клива Моулера. URL: https://dl.acm.org/journal/pacmpl 3 Книги Клива Моулера. URL: https://www.mathworks.com/moler.html 9