стр. 1
(всего 5)

СОДЕРЖАНИЕ

>>

• Файл взят с сайта
• http://www.natahaus.ru/

• где есть ещё множество интересных и
редких книг.

• Данный файл представлен исключительно
в
• ознакомительных целях.

• Уважаемый читатель!
• Если вы скопируете данный файл,
• Вы должны незамедлительно удалить его
• сразу после ознакомления с содержанием.
• Копируя и сохраняя его Вы принимаете на
себя всю
• ответственность, согласно действующему
• международному законодательству .
• Все авторские права на данный файл
• сохраняются за правообладателем.
• Любое коммерческое и иное
использование
• кроме предварительного ознакомления
запрещено.

• Публикация данного документа не
преследует за
• собой никакой коммерческой выгоды. Но
такие документы
• способствуют быстрейшему
профессиональному и
• духовному росту читателей и являются
рекламой
• бумажных изданий таких документов.

• Все авторские права сохраняются за
правообладателем.
• Если Вы являетесь автором данного
документа и хотите
• дополнить его или изменить, уточнить
реквизиты автора
• или опубликовать другие документы,
пожалуйста,
• свяжитесь с нами по e-mail - мы будем
рады услышать ваши

пожелания.
А. М. Половко
П. Н. Бутусов




M f t T L A B


ДЛЯ СТУДЕНТА




Санкт-Петербург
«БХВ-Петербург»
2005
УДК 681.3.06(075.8)
ББК 32.973.26-018.2я73
П52

Половко А. М., Бутусов П. Н.
П52 MATLAB для студента. — СПб.: БХВ-Петербург,
2005. — 3 2 0 с : ил.
ISBN 5-94157-595-5
Содержится описание компьютерных технологий решения
математических задач с помощью системы MATLAB. Приво-
дятся примеры на все методы, изложенные в книге. Представ-
лены варианты задач для индивидуального обучения. Описа-
ны методики решения задач управления и создания приложе-
ний для решения типовых задач.

Для студентов, аспирантов, преподавателей технических вузов
и специалистов, применяющих математические вычисления
в профессиональной деятельности


УДК 681.3.06(075.8)
ББК32.973.26-018.2я73


Группа подготовки издания:
Главный редактор Екатерина Кондукова
Зам. главного редактора Людмила Еремеевская
Зав. редакцией Григорий Добин
Редактор Анна Кузьмина
Компьютерная верстка Ольги Сергиенко
Корректор Зинаида Дмитриева
Дизайн обложки Игоря Цырульникова
Зав. производством Николай Тверских


Лицензия ИД № 02429 от 24.07.00. Подписано в печать 12.07.05.
Формат 60х901/,в. Печать офсетная. Усл. печ, л. 20.
Тираж 4000 экз. Заказ No 1196
"БХВ-Петербург", 194354, Санкт-Петербург, ул. Есенина, 5Б.
Санитарно-эпидемиологическое заключение на продукцию
Ne 77.99.02.953.Д.006421.11.04 от 11.11.2004 г. выдано Федеральной службой
по надзору в сфере защиты прав потребителей и благополучия человека.
Отпечатано с готовых диапозитивов
в ГУП "Типография "Наука"
199034, Санкт-Петербург, 9 линия, 12




ISBN 5-94157-595-5 © Половко А. М., Бутусов П. R, 2005
© Оформление, издательство "БХВ-Петербург", 2005
Оглавление


Введение 11

Глава 1. Основы интерфейса MATLAB 15
1.1. Окна системы MATLAB 16
1.1.1. Окно Command Window 16
1.1.2. Окно Workspace 18
1.1.3. Окно Current Directory 19
1.1.4. Окно Command History 20
1.1.5. Окно Launch Pad 20
1.2. Главное меню системы -
. 21
1.2.1. Меню File 21
1.2.2. Меню Edit 23
1.2.3. Меню View 24
1.2.4. Меню Web 24
1.2.5. Меню Window 25
1.2.6. Меню Help 25
1.3. Панель инструментов '. 25

Глава 2. Язык общения с MATLAB 27
2.1. Символы и операторы языка 27
2.1.1. Специальные символы 27
2.1.2. Операторы отношения 29
2.1.3. Логические операторы 31
2.2. Числа, переменные, функции языка 32
2.2.1. Числа в MATLAB 32
2.2.2. Переменные и константы 34
Оглавление

2.3. Функции и команды общения 35
2.3.1. Команды управления окном 36
2.3.2. Сообщение об ошибках и их исправление 36
2.3.3. Сохранение результатов вычислений 37
2.3.4. Завершение работы 38

Глава 3. Создание приложений для решения типовых
задач 39
3.1. Постановка задачи 39
3.2. Знакомство с инструментом 41
3.2.1. Меню и панель инструментов 43
Меню Layout 43
Меню Tools 44
3.2.2. Панель элементов управления 44
3.3. Файлы, генерируемые системой в процессе создания
приложения 45
3.4. Работа над приложением 47
3.4.1. Первый этап 48
3.4.2. Второй этап 51
3.4.3. Третий этап 54

Глава 4. Специальные вычисления 61
4.1. Табулирование функции 61
4.2. Вычисление суммы элементов массива чисел 64
4.3. Вычисление произведения элементов чисел 65
4.4. Вычисление производных 66
4.5. Вычисление пределов 69
4.6. Разложение функции в степенной ряд 72
4.7. Определение экстремумов функции 77
4.7.1. Функция fmin ('fun', xl, х2) 80
4.7.2. Функция fmin ('fun', xl, x2, options) 82
4.8. Интегральные преобразования 83
4.8.1. Преобразование Лапласа 83
Функция Laplace(F) 85
Функция Laplace(F,s) 87
Функция Laplace(F,w,s) 87
4.8.2. Решение дифференциальных уравнений с помощью
преобразования Лапласа 88
4.8.3. Обратное преобразование Лапласа 90
Оглавление

