Основы электродинамики с Matlab
Покупка
Основная коллекция
Тематика:
Системы автоматического моделирования
Издательство:
Логос
Год издания: 2020
Кол-во страниц: 176
Дополнительно
Вид издания:
Учебное пособие
Уровень образования:
ВО - Бакалавриат
ISBN: 978-5-98704-700-2
Артикул: 619934.02.99
Представлены основные сведения о среде программирования MATLAB. Рассмотрены вопросы вычислений в командном режиме, построения графиков. Охарактеризованы скрипты в MATLAB и управляющие конструкции. Изложены краткие теоретические сведения об элементах векторного анализа, уравнениях Максвелла, плоских волнах, граничных задачах, а также методе конечных разностей. Приведены задачи и примеры решения модельных электродинамических задач, позволяющие использовать и изучить возможности среды MATLAB.
Для студентов высших учебных заведений, получающих образование по направлениям (специальностям) «Физика». «Радиотехника». «Радиоэлектронные системы и комплексы». Может использоваться в качестве практического пособия при повышении квалификации инженеров и сотрудников научно-исследовательских институтов.
Тематика:
ББК:
УДК:
ОКСО:
- ВО - Бакалавриат
- 03.03.01: Прикладные математика и физика
- 11.03.01: Радиотехника
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов
А.Ю. ГРИНЕВ, Е.В. ИЛЬИН ОСНОВЫ ЭЛЕКТРОДИНАМИКИ С MATLAB Рекомендовано Ученым советом факультета радиоэлектроники летательных аппаратов Национального исследовательского университета «Московский авиационный институт» в качестве учебного пособия Москва • 2020 • Логос
УДК 537.8 ББК 373.167.1:53 Г82 Рецензент А.С. Ильинский, доктор физико-математических наук, профессор факультета «Вычислительная математика и кибернетика» Московского государственного университета им. М.В. Ломоносова Гринев А.Ю. Основы электродинамики с Matlab: учеб. пособие / А.Ю. Гринев, Е.В. Ильин. – М.: Логос, 2020. – 176 с. ISbN 978-5-98704-700-2 Представлены основные сведения о среде программирования Matlab. Рассмотрены вопросы вычислений в командном режиме, построения графиков. Охарактеризованы скрипты в Matlab и управляющие конструкции. Изложены краткие теоретические сведения об элементах векторного анализа, уравнениях Максвелла, плоских волнах, граничных задачах, а также методе конечных разностей. Приведены задачи и примеры решения модельных электродинамических задач, позволяющие использовать и изучить возможности среды Matlab. Для студентов высших учебных заведений, получающих образование по направлениям (специальностям) «Физика», «Радиотехника», «Радиоэлектронные системы и комплексы». Может использоваться в качестве практического пособия при повышении квалификации инженеров и сотрудников научно-исследовательских институтов. УДК 537.8 ББК 373.167.1:53 Подписано в печать 01.03.2020. Формат 60´90/16. Печать офсетная. Бумага офсетная. Печ. л. 11. Тираж 500 экз. Заказ Издательская группа «Логос»: 111024, Москва, ул. Авиамоторная, д. 55, корп. 31 Тел.: (495) 981-51-12, 642-59-89 Электронная почта: universitas@mail.ru Дополнительная информация на сайте: www.logosbook.ru ISBN 978-5-98704-700-2 © Гринев А.Ю., Ильин Е.В., 2020 © Логос, 2020 Г82
Оглавление Предисловие....................................................................................................5 Раздел 1. Основные сведения о среде программирования MATLAB..........................................................................................................7 Глава 1. Вычисления в командном режиме.................................10 1.1. Простейшие математические операции в Matlab .........10 1.2. Переменные...........................................................................13 1.3. Создание матриц...................................................................18 1.4. Доступ к элементам матриц.................................................23 1.5. Операции с матрицами.........................................................27 1.6. Ввод, вывод и работа со строками ......................................36 Глава 2. Построение графиков в MATLAB .................................45 2.1. Построение графика в виде двумерной линии...................45 2.2. Оформление графиков..........................................................53 2.3. Построение трехмерных графиков......................................61 2.4. Построение линий уровня....................................................72 2.5. Построение векторного поля ...............................................74 2.6. Отображение нескольких графиков в одном окне.............76 Глава 3. Скрипты в MATLAB и управляющие конструкции.........................................................83 3.1. Создание и выполнение скриптов в Matlab ..................83 3.2. Оператор for........................................................................86 3.3. Логические операции............................................................90 3.4. Операторы if / elseif / else......................................94 3.5. Оператор while ...................................................................97 3.6. Операторы break / continue......................................98 3.7. Оператор switch...............................................................100 3.8. Создание функций ..............................................................103 3.9. Использование функции arrow3.....................................107 Раздел 2. Практикум: краткие теоретические сведения и задания......................................................................................................110 Тема 1. Векторный анализ ............................................................110 1.1. Элементы векторного анализа...........................................110
Оглавление 1.1.1. Операторы векторного анализа............................110 1.1.2. Векторные тождества............................................111 1.2. Задания.................................................................................112 Тема 2. Уравнения Максвелла (произвольная и гармоническая временная зависимость, статические, стационарные и квазистационарные поля)...............................128 2.1. Система уравнений электродинамики – уравнения Максвелла...................................................................................128 2.1.1. Система уравнений электродинамики.................128 2.1.2. Уравнения электродинамики в комплексной форме......................................................130 2.2. Граничные условия. Принцип эквивалентности..............131 2.3. Задания.................................................................................133 Тема 3. Плоские волны ..................................................................143 3.1. Явление дисперсии и групповая скорость........................143 3.2. Задания.................................................................................145 Тема 4. Граничные задачи, уравнения и методы .....................151 4.1. К классификации электромагнитных явлений.................151 4.2. Задания.................................................................................154 4.3. Метод конечных разностей................................................160 4.3.1. Конечно-разностная аппроксимация...................160 4.3.2. Конечно-разностная аппроксимация уравнений Лапласа и Пуассона......................................163 4.3.3. Конечно-разностная аппроксимация для граничных узлов .......................................................165 4.4. Задания.................................................................................167 Литература..................................................................................................176
Предисловие В соответствии с государственным общеобразовательным стандартом курс «Электродинамика и распространение радиоволн» является общеобразовательной дисциплиной для обучающихся по направлению «Радиотехника» (как и по ряду других направлений подготовки [1–5]). Процедуры расчета и численные методы решения задач электродинамики затрагиваются на лекциях при изучении ряда тем: направляющие системы и направляемые волны, излучение и дифракция электромагнитных волн; частично на практических занятиях, при выполнении курсовых и компьютерных лабораторных работ. В то же время бурное развитие цифровых технологий во многом изменило как смысл самого понятия «радиотехника», так и требования, предъявляемые к подготовке специалистов в этой области, сделав необходимыми новые знания и умения Действительно, в настоящее время, благодаря существенному прогрессу в развитии вычислительной техники и надежной основе в виде системы уравнений Максвелла, наблюдается качественный прорыв в проектировании СВЧ-устройств, антенн, в решении задач рассеяния и т.п. [6, 7]. Сложилась очевидная триада участников этого процесса: разработчики электродинамических методов (подходов, алгоритмов), программисты и пользователи. Последние реализуют конкретные проекты в условиях ограниченных сроков и усложненных требований к создаваемой продукции и, как правило, не обладают необходимой квалификацией, временными и финансовыми ресурсами для разработки пакетов программ необходимого уровня. Между тем разработаны уникальные коммерческие программные продукты, обладающие необходимой общностью, для моделирования и оптимизации электромагнитных полей в сложных СВЧ-устройствах и антеннах, способные не только существенно облегчить жизнь пользователей, но и создавать более совершенные приборы и устройства. Мы убеждены, что одним из важных качеств современного радиоинженера-разработчика антенн и СВЧ-устройств является умение приспосабливать конкретные задачи к разработанным пакетам программ при безусловном понимании основных идей и базовых электродинами
Предисловие ческих принципов этих программ. Использование системы Matlab в учебном процессе позволит сблизить дисциплины, связанные с информатикой и численными методами [6]. Кроме того, логика развития радиотехнических приложений приводит к необходимости трансформирования и введению новых разделов в стандартный курс «Электродинамика и распространение радиоволн». Система Matlab представляет собой уникальный сплав универсальных программных и алгоритмических средств с широкой гаммой алгоритмических приложений [8–11]. С ее библиотекой численных методов ни по объему, ни по качеству не может сравниться ни одна из систем программирования. Для современного инженера и научно-технического работника Matlab является незаменимым инструментом моделирования и исследования различных прикладных задач. Цель учебного пособия – помочь на примерах решения модельных электродинамических задач использовать и изучить возможности системы Matlab при моделировании и исследовании различных прикладных задач электродинамики. Нумерация формул, рисунков и таблиц в разделах 1 и 2 независима.
Раздел 1 Основные сведения о среде программирования MATLAB MathWorks Matlab (сокращение от Matrix laboratory) представляет собой программный пакет, объединяющий в себе интерпретатор одноименного языка программирования высокого уровня, среду разработки на этом языке, средства визуализации данных, а также множество библиотек для различных областей применения. Язык программирования Matlab ориентирован в первую очередь на решение технических и научных задач с использованием матричных вычислений [8, 9]. В частности, Matlab предоставляет средства для построения двухмерных и трехмерных графиков различных видов, функции для экстраполяции и интерполяции данных, решения уравнений и их систем, средства для символьных вычислений на основе ядра Waterloo Maple, инструменты для создания графического интерфейса с пользователем (GUI); имеются возможности для взаимодействия с программами, написанными на языках C/C++, Fortran, Java, и средой выполнения .NEt, а также многое другое. Первая версия Matlab появилась в конце 1970-х гг., а в 1984 г. была создана фирма MathWorks, которая занимается дальнейшим развитием этого языка и средств разработки на нем. С тех пор Matlab регулярно обновляется, язык и среда программирования получают новые возможности, такие, например, как: объектно-ориентированное программирование, возможности для взаимодействия с внешними устройствами, подключаемыми к компьютеру, и др. Достоинством Matlab также является его кроссплатформенность: имеются версии программы для Microsoft Windows, linux и apple Mac OS X. При этом Matlab поддерживает как 32-битные, так и 64-битные операционные системы, что особенно важно для расчетов, требующих большого количества оперативной памяти. После запуска среды разработки Matlab откроется главное окно программы, показанное на рис. 1.1.
Раздел 1. Основные сведения о среде программирования MATLAB Рис. 1.1. Внешний вид главного окна Matlab Главное окно среды Matlab может включать в себя различные дочерние окна. В частности, на рис. 1.1 показаны окна: • «Current Folder», отображающее структуру директорий файловой системы и текущую директорию с файлами; • «Command Window» для ввода команд языка Matlab и отображения текстовых результатов расчета; • «Workspace», отображающее переменные, расположенные в данный момент в памяти компьютера; • «Command History», отображающее последние введенные в окно «Command Window» команды. Внешний вид главного окна пользователь может изменять по своему усмотрению, открывая, закрывая (с помощью пунктов меню «Desktop»), перемещая или изменяя размеры дочерних окон. В частности, главное окно может дополнительно включать в себя следующие окна: • «Help», отображающее справку по языку, среде, разработке или другой составной части Matlab; • «Figure», отображающее графические результаты расчета; • «Profiler», предназначенное для измерения скорости работы программ на языке Matlab;
Раздел 1. Основные сведения о среде программирования MATLAB 9 • «Editor», предназначенное для ввода и редактирования программ на языке Matlab, и другие. Важной составной частью среды Matlab является встроенная документация, благодаря которой можно быстро узнать синтаксис той или иной функции, а также найти нужную функцию по ее описанию или имени. Для вызова документации используется меню «Help» главного меню. Особенно полезны в нем пункты «Product Help» (вызов полной документации по Matlab и всем установленным с ним пакетам), а также «Function browser» (быстрый поиск документации для функции по ее имени). При выборе пункта меню «Product Help» откроется окно «Help», разделенное на две части (рис. 1.2). Рис. 1.2. Внешний вид окна «Help» В левой части окна перечислены все разделы справки в виде дерева. В частности, ветвь «Matlab» содержит справку об общих вопросах, касающихся программирования в среде Matlab, о стандартных функциях, синтаксисе операторов и т.п. Ветвь «Release Notes» содержит информацию об установленной версии Matlab, в том числе и список изменений по сравнению с предыдущей версией. Ниже в дереве расположены разделы документации, касающиеся различных пакетов (библиотек), которые установлены вместе с Matlab.
Раздел 1. Основные сведения о среде программирования MATLAB Как правило, быстрее не искать описания функций в дереве разделов, а находить их с помощью поисковой строки, расположенной над списком разделов. Если в это поле ввода ввести слово и нажать Enter, то в окне справки активируется вкладка «Search Results», где будут перечислены все разделы справки, содержащие искомое слово. Писать программы на языке Matlab можно двумя способами. Первый способ заключается в том, чтобы последовательно вводить команды в окне «Command Window» и тут же наблюдать за их выполнением. Второй способ заключается в написании программы (скрипта) в отдельном файле с расширением .m (для этого можно использовать встроенный редактор среды Matlab – окно «Editor» или любой текстовый редактор). В первых разделах будет использоваться первый вариант создания и выполнения программ. Глава 1 Вычисления в командном режиме 1.1. Простейшие математические операции в MATLAB Для проведения расчетов в командном режиме предназначено окно «Command Window». Главная особенность этого режима состоит в том, что каждая команда выполняется сразу после ее ввода, при этом можно наблюдать за результатами их выполнения. Недостатком такого режима работы является то, что последовательность введенных команд не сохраняется в каком-либо файле, не считая истории введенных команд, и при перезапуске среды Matlab, для повторного использования той же последовательности команд, их придется вводить заново (или копировать из истории). Но зато такой режим работы позволяет быстро проверить работу той или иной функции (стандартной или написанной пользователем). Вводить команду надо после символов «приглашения»: >>. Например: >> 2 + 3 ans = 5 В данном случае мы сложили два числа, а так как результат не был явно присвоен никакой переменной, то Matlab присвоил результат