Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

Основы электродинамики с Matlab

Покупка
Основная коллекция
Артикул: 619934.02.99
Доступ онлайн
280 ₽
В корзину
Представлены основные сведения о среде программирования MATLAB. Рассмотрены вопросы вычислений в командном режиме, построения графиков. Охарактеризованы скрипты в MATLAB и управляющие конструкции. Изложены краткие теоретические сведения об элементах векторного анализа, уравнениях Максвелла, плоских волнах, граничных задачах, а также методе конечных разностей. Приведены задачи и примеры решения модельных электродинамических задач, позволяющие использовать и изучить возможности среды MATLAB. Для студентов высших учебных заведений, получающих образование по направлениям (специальностям) «Физика». «Радиотехника». «Радиоэлектронные системы и комплексы». Может использоваться в качестве практического пособия при повышении квалификации инженеров и сотрудников научно-исследовательских институтов.
Гринев, А. Ю. Основы электродинамики с Matlab : учебное пособие / А. Ю. Гринев, Е. В. Ильин. - Москва : Логос, 2020. - 176 с. - ISBN 978-5-98704-700-2. - Текст : электронный. - URL: https://znanium.com/catalog/product/1213094 (дата обращения: 19.04.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов. Для полноценной работы с документом, пожалуйста, перейдите в ридер.
А.Ю. ГРИНЕВ,  Е.В. ИЛЬИН

ОСНОВЫ ЭЛЕКТРОДИНАМИКИ 
С 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 присвоил результат

Глава 1. Вычисления в командном режиме 
11

переменной ans. Таким же образом можно использовать различные
операторы и функции, некоторые из них приведены в табл. 1.1.

Таблица 1.1

Математические операторы и функции
+
Сложение
Вычитание
*
Умножение
/
Деление
\
Обратное деление, результатом этой операции является деление
правого аргумента на левый
abs
Модуль величины
mod
Остаток от деления
exp
Экспонента
log
Натуральный логарифм
log10
Десятичный логарифм
log2
Логарифм по основанию 2
sqrt
Квадратный корень
Тригонометрические функции
cos
Косинус аргумента, заданного в радианах
cosd
Косинус аргумента, заданного в градусах
sin
Синус аргумента, заданного в радианах
sind
Синус аргумента, заданного в градусах
tan
Тангенс аргумента, заданного в радианах
tand
Тангенс аргумента, заданного в градусах
cot
Котангенс аргумента, заданного в радианах
cotd
Котангенс аргумента, заданного в градусах
sinc
Синк аргумента
Обратные тригонометрические функции
acos
Арккосинус, результат возвращается в радианах
acosd
Арккосинус, результат возвращается в градусах
asin
Арксинус, результат возвращается в радианах
asind
Арксинус, результат возвращается в градусах
atan
Арктангенс, результат возвращается в радианах и лежит в интервале [–p/2; p/2]
atand
Арктангенс, результат возвращается в градусах и лежит в интервале [–90; 90]
atan2
Арктангенс, результат возвращается в радианах и лежит в интервале [–p; p]
acot
Арккотангенс, результат возвращается в радианах и лежит в интервале [–p/2; p/2]
acotd
Арккотангенс, результат возвращается в градусах и лежит в интервале [–90; 90]

Раздел 1. Основные сведения о среде программирования MATLAB

Таким же образом можно вычислять и более сложные выражения:

>> 2.0 * sind(30) + tand(45) * abs(sind(-30))

ans =
     1.5000

При делении положительного числа на 0 будет получено значение

+ ∞ (или в терминах Matlab – «Inf»), при делении отрицательного
числа на 0 будет получено значение – ∞ (или в терминах Matlab – 
«–Inf»). При делении 0 на 0 результатом будет NaN (сокращение от
слов Not-a-Number). Это продемонстрировано на следующем примере:

>> 2 / 0

ans =
     Inf

>> -5 / 0

ans =
    -Inf

>> 0 / 0

ans =
     NaN

Значения Inf, -Inf и NaN могут использоваться в выражениях,

что часто случается (неявно) в результате ошибок при вычислении. Работа некоторых операций с Inf, -Inf и NaN показана в следующем
примере:

>> 10 + Inf

ans =
     Inf

>> 5 - Inf

ans =
     -Inf

>> 10 / Inf

ans =
     0

>> Inf * 0

Доступ онлайн
280 ₽
В корзину