Глава 5. Вычисление математических функций 93
5.1. Элементарные функции 93
5.1.1. Алгебраические и арифметические функции 94
5.1.2. Тригонометрические функции 98
5.1.3. Обратные тригонометрические функции 99
5.1.4. Гиперболические функции 100
5.1.5. Обратные гиперболические функции 101
5.1.6. Функции комплексного аргумента 102
5.2. Специальные математические функции 104
5.2.1. Гамма-функция 104
5.2.2. Бета-функция (Эйлеров интеграл первого рода) 106
5.2.3. Функции ошибок 107
5.2.4. Интегральная показательная функция 109
5.2.5. Функции Эйри 109
5.2.6. Функции Лежандра 112
5.2.7. Функции Бесселя 113
5.3. Функции пользователя 114

Глава 6. Алгебра векторов и матриц 116
6.1. Создание векторов и матриц , 116
6.2. Преобразование матриц 118
6.2.1. Вызов на экран и замена элементов матрицы 118
6.2.2. Изменение размера вектора или матрицы 119
6.2.3. Математические операции с векторами и матрицами 121
Определитель матрицы : 121
Транспонирование матрицы 122
След матрицы 122
Обратная матрица 123
Единичная матрица 123
Образование матрицы с единичными элементами 124
Образование матрицы с нулевыми элементами 125
Вектор равноотстоящих точек 126
Перестановка элементов матрицы 126
Создание матрицы с заданной диагональю 127
Создание массивов со случайными элементами 129
Поворот матрицы 132
Выделение треугольных частей матрицы 133
Вычисление магического квадрата 134
6.3. Математические операции над векторами и матрицами 135
6.3.1. Примеры образования функций от векторов и матриц 138
Оглавление

Глава 7. Визуализация вычислений 140
7.1. Двухмерная графика 140
7.1.1. Функция plot(x,y) 141
7.1.2. Функция plot (x,y,s) 142
7.1.3. Функция plot(xl,yl,sl, x2,y2,s2, ...,xn,yn,sn) 146
7.1.4. Функции построения графиков в логарифмическом
масштабе 150
7.1.5. Графики в полярной системе координат 151
7.1.6. Создание гистограмм 152
7.2. Трехмерная графика 153

Глава 8. Алгоритмы и технологии решения уравнений 156
8.1. Алгоритмы решения алгебраических и трансцендентных
уравнений 156
8.1.1. Метод дихотомии (половинного деления) 156
8.1.2. Метод хорд 157
8.1.3. Метод касательных 159
8.1.4. Комбинированный метод (метод хорд и касательных) 161
8.1.5. Метод итераций 162
8.2. Технология решения алгебраических и трансцендентных
уравнений в среде MATLAB 166
8.2.1. Технология решения уравнений с помощью функции
166
solveQ
8.2.2. Технология определения вещественных корней уравнения
169
с помощью §утя\тл fzero()
8.2.3. Технология определения корней многочлена с помощью
функции rootsQ 174
8.2.4. Варианты алгебраических и трансцендентных уравнений
для индивидуальных заданий или решений 175
175
8.3. Методы решения систем алгебраических уравнений
8.3.1. Решение систем линейных алгебраических уравнений 182
Выбор начальных приближений 186
Условия сходимости итерационного процесса 186
Признак окончания вычислений 188
8.3.2. Алгоритмы метода итерации 188
8.3.3. Сравнительная оценка точных и итерационных методов 190
8.4. Компьютерные технологии решения систем линейных
алгебраических уравнений в среде MATLAB 190
8.4.1. Решение системы линейных уравнений с помощью
определителей 191
Оглавление

8.4.2. Матричный метод решения систем линейных уравнений.... 192
8.4.3. Решение систем линейных уравнений с помощью функции
194
solve()
8.5. Компьютерные технологии решения систем нелинейных
уравнений 196
Функция cqs() 198
8.6. Варианты уравнений для индивидуального решения 199
Задание 1. Решение систем линейных алгебраических
уравнений 199
Задание 2. Решение систем нелинейных алгебраических
уравнений 204

Глава 9. Решение дифференциальных уравнений.... 205
9.1. Формулировка задачи 205
9.2. Приближенные аналитические методы решения
дифференциальных уравнений 206
9.2.1. Метод последовательного дифференцирования 206
9.2.2. Метод неопределенных коэффициентов 208
9.2.3. Метод последовательных приближений 209
9.3. Численные методы решения дифференциальных уравнений 210
9.3.1. Метод Эйлера 210
9.3.2. Усовершенствованные методы Эйлера 212
Метод Эйлера— Коши 212
Усовершенствованный метод Эйлера 212
Усовершенствованный метод Эйлера — Коши
с итерационной обработкой результатов 213
9.3.3. Метод Рунге — Кутты 213
9.4. Компьютерные технологии решения дифференциальных
уравнений 216

Глава 10. Алгоритмы и технологии вычисления
интегралов 220
10.1. Методы и алгоритмы вычисления интегралов 220
10.1.1. Формулы прямоугольников 221
10.1.2. Формула трапеций 221
10.1.3. Формула парабол (Симпсона) 222
10.2. Численные методы вычисления интеграла в системе MATLAB. 223
10.2.1. Метод трапеций 223
Функция cumtrapz(x,y) 226
Функция trapzfy) 228
Функция trapz(x,y) 229
8 Оглавление

10.2.2. Численное интегрирование с помощью квадратурных
формул 231
Метод парабол (Симпсона) 231
Функция quad('fim',a,b) 232
Функция quad('fun',a,b,tol) 232
Функция ablquad('fun',a,b,c,d) 233
Функция quad8('fun',a,b) , 234
10.3. Аналитические методы вычисления интеграла 236
10.3.1. Функция intQ вычисления неопределенного
и определенного интегралов 236
10.3.2. Вычисление кратных интегралов 239
10.3.3. Вычисление несобственных интегралов 240
10.4. Примеры вычисления интегралов 241

Глава 11. Методы и компьютерные технологии
интерполяции 248
11.1. Элементы теории 248
11.1.1. Выбор вида функции интерполяции 250
Графоаналитический способ 250
Способ линеаризации нелинейных функций 254
Анализ табличных разностей 255
Использование специальных программ автоматизации
интерполяции 256
11.1.2. Определение коэффициентов функции интерполяции 257
11.1.3. Проверка адекватности модели 257
11.2. Интерполяция точная в узлах. Универсальный метод 258
11.2.1. Интерполяция линейными функциями 258
11.2.2. Интерполяция нелинейными функциями 262
11.2.3. Сплайн-интерполяция 264
11.2.4. Интерполяция точная в узлах 265
11.3. Интерполяция, приближенная в узлах (аппроксимация) 267
11.3.1. Функция isqcurvefitO 267
11.3.2. Полиномиальная аппроксимация 270
11.3.3. Интерполяция кубическими полиномами 272

Глава 12. Компьютерные технологии решения задач
управления 274
12.1. Задачи управления 274
12.2. Функции MATLAB для создания передаточных функций
звеньев системы 275
12.2.1. Функция tf() 275
12.2.2. ФункцииpoleQ и zeroQ 277
Оглавление

12.2.3. Функции rootsQ wpolyQ 279
12.2.4. Функция convQ 280
12.2.5. ФункцияpolyvalQ 281
12.3. Операции с передаточными функциями звеньев 283
12.3.1. Сложение передаточных функций 283
12.3.2. Функция pzmapO 284
12.3.3. Функция seriesQ 286
12.3.4. ФункцияparallelQ 287
12.3.5. ФункцияfeedbackO 288
12.3.6. Функция minrealQ 292
12.4. Исследование переходных процессов в системах управления 293
12.4.1. Функция step() 295
12.5. Частотные характеристики системы 296
12.5.1. Амплитудно-фазовая характеристика системы 299
12.5.2. Диаграмма Никольса 300
12.6. Пример анализа динамики системы управления 302
12.6.1. Образование передаточной функции разомкнутой
системы 303
'.
12.6.2. Определение нулей и полюсов передаточной
функции G(S) 303
12.6.3. Расположение нулей и полюсов на комплексной
плоскости 304
12.6.4. Анализ устойчивости системы 304
12.6.5. Исследование качества переходного 304
12.6.6. Получение передаточной функции замкнутой системы... 306
12.6.7. Определение нулей и полюсов передаточной функции
замкнутой системы и расположение их на комплексной
плоскости 306
12.6.8. Переходные процессы замкнутой системы с жесткой
отрицательной обратной связью 308
12.6.9. Исследование устойчивости и качества переходных
процессов системы управления при гибкой отрицательной
обратной связи 308
12.7. Индивидуальные задания для исследования динамики систем
управления 309
12.7.1. Задание 1 309
12.7.2. Задание 2 314
Постановка задачи....: 314
Варианты индивидуальных заданий и передаточных
функций 315

Литература 318
Введение

Компьютерная алгебра— новое научное направление в инфор-
матике. Его появление тесно связано с созданием универсальных
математических программных средств символьной математики,
таких как Mathematica, Maple, Derive, Mathcad, MATLAB и др.
Каждая из этих систем является уникальной. В ней имеется свой
язык общения, наборы математических функций, алгоритмы и
методы решения математических задач.
Уникальность системы MATLAB определяется следующими ее
особенностями:
• система ориентирована на матричные операции;
• наличие большого числа библиотечных функций, делающих
ее одновременно специализированной математической систе-
мой, предназначенной для решения ряда научных и инженер-
ных задач (анализ и синтез систем управления, теория нечет-
ких множеств, планирование эксперимента и многих других
задач);
• возможность диалога с другими математическими системами
(Maple, Mathcad, MS Excel) расширяет возможности MATLAB,
ликвидирует один из ее недостатков — слабую, по сравнению
с другими системами, символьную математику.
В результате этих особенностей MATLAB — одна из наиболее
мощных математических систем, пользующаяся большой попу-
лярностью пользователей.
12 Введение

За рубежом изданы десятки книг по системе MATLAB. В нашей
стране их очень мало. При этом большинство из них недоступны
широкому читателю, т. к. изданы малыми тиражами в основном
внутривузовскими издательствами для своих внутренних потреб-
ностей.
Настоящая книга предназначена для широкого, круга пользовате-
лей. Ее особенностями являются:
• подробное изложение компьютерных технологий решения ма-
тематических задач, а не только перечисление функций
MATLAB, предназначенных для решения математических за-
дач;
• большое количество примеров: практически на каждый из ма-
тематических методов;
• краткое изложение сущности математических методов реше-
ния задач в среде MATLAB;
• отсутствие в книге сведений о системе MATLAB, не имеющих
прямого отношения к решению математических задач (исто-
рия создания, инсталляция системы, специальная графика
и т. п.);
• краткость и одновременно ясность и достаточная полнота из-
ложения компьютерных технологий решения математических
задач;
• ориентация на студента технического вуза.
Книгу целесообразно использовать при проведении упражнений
на персональном компьютере, например, по вычислительной ма-
тематике, информатике и многим другим предметам.
При проведении лабораторных работ по общетехническим и спе-
циальным дисциплинам, требующим элементов научных иссле-
дований, без универсальных программных систем не обойтись.
Здесь будет полезна система MATLAB.
Систему MATLAB целесообразно использовать при обработке
результатов лабораторных работ по любому из предметов, где
они проводятся.
Книга просто необходима студенту при курсовом и дипломном
проектировании. Она должна занять достойное место в библио-
Введение 13

теке студента уже с первого курса, где он проходит обучение по
математике и информатике.
Не следует только думать, что если книга адресована студенту, то
она ограничена по содержанию. Это далеко не так. Ее специфика
лишь в методике изложения компьютерных технологий решения
математических задач: большое число примеров, индивидуаль-
ных заданий, наличие сведений из теории решения математиче-
ских задач, простота и краткость изложения.
По полноте излагаемых методов и особенно компьютерных тех-
нологий решения математических задач в среде MATLAB она не
уступает другим, например, приведенным в списке литературы
в конце книги.
Книга будет полезна преподавателям, аспирантам и соискателям,
научным работникам и всем, кому по роду деятельности прихо-
дится решать математические задачи.
ГЛАВА 1


Основы интерфейса MATLAB

Общение пользователя с системой MATLAB, как и с любой дру-
гой математической системой, происходит с помощью клавиату-
ры и мыши. Набирая соответствующие символы, являющиеся
кодами операций, и щелкая мышью по кнопкам, пользователь
вводит данные, обращается к функциям и командам, получает
решение.
Обширный пользовательский интерфейс включает множество
операций и требует знания (вернее запоминания) большого коли-
чества функций, команд и кнопок. К ним, в частности, относятся:
• главное меню системы;
• кнопки панели инструментов;
• окна системы;
• редактор файлов;
• общение с приложениями;
• графическая система;
• справочная система
и многое другое.
Все это можно изучить и активно им пользоваться только в про-
цессе решения задачи. Изучать элементы интерфейса в полном
объеме в начале работы с системой смысла не имеет.
16 Глава 1

В данной главе в конспективной форме описываются только из-
начально необходимые окна системы, главное меню и панель ин-
струментов.


1.1. Окна системы MATLAB
Общение пользователя с системой происходит посредством пяти
окон. Рассмотрим каждое из них.

1.1.1. Окно Command Window
Окно Command Window (Окно команд) является для пользова-
теля наиболее важным. Посредством этого окна (рис. 1.1) вводят-
ся математические выражения, получаются результаты вычисле-
ний, а также выдаются сообщения, посылаемые системой. Данное
окно становится доступным пользователю сразу же после запуска
программы. Математические выражения пишутся в командной
строке после знака приглашения » .
Наберем в строке ввода выражение
» х=2+3

Для выполнения действия нажмем клавишу <Enter>. Результат
виден на рис. 1.1.
Если мы захотим исправить одну из цифр, то у нас ничего не по-
лучится. Невозможность редактирования ранее введенной коман-
ды простой установкой курсора в нужную строку является одной
из особенностей системы MATLAB. Для того чтобы отредакти-
ровать ранее введенную команду, необходимо установить курсор
в строку ввода и воспользоваться клавишами <Т> и <i>. Эти
клавиши позволяют пролистать стек введенных ранее команд и
оставить в строке ту команду, которая необходима. Команду
можно выполнить сразу (нажав клавишу <Enter>) или после ре-
дактирования.
Окно команд имеет еще два управляющих элемента, в правом
верхнем углу. Это кнопка закрытия окна [х], а расположенная
левее — кнопка отделения окна от интерфейса системы [TJ- По-
Основы интерфейса MATLAB 17


еле нажатия на эту кнопку окно становится автономным, имею-
щим собственное меню. Возврат окна в общий интерфейс проис-
ходит посредством выбора из его главного меню пунктов View |
Dock Command Window (Вид | Пристыковать окно команд). За-
метим, что такими же кнопками снабжены оставшиеся четыре
окна, поэтому о них (кнопках) в дальнейшем мы упоминать не
будем.

— Окно команд
— Рабочая область


˜3J
DG
S
•h Cca Type "htlp too_a _ah" tot
a eb.
c ol xpi cce
bA
Е
, «eLecc '-1UTLAB Help" Ito» Uie H«lp мпц.




-iL
l- i




lujj-j • з -> •''
м а. & «»
I*»,




— Окно истории команд

— Вкладка для перехода
в окно текущего каталога .
Рис. 1.1. Главное окно системы

Рассмотренное окно является основным и, в принципе, при рабо-
те с системой MATLAB можно было бы обойтись без других.
18 Глава 1

Однако наличие остальных окон делают диалог с компьютером
легким и комфортным.

1.1.2. Окно Workspace
В процессе работы используются переменные различных типов.
Созданные переменные хранятся в специально отведенной облас-
ти памяти компьютера. Они не исчезают сами по себе, а только
при выходе из программы или с помощью специальных команд.


Кнопка запуска Раскрывающийся список
Simulink и кнопка установки
текущего каталога




— Окно текущего каталога

Окно запуска приложений
Рис. 1.2. Окно Workspace
Основы интерфейса MATLAB 19

При этом переменные (точнее их значения) можно использовать
в любом вводимом нами математическом выражении. Окно
Workspace (Рабочая область) предоставляет пользователю спи-
сок всех переменных, хранящихся в рабочем пространстве
(рис. 1.2). Выбрать можно любую переменную, просмотреть ее
содержимое или выполнить какие-либо другие действия.
Упомянутые действия выполняются посредством контекстного
меню (нужно щелкнуть правой кнопкой мыши по имени пере-
менной в списке).


1.1.3. Окно Current Directory
Окно Current Directory (Текущий каталог) является аналогом
известной программы Проводник, но имеет для MATLAB свое
особое предназначение (рис. 1.3).

f-te E V W V "
* e tWOw IMp
wa
ib
»* It.™»
M MG
cm+o


I pr Ot..
mo as
t uaiftg Toolbox P
•" i Type "help tuolbox^path cftche" tot BOIC info.

select 'I U Lc Help" from the Kelp menu.
T fB
TUJI Urn о aet stAiced
. double «
5etP$№...
. Preference*.., » х-г+з
1
вд* setup...
Print....

1
.0.,



..: iM
ы.ч.
E**MATIAB
j


x-2+3




:^Sfv i «j 0 J$ M




Рис. 1.З. Окно Current Directory
20 Глава 1

Дело в том, что, кроме работы с математическими выражениями
из командного окна, пользователь также может работать с фай-
лами (об этом речь пойдет далее). К тому же математические
функции, которые мы используем, физически представляют
собой файлы, названные по именам функций. В этих файлах за-
писаны программы, реализующие функции. Таким образом,
пользователь постоянно использует файлы. Например, указывая
встроенную функцию, мы фактически пишем имя файла (без
расширения), в котором хранится текст программы. И где в таком
случае система должна искать требуемый файл? Она будет искать
его в текущем каталоге или в пути доступа.

1.1.4. Окно Command History
Все команды, которые набираются в командной строке
Command Window (Окно команд), автоматически образуют спи-
сок, который и выводится в окне Command History (История
команд). Чем полезен этот список? Если появилась необходи-
мость повторить ранее выполненную команду, то она отыскива-
ется в списке Command History (История команд), и, дважды
щелкнув по ней левой кнопкой мыши, можно команду выпол-
нить.
Можно выполнить нужную последовательность команд из ко-
мандной строки и получить соответствующую последователь-
ность команд в Command History (История команд). Нескольки-
ми простыми действиями полученная последовательность может
быть преобразована в программу. Содержимое данного окна не
теряется после выхода из системы и выключения компьютера.
Удалить список команд можно только с помощью меню.

1.1.5. Окно Launch Pad
Окно Launch Pad (Панель запуска) содержит дерево файловой
системы, где отображены только установленные на компьютере
программные продукты, входящие в систему MATLAB. С по-
мощью этого окна можно запустить любой из них. Те же дейст-
вия легко осуществить посредством кнопки Start (Пуск), распо-
ложенной в левом нижнем углу окна MATLAB.
Основы интерфейса MATLAB 21


1.2. Главное меню системы
Посредством меню выполняются наиболее общие действия сис-
темы MATLAB. Меню имеет стандартный вид и организацию,
присущие многим программным продуктам. Умение работать с
меню может существенно облегчить диалог пользователя с ком-
пьютером. В этом разделе мы рассмотрим более подробно только
те пункты меню, которые необходимы для решения поставлен-
ных в книге задач. При этом нужно иметь в виду, что глубоко
изучить и активно использовать меню можно только в процессе
решения задач.
Главное меню MATLAB содержит следующие шесть пунктов:
• File (Файл) — работа с файлами;
• Edit (Правка) — редактирование;
• View (Вид) — управление окнами;
• Web — связь с фирмой-разработчиком через Интернет;
• Window (Окно) — связь с окнами системы;
• Help (Справка) — связь со справочной системой MATLAB.
Рассмотрим главное меню системы, его команды и операции.

1.2.1. Меню File
Меню содержит большое число команд. Будем их называть в
дальнейшем пунктами главного меню системы.
Пункт New (Создать) предоставляет возможность создать новый
объект, а именно:
• M-File (М-файл) — файл с расширением т , в который запи-
сываются программы; ,
• Figure (Фигура) — специальное окно для вывода графической
информации. При решении математических задач обычно ис-
пользуются функции, которые создают такие окна автомати-
чески, поэтому данный пункт меню при визуализации вычис-
лений используется редко;
• Model (Модель) — модель Simulink;
22 Глава 1

• G U I — графический интерфейс пользователя (Graphical User
interface), используется для создания собственных приложе-
ний.
Пункт Open (Открыть) позволяет выполнить открытие сущест-
вующего объекта посредством стандартного диалогового окна.
Открытие объекта можно также осуществить из окна Current
Directory (Текущий каталог).
Пункт Close Current Directory (Закрыть текущий каталог) за-
крывает окно текущего каталога.
Пункт Import Data (Импортировать данные) производит импорт
в среду MATLAB разнородных данных (анимационные ролики,
звуковые файлы, числовые данные в различных форматах и т. д.).
Пункт Save Workspace As (Сохранить рабочую область как)
выполняет сохранение рабочей области. Созданные и используе-
мые переменные хранятся в специальной рабочей области
(Workspace). При выходе из программы рабочая область автома-
тически уничтожается вместе со всеми переменными. Чтобы это-
го не происходило, необходимо сохранить рабочую область на
диске в виде файла с расширением mat. Проще всего это сделать
посредством пункта меню Save Workspace As (Сохранить рабо-
чую область как), можно также использовать команду
save имя_файла.mat. В дальнейшем сохраненная рабочая область
загружается либо с помощью пункта меню Import Data (Импор-
тировать данные), либо командой load имя_файла.
Пункт Set Path (Задать путь) организовывает работу с путями
доступа. При обращении к конкретному файлу (например, к
функции) система MATLAB не требует указания пути. Это про-
исходит потому, что MATLAB использует специальный список
папок с путями доступа к ним. Когда вводится имя файла
(с целью его поиска), система автоматически просматривает все
известные ей папки, имеющиеся в списке. При инсталляции
MATLAB список путей доступа строится автоматически. Для со-
хранения файлов во вновь созданной папке необходимо внести
имя папки и путь доступа в общий список с помощью пункта ме-
ню Set Path (Задать путь). При вызове данного пункта появляется
диалоговое окно с элементами управления (кнопками и списком).
Основы интерфейса MATLAB 23

Наиболее актуальными являются кнопки Add Folder (Добавить
папку), Add With Subfolders (Добавить вместе с вложенными
папками). Нажав одну из кнопок, можно указать путь к желаемой
папке, после чего она будет добавлена к списку путей доступа.
Кнопка Save сохраняет сделанные изменения.
Пункт Preferences (Настройка) изменяет некоторые свойства ра-
бочей среды системы MATLAB.
Следующие три пункта меню: Page Setup (Параметры страницы),
Print (Печать) и Print Selection (Печать выделенной области)
служат для вывода информации на принтер, являются стандарт-
ными для многих пакетов и объяснений не требуют.
Меню File (Файл) имеет список последних открывавшихся фай-
лов. Он содержит имена файлов с путями доступа и позволяет
загрузить эти файлы двойным щелчком мыши.
Пункт Exit MATLAB (Выход) позволяет завершить работу с про-
граммой.

1.2.2. Меню Edit
Пункты Undo (Отменить), Redo (Повторить), Cut (Вырезать),
Сору (Копировать), Paste (Вставить), Select All (Выделить все) и
Find (Найти) полностью соответствуют своему стандартному
предназначению и в комментариях не нуждаются. Первые пять из
перечисленных пунктов меню продублированы кнопками на па-
нели инструментов.
Пункт Paste Special (Специальная вставка) используется для об-
мена с внешними программами (например, MS Excel), числовыми
данными посредством буфера обмена.
Пункт Clear Command Window (Очистить окно команд) очища-
ет командное окно.
Пункт Clear Command History (Очистить историю команд)
очищает окно предыстории.
Пункт Clear Workspace (Очистить рабочую область) очищает
рабочую область от хранящихся в ней переменных.
24 Глава 1

1.2.3. Меню View
Среда системы MATLAB располагает несколькими рабочими ок-
нами. Поэтому необходимо иметь инструмент, позволяющий
управлять появлением, расположением и содержимым этих окон.
Таким инструментом является меню View (Вид).
Пункт Desktop Layout (Разметка рабочего стола) помогает задать
количество и расположение окон путем исполнения пунктов
подменю.
Пункт Undock (Отстыковать) позволяет сделать автономным (от-
делить окно от интерфейса системы) выделенное в данный мо-
мент (активное) окно. После выбора данного пункта надпись ме-
няется на Dock (Пристыковать) с названием активного окна. Ме-
няется также на противоположную и функция пункта меню.
Теперь при его выборе автономное окно снова прикрепляется к
общему окну системы.
Следующая группа пунктов меню с названиями окон является
группой переключателей. Каждый из этих пунктов может сделать
видимым или невидимым соответствующее окно.
Пункт Current Directory Filter (Фильтр текущего каталога) име-
ет подменю пунктов-переключателей. С помощью этих переклю-
чателей можно выводить в окно Current Directory (Текущий ка-
талог) определенные типы файлов.
Пункт Workspace View Options (Параметры отображения рабо-
чей области) позволяет менять состав информации о переменных
в списке окна Workspace (Рабочая область). Здесь можно также
отсортировать список переменных по различным критериям.

1.2.4. Меню Web
Меню Web позволяет, при наличии подключения к Интернету,
заходить в различные разделы сайта фирмы-изготовителя про-
граммного продукта. Здесь можно ознакомиться с новой инфор-
мацией о системе, скачать ее, получить консультацию по интере-
сующим вопросам. Для осуществления последних двух возмож-
ностей необходимо быть зарегистрированным пользователем.
Основы интерфейса MATLAB 25

Кроме того, выбрав пункт MATLAB File Exchange (Расширения),
можно иметь свободный доступ к огромной библиотеке откры-
тых примеров использования MATLAB для решения большого
спектра задач.

1.2.5. Меню Window
Отображает список всех открытых дополнительных окон и слу-
жит для оперативного перехода к нужному окну. Это могут быть
графические окна или окна, содержащие текст программы (рабо-
чие окна в этом списке не отображаются). Пункт меню Close All
(Закрыть все) позволяет закрыть все окна, кроме рабочих.

1.2.6. Меню Help
Содержит большое количество полезной информации о MATLAB
на английском языке.


1.3. Панель инструментов
Кнопки панели инструментов обеспечивают выполнение боль-
шинства необходимых команд решения математических задач.
Всплывающие подсказки при обращении к кнопкам сообщают об
их содержании.
Кнопки панели инструментов имеют следующие назначения:
• New file (Создать) — выводит окна редактора файлов;
• Open file (Открыть) — открывает окна загрузки файлов;
• Cut (Вырезать) — вырезает выделенный файл и помещает
в буфер обмена;
• Сору (Копировать) — копирует выделенный файл в буфер
обмена;
• Paste (Вставить) — переносит фрагмент из буфера обмена в
строку ввода;
• Undo (Отменить) — отменяет результат предыдущей опера-
ции;
26 Глава 1

• Workspace Browser (Просмотр рабочей области)— выводит
окно ресурсов рабочей области;
• Path Browser (Просмотр пути) — выводит окно файловой
структуры;
• New Simulink Model (Создать модель Simulink)— создает
модель Simulink;
• Help Window (Справка) — открывает окна справки.
X


ГЛАВА 2


Язык общения с MATLAB


2.1. Символы и операторы языка
Операторы языка — это символы операций над данными, назы-
ваемыми операндами. В MATLAB применяются все общеприня-
тые операнды. Однако некоторые из них имеют ряд особенно-
стей. Следует всегда иметь в виду, что большинство операторов
языка MATLAB относится к матричным операциям. Например,
операторы * и / вычисляют произведение и частное от деления
двух массивов векторов и матриц. Если же необходимо вычис-
лить почленное умножение или деление массивов, то следует
применять операторы . * и ./. В MATLAB также используется
оператор деления справа налево (\ или . \).
Подробно эти и другие, часто используемые операторы языка
с большим числом примеров, рассмотрены в главе 6.
Полный список операторов можно получить по команде help ops.

2.1.1. Специальные символы
Специальными являются следующие символы языка MATLAB:
• ( ) — круглые скобки;
• [ ] — квадратные скобки;
• { } — фигурные скобки;
• . — десятичная точка;
28 Глава 2

• , • точка с запятой;
-—
• : — двоеточие;
• , — разделитель (запятая);
• .. — родительский каталог;
• . . . — продолжение строки;
• % — комментарий;
• ! — вызов команды операционной системы;
• = — присвоение;
• ' — кавычка.
Рассмотрим назначение специальных символов.
• : — оператор образования массива данных переменной; фор-
мирует из векторов и матриц подвекторы и подматрицы.
Представляется в следующих формах:
• i:k — аналог вектора [i, i + 1, i + 2, ..., к], например, 1:5 —
[12 3 4 5];
• i : j : k — аналог оператора i : k, существует при j > 0, k > i
и л и при <0, i > k;
J

• м (:, i) — выбирается i-й столбец из матрицы м;
• M(i,:) — выбирается i-я строка из матрицы м;
• м(:,:)—аналогичен м (:);
• M(i:k) — а н а л о г и ч е н M ( i ) , M ( i + i ) , M(i+2), ..., M(k);
• M(:,i,k) — аналогичен M(:,i), M(:,i+1), M(: , i + 2 ) , ...,
M(:,k);

• M(:) — представление массива м в виде столбца;
• м (:,:, к) — к-я строка трехмерного массива м.
• Оператор круглые скобки ( ) используется для задания аргу-
ментов функции, порядка выполнения операций в математи-
ческих выражениях, указания индексов элементов вектора
или матрицы. Например: sin(x), (x-i)/(x+i), x(v), x(i),
M(A,B), M(:,i).
Язык общения с MATLAB 29

• Оператор квадратные скобки [ ] формирует векторы и матри-
цы, например: [12 3 4], [1,2,3; 3 5 2].
• Оператор фигурные скобки { } применяется для формирова-
ния массивов ячеек.
• Десятичная точка (.) служит для отделения целой части числа
от дробной. Кроме того, она применяется как знак указания
операций над элементами символьных переменных. Примеры:
3.2, .15, 2 . * 1 о д ( х ) + х . Л 2 - х . / с о з ( х ) .

• Точка с запятой (,-) применяется в конце операторов для по-
давления вывода информации на экран, а также внутри круг-
лых скобок для отделения строк матрицы.
• Запятая (,) используется для разделения элементов вектора и
матрицы.
• Знак процента (%) воспринимается программой как начало
комментария.
• Символ равенства (=) является знаком присваивания имени
математическому выражению: х=[1 2 3 4 5], x=cos(a), х=2.5.
• Одиночная кавычка (') применяется для указания того, что
математическое выражение содержит символьные перемен-
ные, например: Y='x+exp(-a)+i=o\
• Знак восклицания (!) указывает, что за ним следует команда
операционной системы.
• Знак из двух точек (..) определяет, что осуществляется пере-
ход на один уровень вверх по дереву каталогов (родительский
каталог).
• Знак три точки (и более) (...) — продолжение строки. Его ис-
пользуют при переносе текста на другую строку.

2.1.2. Операторы отношения
Операторы отношения служат для сравнения двух операндов.
Если операнды одинаковы, то программа возвращает 1 (True),
в противном случае — 0 (False).
Глава 2
30

Правила записи операндов приведены в табл. 2.1.

Таблица 2.1. Операторы отношения

Имя оператора Примеры
Функция Обозначение
а=Ь
eq ==
Равно
а˜=Ь
пе —
Не равно
<
It х<у
Меньше
> х>у
gt Больше
<=
le х<=у
Меньше или равно
>=
ge х>=у
Больше или равно


Операторы = и ˜= сравнивают действительные и комплексные
переменные. При этом сравниваются действительные и ком-
плексные части числа.
Операторы <, <=, >, >= при сравнении комплексных чисел сравни-
вают только действительные части числа.
Примеры представлены в табл. 2.2.

Таблица 2.2. Примеры использования операторов отношения

Выражение Функция Результат
ans =
» 5==5 » eq(5, 5)
1
» 3˜=3 » ne(3, 3) ans =
0
» 2+3i==2+i » eq(2+3i, 2+i) ans =
0
» eq(2+3i, 2+3i) ans =
» 2+3i==2+3i
1
ans =
» 2+3i˜=2+3i » ne(2+3i, 2+3i)
0
Язык общения с MA TLAB 31

Таблица 2.2 (окончание)

Выражение Функция Результат
» 3.2O.21 ans -
» lt(3.2<3.21)
1
ans =
» 2.3+8i<2.4+i » l t ( 2 . 3 + 8 i , 2.4+i)
1
» 3.8-3i>5+i g t ( 3 . 8 - 3 1 , 5+i) ana =
»
0
ans =
» 3<2.999 » l e ( 3 , 2.999)
0
ans =
» 3>=2.999 » g e ( 3 , 2.999)
1



2.1.3. Логические операторы
Логические операторы предназначены для реализации логиче-
ских операций: дизъюнкции (ИЛИ), конъюнкции (И), инверсии
(НЕ), исключающего ИЛИ.
Правила записи операторов приведены в табл. 2.3.

Таблица 2.3. Логические функции и операторы

Имя
Функция Оператор
and &
И
or I
ИЛИ
˜
not НЕ
xor -
ИЛИ НЕ



Пример 2.1

» 3| 'х'
ans =
1
32 Глава 2

» 'X ' I˜'X '
ans •
-1

» 'x'&˜'x'
ans =
0

» xl=[l,2,a,4];
» x2=[l,0,0,1];
» and(xl,x2) » xl&x2
или


ans =
10 0 1
or(xl,x2) » xl|x2
» или


ans =
11 1 1
» not(xl) » ˜xl
или


ans =
0 0 0 0
» not(x2) » ˜x2
или


ans =
0 11 0
» xor(xl,x2)
ans =
0 11 0


Из примеров видно, что программа числа и символы, отличные
от нуля, воспринимает как 1.


2.2. Числа, переменные,
функции языка
2.2.1. Числа в MATLAB
Числа в MATLAB могут быть положительными и отрицательны-
ми, целыми и дробными, действительными и комплексными. Они
могут представляться с фиксированной и плавающей точкой,
с мантиссой и порядком (в научной форме).
Язык общения с MATLAB 33_

Особенности представления чисел в MATLAB:
• мнимая единица кодируется с помощью двух символов: i
или j ;
• целая часть числа от дробной отделяется точкой;
• отделение порядка числа от мантиссы осуществляется симво-
лом е;
• знак + положительного числа не ставится, знаки + и - положи-
тельного и отрицательного чисел называются унарными.
Формат чисел определяет их вид на экране монитора. А все вы-
числения в MATLAB осуществляются в формате двойной точно-
сти. Ввод чисел выполняется в любом формате по желанию поль-
зователя.
Устанавливается формат чисел с помощью следующих команд:
• format chort — короткое представление (5 знаков числа);
• format chort e — короткое представление в экспоненциаль-
ной форме (5 знаков мантиссы, 3 знака порядка);
• format lonq — длинное представление числа (15 знаков);
• format lonq e — длинное представление в экспоненциальной
форме (15 знаков мантиссы, 3 знака порядка);
• format hex — шестнадцатеричный формат;
• format bank — представление в денежном выражении (2 знака
после точки).

| Пример 2.2 !

Необходимо представить число 5/7 во всех форматах.
Решение:
• format chort—0.7143;
• format chort e—7.1429e 00l;
• format lonq—0.71428571428571;
• format lonq e—7.142857342857143e 00l;
• format bank — 0.71.

2 3ак. 1196
Глава 5
104


5.2. Специальные
математические функции
Специальные математические функции часто приходится исполь-
зовать при решении широкого класса научных и практических
задач. Это решение дифференциальных уравнений специального
вида, вычисление интегралов, задачи вероятностного характера и
многое другое. Существует большое число специальных функ-
ций. Их подробное описание приводится в книгах [9, 15, 16].
В системе MATLAB реализованы не все функции. Из имеющихся
мы ограничимся изучением только тех, которые наиболее часто
могут использоваться студентами вузов. Технология вычисления
специальных функций в системе MATLAB практически не отли-
чается от технологии вычисления элементарных функций. Поль-
зователь вводит имя функции и значения аргументов. Нажимает
клавишу <Enter> и получает значение специальной функции. При
этом аргументом может быть число, вектор или матрица. Если
аргументом является вектор или матрица, то откликом также бу-
дет вектор или матрица того же размера. При этом функция вы-
числяется для каждого элемента вектора или матрицы.


5.2.1. Гамма-функция
Гамма-функция имеет много интегральных представлений. Вот
одно из них:




Это представление справедливо при целом п. Гамма-функция в
этом случае отождествляется с факториалом целого числа, при
этом справедливыми являются следующие выражения:

Г{я + 1)=иГ(я),
Г(1) = Г(2) = 1,
Вычисление ма тема тических функций 105




Гамма-функция существует для случая п целого и дрюбного, по-
ложительного и отрицательного, действительного и комплекс-
ного.
Гамма-функция в MATLAB имеет представление для случая
только действительного положительного п.
Синтаксис гамма-функции таков:
gamma (n) ,
где п —действительное положительное число.

i Пример 5.11

Необходимо вычислить гамма-функцию вектора [0,, 1, 2, б,
-3, 4.2].

Решение:
» п=[0, 1, 2, 6, - 3 , 4.2])
ans -
inf 1.0000 1.0000 120.0000 inf 7.7567

Из примера видно, что гамма-функцию чисел 0 и -3 программа
не вычисляет (в результате получается i n f — бесконечность).
Следует иметь в виду, что при вычислении факториала целого
числа
gamma(n)=(n-l)!
Если, например, необходимо вычислить 5!, то функция gamma()
будет иметь ВИД: gamma (6).
106 Глава 5

В системе MATLAB гамма-функция имеет следующие два вари-
анта:
gammainc(x, n)
gammaln(n)

Функция gammainc(x,n) вычисляет неполную гамма-функцию
элементов х, п.




Элементы х и п должны быть вещественными и положительными.
Функция gammaln(n) возвращает логарифм числа gamma (n).

Пример 5.12

» gammainc(3, 2)
ans =
0.8009
» gammaln([2, 3.5, 7.3, 15])
ans =
0 1.2010 7.1479 25.1912
» gammaln([2, 3; 7.3, 1; 4, 12.5])
ans =
0 0.6931
7.1479 0
1.7918 18.7343


5.2.2. Бета-функция
(Эйлеров интеграл первого рода)
Бета-функция представляется в виде следующего интеграла:




Она имеет большое число различных интегральных представле-
ний. При практических расчетах наиболее часто бета-функция
вычисляется через гамма-функции:
Вычисление математических функций 107




Система MATLAB имеет следующие варианты этой функции:
b e t a ( x , у)
b e t a i n c ( z , x, у)
b e t a l n ( x , у)

Функция beta (х, у) возвращает бета-функцию при положитель-
ных значениях х, у.
Функция betainc(z,x,y) возвращает неполную бета-функцию
действительных аргументов х, у. Аргумент z должен быть в ин-
тервале [0; 1].
Функция betaln(x,y) вычисляет натуральный логарифм бета-
функции.

:•••••••••••• • •"••:



! Пример 5.13

» b e t a ( 2 , 4)
ans =
0.0500
» b e t a i n c ( 0 . 5 , 2, 4)
ans =
0.0125
» b e t a l n ( 2 , 4)
ans =
-2.9957



5.2.3. Функции ошибок
Система MATLAB имеет следующие варианты функций ошибок:
• erf (x) — функция ошибок, определяемая по выражению:
2
erf(x)-— \e'2dt;
108 Глава 5

• erfc(x) — остаточная функция ошибок, определяемая выраже-
нием:

erfc(x) = I -erf (x) = -т= \/dt;
4%\
• erfcx (x) — масштабированная функция ошибок, вычисляемая
по следующему выражению:

erfcx [х) = ех erfc(;c);
• erfinv(x) — вычисляет обратную функцию ошибок при усло-
вии -1 < х < 1.
Аргумент х в функциях ошибок может быть числом, вектором и
матрицей. Элементами вектора и матрицы являются действи-
тельные числа (положительные и отрицательные).

Пример 5.14

Пусть функция х является вектором х=[2 -о.з 4.5 о.6]. Необ-
ходимо определить все виды ошибок.
Решение и его результаты будут иметь вид:
» erf (х) .
ans =
0.9953 -0.3286 1.0000 0.6039
» erfc(x)
ans =
0.0047 1.3286 0.0000 0.3961
» erfcx(x)
ans =
. 0.2554 1.4537 0.1225 0.5678
» erfinv(x)
ans =
NaN -0.2725 NaN 0.5951

В последнем случае решения нет (NaN) для значений х=2 и х=4.5.
Эти числа находятся вне диапазона допустимых значений.
Вычисление математических функций 109


5.2.4. Интегральная
показательная функция
Существует большое число интегральных показательных функ-
ций. В MATLAB реализована только одна из них, которая
имеет вид:




В системе MATLAB эта функция представляется так:
expint(x)

где х — число, вектор или матрица, элементами которых могут
быть положительные и отрицательные, действительные и ком-
плексные числа.


I Пример 5.15 |

» e x p i n t ( [ 1 , 2, - 3 , 6 . 2 , 2+31])
ans =
0.2194 0.0489 - 9 . 9 3 3 8 - 3 . 1 4 1 6 i 0.0003 0.0248 + 0 . 0 2 0 3 i
» e x p i n t ( [ 1 . 2 , 3; 2, 7 . 5 ; l - 2 i , 0.7])
ans =
0.1564 0.0130
0.0489 0.0001
-0.1268 + 0 . 0 3 5 И 0.3738



5.2.5. Функции Эйри
Функция Эйри является решением дифференциального уравне-
ния второго порядка




Существуют два вида функции Эйри — первого и второго рода.
110 Глава 5

Функция первого рода Ai(x, «) при х = 0 имеет вид:




в противном случае
I
Л
С х З -?>х3 6
6

Ai(x, «) = •
2тг
где:



{Зк) !
о

-(.
1
Х
О'
(ЗА: +

= 0 имеет вид

ш
Bi(jt, ?г)
Функция второго рода при х

1
3 4/3 х

К

в противном случае
^2/3
СхЗ | / 3 4 Dx
ВЦх, п)- 5
где:



(3*)!
й
Вычисление математических функций ///

В системе MATLAB функции Эйри представляются в следующем
виде:
• airy(z) — функция Эйри первого рода;
• airy (k, z) — функция Эйри второго рода.
Аргументы функции имеют значения:
• z — число, вектор или матрица, элементы которых являются
положительными или отрицательными, действительными или
комплексными числами;
• к — определяет следующие варианты результатов:
• к=о выдает результат тот же, что и функция airy (z);
• k=i выдает производную функции Эйри первого рода;
• к=2 выдает функцию Эйри второго рода;
• к=з выдает производную функции Эйри второго рода.
В системе MATLAB функции Эйри вычисляются при одном фик-
сированном значении суммы ряда п.

| Пример 5.16

» у=[0, 3.2, -3.2, 2+3i];
» airy(у)

стр. 1
(всего 5)

СОДЕРЖАНИЕ

>>