Вы находитесь на странице: 1из 47

Камчатский государственный технический университет

Кафедра информационных систем

В.В. Портнягина

ИНФОРМАТИКА

ОСНОВЫ РАБОТЫ В MATLAB


Методические указания к выполнению лабораторных работ
для студентов специальности 220201
«Управление и информатика в технических системах»
очной формы обучения

Петропавловск-Камчатский
2008
УДК 681.51(07)
ББК 32.81я73
П60

Рецензент
Г.А. Пюкке,
кандидат технических наук,
профессор кафедры систем управления КамчатГТУ

Портнягина, Вера Васильевна

П60 Информатика. Основы работы в MATLAB: Методические указа-


ния к выполнению лабораторных работ для студентов специальности
220201 «Управление и информатика в технических системах» очной
формы обучения / В.В. Портнягина. – Петропавловск-Камчатский: Кам-
чатГТУ, 2008. – 45 с.

Методические указания составлены в соответствии с требованиями


к обязательному минимуму содержания дисциплины «Информатика», входя-
щей в основную образовательную программу подготовки специалистов
по специальности 220201 «Управление и информатика в технических систе-
мах» государственного образовательного стандарта высшего профессиональ-
ного образования.
Рекомендовано к изданию решением президиума учебно-
методического совета КамчатГТУ (протокол № 2 от 20 декабря 2007 г.).

УДК 681.51(07)
ББК 32.81я73

© КамчатГТУ, 2008
© Портнягина В.В., 2008
2
ОГЛАВЛЕНИЕ

Лабораторная работа № 1
Графический интерфейс пользователя и простейшие вычисления ......... 4

Лабораторная работа № 2
Символьные вычисления в MATLAB ...................................................... 25

Лабораторная работа № 3
Построение графиков .................................................................................. 36

Литература .................................................................................................... 45

3
Лабораторная работа №1
ГРАФИЧЕСКИЙ ИНТЕРФЕЙС ПОЛЬЗОВАТЕЛЯ
И ПРОСТЕЙШИЕ ВЫЧИСЛЕНИЯ
Цели работы:
1. Знакомство с интерфейсом пакета MATLAB и основными положе-
ниями.
2. Знакомство с простыми типами данных, вводом данных и визуали-
зацией результата вычислений.
3. Получение практических навыков работы в диалоговом режиме.
4. Работа с комплексными числами и комплексными функциями.
ТЕОРЕТИЧЕСКИЙ МАТЕРИАЛ
MATLAB – это высокопроизводительный язык для технических расче-
тов. Он включает в себя вычисления, визуализацию и программирование
в удобной среде, где задачи и решения выражаются в форме, близкой к ма-
тематической. Типичное использование MATLAB – это:
– математические вычисления;
– создание алгоритмов;
– моделирование;
– анализ данных, исследования и визуализация;
– научная и инженерная графика;
– разработка приложений, включая создание графического интерфейса.

1. Графический интерфейс пользователя MATLAB


Графический интерфейс пользователя MATLAB состоит из 4-х незави-
симых окон, имеющих следующие названия: Workspace, Command Window,
Command History, Current Director (рис. 1).

Рис. 1. Графический интерфейс пользователя пакета MATLAB


4
Окно Workspace (браузер рабочей области) используется для отображе-
ния состояния зарезервированной области памяти компьютера, в которой
хранятся переменные, используемые в данном сеансе работы.
Окно Command Window является основным окном, в котором вводятся
исполняемые команды и отображаются результаты вычислений.
Окно Command History используется для отображения содержимого бу-
фера, в котором хранятся выполненные ранее команды пакета.
В окне Current Directory отображается список файлов и вложенных па-
пок активного в данный момент каталога.
Для управления окнами используются стандартные средства операци-
онной системы Windows. Для закрытия окон, отображение которых пред-
ставляется пользователю в данный момент нецелесообразным, используется
команды меню View. Наиболее удобна для работы форма графического ин-
терфейса, когда на экране компьютера одновременно отображены окна
Command Window, Command Histor, иногда окно Workspace.

2. Структура окна Command Window


2.1. Главное окно
После запуска MATLAB на экране монитора мы видим окно Command
Window (главное окно), содержащее: меню, инструментальную линейку с
кнопками, клиентскую часть окна со знаком приглашения.
Это окно обычно называется командное окно системы МАТLAB, его
структура аналогична структуре Windows-приложений (рис. 2). Здесь про-
исходят вычисления, и мы видим приглашение >>.
2.2. Зона просмотра и зона редактирования
Командное окно MATLAB разделено на две принципиально различных
зоны: зону просмотра и зону редактирования (рис. 2).

Рис. 2. Структура командного окна MATLAB


5
Исправление информации в зоне просмотра невозможно. В зоне про-
смотра, можно с помощью мыши выделить любой фрагмент текста, затем
скопировать его в буфер обмена операционной системы Windows, затем
вставить данный фрагмент в командную строку MATLAB или документ,
созданный в каком-либо приложении, работающем под управлением опера-
ционной системы Windows.
2.2. Понятие сессии
Сеанс работы с МАТLAB принято называть сессией (session). Сессия –
это текущий документ, отражающий работу пользователя с системой. В ней
имеются строки ввода, вывода, сообщения об ошибках. Входящие в сессию
определения переменных и функций, расположенные в рабочей области па-
мяти (но не саму сессию) можно записать на диск (файлы с расширением
MAT), используя команду SAVE.
2.3. О переносе строки в сессии
В некоторых случаях вводимое математическое выражение может ока-
заться настолько длинным, что для него не хватит одной строки.
В этом случае часть выражения можно перенести на новую строку с помо-
щью знака многоточия ..., то есть три или более точек (рис. 3).
Этот прием может быть полезен для создания наглядных документов, у
которых предотвращается заход строк в невидимую область окна.
Максимальное число символов в одной строке — 4096 (в ранних версиях
оно ограничивалось 256), но со столь длинными строками работать неудобно.

Рис. 3. Ввод команды, размещающейся на нескольких логических строках ввода


Очистка командного окна MATLAB осуществляется командой clc,
которая, однако, оставляет неизменным содержимое буфера команд и ра-
бочего пространства MATLAB. Действительно, если после этого набрать
имя ранее вычисленной переменной d, то после нажатия клавиши ENTER мы
снова увидим ее значение:
>> d
d=
28 . 8496
6
3. Браузер рабочей области – окно Workspace
Значения переменных, вычисленных в течение текущего сеанса работы,
сохраняются в специально зарезервированной области оперативной памяти
компьютера, называемой рабочим пространством MATLAB (браузером ра-
бочей области MATLAB – окно Workspace), которое мы видим на рис. 4.

Рис. 4. Окно просмотра рабочей области памяти


Браузер рабочей области служит для просмотра рабочей области памя-
ти. Для вызова браузера в командном окне надо набрать: DesktopÆ
Workspase.
3.1. Возможности браузера
Браузер позволяет:
– просмотреть существующие в памяти объекты;
– редактировать их содержимое;
– удалять объекты из памяти, т.к. матрицы и графики могут занимать
многие мегабайты (выделить нужное и delete);
– векторы и матрицы могут занимать большой объем памяти, цветные
изображения с высоким разрешением, могут занимать в памяти объем, ис-
числяемый многими мегабайтами, и в этом случае оценка их размера стано-
вится необходимой.
Для вывода содержимого объекта достаточно выделить его имя с помо-
щью мыши и щелкнуть па кнопке Open. Объект можно открыть и двойным
щелчком на его имени в списке. Кнопка Delete уничтожает объект с задан-
ным именем и удаляет его из памяти, а кнопка Close закрывает окно про-
смотра.
3.2. Окно Array Editor
Из окна Workspase двойным щелчком левой кнопки мыши по строке,
содержащей имя переменной, можно вызвать окно Array Editor, в котором
можно просматривать и менять значения выбранной переменной. Для при-
мера на рис. 5. показано соответствующее окно, появившееся после двойно-
го клика по строке, содержащей имя переменной а.

7
Рис. 5. Три окна – Сcommand Window, Workspace и Array Editor

4. Интерфейс редактора М-файлов


Для подготовки, редактирования и отладки m-файлов служит специаль-
ный многооконный редактор. Он выполнен как типичное приложение
Windows (рис. 6).
Редактор М-файлов можно вызвать командой Edit из командной строки
или командой File Æ New Æ M-file.

Рис. 6. Интерфейс редактора М-файлов


После этого в окне редактора можно:
– создавать свой файл,
– пользоваться средствами его отладки и запускать свой файл, исполь-
зуя команду Save As меню File редактора.
На первый взгляд может показаться, что редактор/отладчик – просто
лишнее звено в цепочке «пользователь – MATLAB». И в самом деле, текст
файла можно было бы ввести в окно системы и получить тот же результат.
Однако на деле редактор/отладчик выполняет важную роль. Он позво-
ляет создать m-файл (программу) без той многочисленной «шелухи», кото-
рая сопровождает работу в командном режиме. Редактор обеспечивает син-
таксический контроль файла.

8
4.1. Отладочные средства редактора
Редактор имеет и другие важные отладочные средства:
– он позволяет устанавливать в тексте файла специальные метки, име-
нуемые точками прерывания (останова). При их достижении вычисления
приостанавливаются, и пользователь может оценить промежуточные резуль-
таты вычислений (например, значения переменных), проверить правиль-
ность выполнения циклов и т. д.;
– редактор позволяет записать файл в текстовом формате и сохранить
ваш файл.
4.2. Отображение имен переменных из рабочего пространства
Для отображения имен переменных, размещенных в данный момент в
рабочем пространстве, нужно выполнить команду who
Данная команда отображает в рабочем окне список всех переменных,
находящихся в рабочем пространстве MATLAB. Выполнив команды, пред-
ставленные на рис. 6, и далее команду
>> who
получим
Your variables are:
xy
>>
4.3. Сохранения в файле содержимого рабочего пространства
После завершения сеанса работы с MATLAB все ранее вычисленные
переменные теряются. Для сохранения в файле на диске компьютера содер-
жимого рабочего пространства, нужно выполнить команду меню
FileÆ Save Workspace as...
После чего появляется стандартное диалоговое окно операционной сис-
темы Windows для выбора каталога на диске и имени файла. Для файлов, в
которых MATLAB сохраняет значения переменных из рабочего пространст-
ва нужно использоваться расширение mat, поэтому такие файлы принято на-
зывать «МАТ-файлами».
4.4. Цветовые выделения и синтаксический контроль
Редактор/отладчик m-файлов выполняет синтаксический контроль про-
граммного кода по мере ввода текста. При этом используются следующие
цветовые выделения:
– ключевые слова языка программирования – синий цвет;
– операторы, константы и переменные – черный цвет;
– комментарии после знака % – зеленый цвет;
– символьные переменные (в апострофах) – зеленый цвет;
– синтаксические ошибки – красный цвет.
Благодаря цветовым выделениям вероятность синтаксических ошибок
резко снижается. Однако далеко не все ошибки диагностируются. Ошибки,
9
связанные с неверным применением операторов или функций (например,
применение оператора – вместо + или функции cos(x) вместо sin(x) и т. д.),
не способна обнаружить ни одна система программирования. Устранение
такого рода ошибок – дело пользователя, отлаживающего свои алгоритмы
и программы.

5. MATLAB в роли суперкалькулятора


Система MATLAB создана таким образом, что любые (подчас весьма
сложные) вычисления можно выполнять в режиме прямых вычислений, то
есть без подготовки программы. Режим работы с MATLAB, в котором поль-
зователь вводит команды в командной строке, задавая математические вы-
ражения или обращаясь к функциям MATLAB, называется интерактивным
режимом.
Это превращает MATLAB в необычайно мощный калькулятор, который
способен производить не только обычные для калькуляторов вычисления
например:
– выполнять арифметические операции и вычислять элементарные
функции);
– операции с векторами и матрицами;
– комплексными числами;
– рядами и полиномами;
– задать и вывести графики различных функций от простой синусои-
ды до сложной трехмерной фигуры.
5.1. Некоторые основные положения
Работа с системой в режиме прямых вычислений носит диалоговый ха-
рактер и происходит по правилу «задал вопрос, получил ответ». Пользова-
тель набирает на клавиатуре вычисляемое выражение, редактирует его (если
нужно) в командной строке и завершает ввод нажатием клавиши Enter.
– >> – служит для указания ввода исходных данных;
– данные вводятся с помощью простейшего строчного редактора;
– ; – точка с запятой отделяет строки матриц, а точка с запятой в конце
оператора (команды) отменяет вывод результата на экран;
– [ ] – квадратные скобки используют для создания матриц и векторов;
– – пробел служит для разделения элементов матриц;
– , – запятая применяется для разделения элементов матриц и опера-
торов в строке ввода;
– : – двоеточие используется для указания диапазона (интервала изме-
нения величины) и в качестве знака групповой операции над элементами
матриц;
– ! – отмечает начало команды DOS;
– ’ – апостроф указывает на символьные строки;
– % – знак процента обозначает начало комментария;

10
– если не указана переменная для значения результата вычислений, то
MATLAB назначает такую переменную с именем ans;
– знаком присваивания является привычный для нас знак равенства =;
– встроенные функции (например, sin и другие) записываются строч-
ными буквами и их аргументы указываются в круглых скобках;
– результат вычислений выводится в строках вывода (без знака >>).

5.2. Ориентация на матричные операции


Напомним, что двумерный массив чисел или математических выраже-
ний принято называть матрицей, а одномерный массив называют вектором
(рис. 7).
Векторы и матрицы характеризуются размерностью и размером. Раз-
мерность определяет структурную организацию массивов в виде
– строки (размерность 1);
– страницы (размерность 2);
– куба (размерность 3) и т. д.
Так что вектор является одномерным массивом, а матрица представляет
собой двумерный массив с размерностью 2.
MATLAB допускает задание и использование многомерных массивов,
но мы пока ограничимся только одномерными и двумерными массивами –
векторами и матрицами.
Размер вектора – это число его элементов. Размер матрицы определя-
ется числом ее строк т и столбцов п. Обычно размер матрицы указывают
как mxn.
Матрица называется квадратной, если т = n, то есть число строк мат-
рицы равно числу ее столбцов.
Векторы и матрицы могут иметь имена, например V – вектор или М –
матрица. Элементы векторов и матриц рассматриваются как индексирован-
ные переменные, например:
– V2 – второй элемент вектора V;
– М23 – третий элемент второй строки матрицы М.

Матрица с элементами разно-


го типа

Рис. 7. Примеры векторов и матриц


Система MATLAB выполняет сложные и трудоемкие операции над век-
торами и матрицами даже в режиме прямых вычислений без какого-либо
программирования. Ею можно пользоваться как мощнейшим калькулятором,
в котором наряду с обычными арифметическими и алгебраическими дейст-
виями могут использоваться такие сложные операции как:
11
– инвертирование матрицы;
– вычисление ее собственных значений;
– решение системы линейных уравнений;
– вывод графиков функций и т.д.
5.3. Ввод вектора или матрицы
5.3.1. Ввод вектора
Две записи для вектора – V = [l 2 3 4] и V = [l, 2, 3, 4] – являются иден-
тичными. Список заключается в квадратные скобки. Для выделения п-го
элемента вектора V используется выражение V(n). Оно задает соответст-
вующую индексированную переменную.
5.3.2 Ввод матрицы
Матрица задается в виде ряда векторов, представляющих ее строки и
заключенных в квадратные скобки. Для разделения элементов векторов ис-
пользуется пробел или запятая, а для отделения одного вектора от другого –
точка с запятой. Для выделения отдельного элемента матрицы М использу-
ется выражение вида M(j,i), где М – имя матрицы, j – номер строки и i – но-
мер столбца.
Для ввода матрицы нужно:
>> М = [l, 2; 4, 5] или
>> М = [l, 2; 4, 5] или
>> М = [l, 2 <ENTER>
4 5] <ENTER>
M=
1 2
4 5
>> M (3 ) – индексированная переменная
ans=
4
5.3.3. Выполнение простых векторных операций
В примере, рассмотренном ниже, задан четырехэлементный вектор V
со значениями элементов 1, 2, 3 и 4. Далее вычисляются функции синуса и
экспоненты с аргументом в виде вектора, а не скаляра.
>> u = [1 2 3 4]
u =
1 2 3 4
>> sin (u)
ans =
0. 8415 0. 9093 0. 1411 -0. 7568
>> exp (u)
ans =
2. 7183 7. 3891 20. 0855 54. 5982
12
>> u * 3
ans =
3 6 9 12
>> u + 2
ans =
3 4 5 6
В языках программирования высокого уровня вычисления с массивами
осуществляются поэлементно, поэтому в соответствующих процедурах при-
ходится программировать вычисление выражений для каждого элемента
массива. В MATLAB этого не требуется, так как в М-языке имеются группо-
вые операции, выполняемые сразу над всем массивом. В частности, в М-
языке MATLAB можно производить групповые вычисления над массивами,
используя обычные математические функции, которые в традиционных язы-
ках программирования работают только со скалярными аргументами. На-
пример, для вычисления таблицы значений функции косинус в равноот-
стоящих точках отрезка [0; π/2], отстоящих друг от друга на расстоянии 0,01,
достаточно использовать всего две команды
>> х = 0:0.01 : pi / 2;
>> y = cos (х) ;
>> whos x у
Name Size Bytes Class
x 1x158 1264 double array
у 1x158 1264 double array
Grand total is 316 elements using 2528 bytes
Аналогично вычисляются функции от двумерных массивов:
>> А = [0 pi / 6 ; pi / 4 pi / 2 ; 5 * pi / 6 3 * pi / 4]
A=
0 0. 5236
0. 7854 1. 5708
2. 6180 2. 3562

>> sin (A)


ans =
0 0. 5000
0. 7071 1. 0000
0. 5000 0. 7071

6. Основные объекты MATLAB


6.1. Понятие о математическом выражении
Центральным понятием всех математических систем является матема-
тическое выражение. Оно задает то, что должно быть вычислено в числен-
ном (реже символьном) виде. Вот примеры простых математических
выражений:
13
2 + 3
2.301 * sin (x ^ 2)
4 + ехр ( 3 ) / 5
sqrt (y) / 2
sin (pi / 2)
Математические выражения строятся на основе:
– чисел;
– констант;
– переменных;
– операторов,
– функций и разных спецзнаков.
Далее даются краткие пояснения о сути этих понятий.
6.2. Действительные числа
Число – простейший объект языка MATLAB, представляющий количе-
ственные данные. Числа можно считать константами, имена которых совпа-
дают с их значениями. Числа могут быть:
– целыми;
– дробными;
– с фиксированной точкой;
– плавающей точкой (научном формате с указанием мантиссы и по-
рядка числа).
Ниже приводятся примеры представления чисел:
0
2
-3
2.301
0.00001
123.456 е - 24
- 234.456 е 10
6.2.1. Основное при работе с числами
– в мантиссе чисел целая часть отделяется от дробной точкой,
– для отделения порядка числа от мантиссы используется символ е,
– знак «плюс» у чисел не проставляется, а знак «минус» у числа назы-
вают унарным минусом.
– пробелы между символами в числах не допускаются,.
– ввод чисел возможен в любом удобном для пользователя виде,
– вычисления происходят в формате с двойной точностью,
– для установки формата используется команда format. задание фор-
мата сказывается только при выводе чисел.
В MATLAB не принято делить числа на целые и дробные, короткие и
длинные и так далее, как это принято в большинстве языков программирова-
ния, хотя задавать числа в таких формах можно.
14
Операции над числами выполняются всегда в формате с двойной том-
ностью. Такой формат удовлетворяет подавляющему большинству требова-
ний к численным расчетам, но совершенно не подходит для символьных вы-
числений с произвольной (абсолютной) точностью. Символьные вычисления
MATLAB может выполнять с помощью специального пакета расширения
Symbolic Math Toolbox.
7. Константы и системные переменные
Константа – это предварительно определенное числовое или символь-
ное значение, представленное уникальным именем. Числа (например, 1, -2 и
1.23) являются безымянными числовыми константами.
Другие виды констант в MATLAB принято называть системными пере-
менными, поскольку, с одной стороны, они задаются системой при ее загруз-
ке, а с другой — могут переопределяться.
7.1. Основные системные переменные, применяемые в системе MATLAB
– i или j – мнимая единица (корень квадратный из -1);
– pi -число л = 3.1415926...;
– eps – погрешность для операций над числами с плавающей точкой
(2-52 );
–realmin – наименьшее число с плавающей точкой (2 -1022 );
–realmax – наибольшее число с плавающей точкой (21023 );
–inf – значение машинной бесконечности;
–ans – переменная, хранящая результат последней операции и обычно
вызывающая его отображение на экране дисплея;
– NaN – указание на нечисловой характер данных (Not-a-Number).
Вот примеры применения системных переменных:
>> 2 * pi
ans =
6.2832
>> eps
ans =
2.2204 е - 016
>> realmin ans =
2.2251e - 308
>> realmax
ans =
1.7977 e + 308
>> 1 / 0
Warning: Divide by zero,
ans =
Inf
>> 0 / 0
Warning: Divide by zero,
ans =
NaN
15
7.1.1. Основные положения для системных переменных
– как отмечалось, системные переменные могут переопределяться.
можно задать системной переменной eps иное значение, например
eps = 0.0001;
– однако важно то, что их значения по умолчанию задаются сразу по-
сле загрузки системы;
– поэтому неопределенными, в отличие от обычных переменных, сис-
темные переменные не могут быть никогда.
7.2. Символьная константа
Символьная константа – это цепочка символов, заключенных в апост-
рофы, например:
' Hel1 о my friend! '
' Привет '
'2+3'
Если в апострофы помещено математическое выражение, то оно не вы-
числяется и рассматривается просто как цепочка символов. Так что
' 2 + 3 ' не будет возвращать число 5.
Однако с помощью специальных функций преобразования символьные
выражения могут быть преобразованы в вычисляемые. Соответствующие
функции преобразования будут рассмотрены в дальнейшем. Символьные
вычисления MATLAB может выполнять с помощью специального пакета
расширения Symbolic Math Toolbox (рассмотрим в Лабораторной работе №2).

8. Текстовые комментарии
Поскольку MATLAB используется для достаточно сложных вычисле-
ний, важное значение имеет наглядность их описания. Она достигается, в ча-
стности, с помощью текстовых комментариев. Текстовые комментарии вво-
дятся с помощью символа %, например, так:
% Комментарий

9. Переменные и присваивание им значений


Переменные – это имеющие имена объекты, способные хранить некото-
рые данные. В зависимости от этих данных переменные могут быть
– числовыми или символьными;
– векторными или матричными.
В системе MATLAB можно задавать переменным определенные значе-
ния. Для этого используется операция присваивания, вводимая знаком равен-
ства:
Имя_переменной = Выражение
Типы переменных заранее не декларируются. Они определяются выра-
жением, значение которого присваивается переменной. Так, если это выра-
жение – вектор или матрица, то переменная будет векторной или матричной.

16
9.1. Имя переменной (ее идентификатор)
– может содержать сколько угодно символов, но запоминается и иден-
тифицируется только 31 начальный символ.
– имя любой переменной не должно совпадать с именами других
переменных, функций и процедур системы, то есть оно должно быть
уникальным.
– имя должно начинаться с буквы, может содержать буквы, цифры и
символ подчеркивания _. недопустимо включать в имена переменных пробе-
лы и специальные знаки, например +, -, *, / и т. д., поскольку в этом случае
правильная интерпретация выражений становится невозможной.
– желательно использовать для обозначений переменных содержа-
тельные имена, например speed_l для переменной, обозначающей скорость
первого объекта.
– переменные могут быть обычными и индексированными, то есть
элементами векторов или матриц .
– могут использоваться и символьные переменные, причем символь-
ные значения заключаются в апострофы, например s = ' Demo '.
9.2. Уничтожение определений переменных
Как мы уже рассматривали, в памяти компьютера переменные занимают
определенное место, называемое рабочим пространством (workspace). Для
очистки рабочего пространства используется функция clear в разных фор-
мах, например:
– clear – уничтожение определений всех переменных;
– clear х – уничтожение определения переменной х;
– clear a, b, с – уничтожение определений нескольких переменных.
Уничтоженная (стертая в рабочем пространстве) переменная становится
неопределенной. Использовать такие переменные нельзя, и такие попытки
будут сопровождаться выдачей сообщений об ошибке.
10. Операторы и функции
Оператор – это специальное обозначение для определенной операции
над данными – операндами. Например, простейшими арифметическими опе-
раторами являются знаки суммы +, вычитания –, умножения * и деления /.
Операторы используются совместно с операндами. Например, в вы-
ражении 2+3 знак + является оператором сложения, а числа 2 и 3 – опе-
рандами.
Следует отметить, что большинство операторов относится к матрич-
ным операциям, что может служить причиной серьезных недоразумений.
Например, операторы умножения * и деления / вычисляют произведение и
частное от деления двух массивов, векторов или матриц. Есть ряд специ-
альных операторов, например оператор \ означает деление справа налево, а
операторы .* и ./ означают почленное умножение и деление массивов.

17
Следующие примеры поясняют сказанное на примере операций с векто-
рами:
>> Vl = [2 4 6 8]
VI =
2 4 6 8
>> V2 = [l 2 3 4]
V2 =
1 2 3 4
>> V1 / V2
Ans =
2
>> V1 .* V2
ans =
2 8 18 32
10.1. Арифметические операторы и функции
Арифметические операторы являются самыми распространенными и
известными. В отличие от большинства языков программирования, в систе-
ме MATLAB практически все операторы являются матричными, то есть,
предназначены для выполнения операций над матрицами. В табл. 1 приво-
дится список арифметических операторов и синтаксис их применения.
Таблица 1

Функция Название Оператор Синтаксис


plus Плюс + M1 + M2
unplus Унарный плюс + + M
minus Минус -- M1 - M2
unminus Унарный минус - - M2
mtimes Матричное умножение * M1 * M2
times Почленное умножение массивов .* A1.* A2
mpower Возведение матрицы в степень ^ M1 ^ x
power Почленное возведение матрицы в степень A1. ^x
mldivide Обратное(справа налево) деление матриц \ M1 \ M2
mrdivide Деление матриц слева направо / M1 / M2
idivide Почленное деление массивов справа налево .\ A1. \ A2
rdivide Почленное деление массивов слева направо ./ A1. / A2
kron Тензорное умножение Кронекера kron kron ( X, Y )

10.2. Элементарные встроенные функции


В тригонометрических функциях углы измеряются в радианах. Все
функции могут использоваться в конструкции вида y = func(x), где func –
имя функции. Обычно в такой форме задается информация о функции в сис-
теме MATLAB. Мы, однако, будем использовать для функций, возвращаю-
щих одиночный результат, более простую форму func(x). Форма [y,z,...] =
func(x,...) будет использоваться только в тех случаях, когда функция возвра-
щает множественный результат.
18
10.3. Алгебраические и арифметические встроенные функции
– abs(X) возвращает абсолютную величину для каждого числового
элемента вектора X. Если X содержит комплексные числа, abs(X) вычисляет
модуль каждого числа. Примеры:
>> abs (-5)
ans =
5
>> abs ([l - 2i 3i 2 + 3i)
ans =
2.2361 3.0000 3.6056
– ехр (Х) возвращает экспоненту для каждого элемента X.
>> ехр ([1 2 3])
ans =
2.7183 7.3891 20.0855
– factor (n) возвращает вектор-строку, содержащую простые множите-
ли числа п. Для массивов эта функция неприменима. Пример:
>> f = factor (5)
f=
120
– sqrt(x)-вычисление квадратного корня из элементов массива х. Для
отрицательных и комплексных элементов Х функция принимает комплекс-
ные значения.
> sqrt (25)
ans =
5
>> sqrt (-25)
ans =
0 + 5.0000i
– Вычисление логарифмов
1) log (x)-натуральный логарифм,
2) log2 (x)-возвращает логарифм по основанию 2 элементов массива х.
3) log10 (x)- по основанию 10
Примеры:
>> x = [1. 2 3. 34 5 2. 3]
x=
1. 2000 3. 3400 5. 0000 2. 3000
>> log (x)
ans =
0. 1823 1. 2060 1. 6094 0. 8329
>> log 10 (x)
ans =
0. 0792 0. 5237 0. 6990 0. 3617
>> log 2 (x)
ans =
0. 2630 1. 7398 2. 3219 1 .2016
19
10.4. Тригонометрические и обратные встроенные функции
Для тригонометрических функций sin (x), asin (x), cos (x), acos (x),
tan (x), atan (x), cot (x) возвращается значение функции для каждого элемента
Х(если задан вектор).
Примеры:
>> x = [1 3 5 2.3]
x=
1. 0000 3. 0000 5. 0000 2. 3000
>> cos (x)
ans =
0. 5403 -0. 9900 0. 2837 -0. 6663
10.5. Примеры записи математических выражений
При записи на языке программирования любое математическое выра-
жение должно быть "вытянуто в одну строчку", а приоритет операций ре-
гулируют скобки. Рассмотрим в табл. 2 несколько примеров записи выра-
жений.
Таблица 2

Общематематическая запись ЗаписьMATLAB


-7
- 0,12310 - 0.123 е -7
456 • 1997 456 * 1997
2π +e3 2 * pi +Exp (3)
34 ⋅ 24 34 * 24 / (74 + 388)
|x| + √ 7 + y 2 Abs (x) + sqrt (7) + Y ^ 2
Sin 13 + Sin 13٥ Sin (13) + Sin (13 * Pi / 180)
Log 7 + log 3 Log (7) + Log (3)

11. Функции комплексного аргумента


Числа могут быть комплексными: Z = a + b * i. Такие числа содержат
действительную Re(z) и мнимую Im(z) части. Мнимая часть имеет множи-
тель i или j, означающей корень квадратный из -1:
3i
2j
2+3i
-3. 14 i
-123. 456 + 2.7 e -3i
Ниже даны простейшие примеры работы с комплексными числами:
>> i
ans =
0 + 1. 0000i
>> z = 2 + 3i
20
z=
2. 0000 + 3. 0000 i
>> abs (z)
ans =
3. 6056
>> real (z)
ans =
2
>> imag (z)
ans =
3
>> angle (z)
ans =
0. 9828
Для работы с комплексными числами и данными в MATLAB использу-
ются следующие встроенные функции.
– imag (Z) возвращает мнимые части всех элементов массива Z.
Пример:
» Z = [l + i , 3 + 2i , 2 + 3i];
» imag (Z)
ans =
1 2 3
– real (Z) возвращает вещественные части всех элементов комплексно-
го массива Z. Пример:
» Z = [l + i , 3 + 2i , 2 + 3i];
» real (Z)
ans =
1 3 2
– conj (Z) возвращает число, комплексно-сопряженное аргументу Z.
Если Z комплексное, то conj (Z) = real (Z) - i * imag (Z);
» conj (2 + 3i)
ans =
2.0000 - 3.0000i
– abs(z) служит для получения модуля комплексного числа;
»Z=3+i*2
Z=
3.0000 + 2.0000i
» R = abs (Z)
R=
3. 6056
– angle (Z) служит для получения аргумента комплексного числа, углы
лежат в диапазоне
[- π ; + π], в радианах;
» theta = angle (Z)
21
theta =
0. 5880
– Формула Z = R .* exp (i * theta) дает переход от показательной фор-
мы представления комплексного числа к алгебраической;
» Z = R .* exp (i * theta)
Z=
3. 0000 + 2. 0000 i
11.1. Системы линейных уравнений с комплексными коэффициентами
Программа MATLAB позволяет легко решать системы линейных урав-
нений с комплексными коэффициентами. Предположим, что дана система
линейных уравнений:
⎧⎪ I&1 (200 + 361,9i ) + I&2 (−125 + 29,75i ) = 2,84 − 0,977i
⎨&
⎪⎩ I1 (−125 + 29,75i ) + I&2 (287,5 − 29,75i ) = 5,906 − 5,537i
Требуется найти токи I1 и I2. Для решения системы используется мат-
рица коэффициентов R и матрица свободных членов F . Решение находится
в виде произведения обратной матрицы коэффициентов на матрицу свобод-
ных членов:
W = R −1 ⋅ F
Ниже (рис. 8) приведен фрагмент программы MATLAB, который пока-
зывает порядок решения системы линейных уравнений с комплексными ко-
эффициентами.
Таким образом, ток I1 = – 0. 0041 – 0. 0150i, а ток I2 = – 0. 0196 – 0. 0233i.

Рис. 8. Фрагмент программы MATLAB


22
КОНТРОЛЬНЫЕ ВОПРОСЫ
1. Что такое MATLAB?
2. Какие окна имеет интерфейс MATLAB и каково их назначение?
3. Какова структура окна Command Windows?
4. Как очистить окно Command Windows ?
5. Как в MATLAB осуществляется ввод и выполнение команд?
6. Назовите зоны окна Command Windows. Как увеличить длину ко-
мандной строки Command Windows, распространив ее на несколько физиче-
ских строк командного окна?
7. Что называется рабочей областью MATLAB?
8. Как осуществляется просмотр и редактирование значений пере-
менных в окне Workspace?
9. Как отобразить список переменных, созданных в данном сеансе
работы, в командном окне?
10. Как удалить неиспользуемую более переменную из рабочего про-
странства MATLAB?
11. Как получить справку по выбранной команде MATLAB?
12. Для чего служит редактор М-файлов?
13. Как вызвать редактор М-файлов, и какие отладочные средства
он имеет?
14. Как осуществляется цветовые выделения и синтаксический кон-
троль при работе с пакетом MATLAB?
15. Как можно получить быструю справку по любой команде MATLAB?
16. Расскажите о MATLAB в роли суперкалькулятора.
17. Что принято называть сессией при работе с MATLAB?
18. Как изображается и для чего служит комментарий?
19. Что такое интерактивный режим?
20. Перечислите основные объекты MATLAB.
21. В каком окне можно скорректировать данные, занесенные в рабо-
чую область и как вызвать это окно?
22. Что такое системная переменная, задаваемая в MATLAB?
23. Перечислите системные переменные и назовите, какие значения
принимает каждая системная переменная по умолчанию.
24. Перечислите типы переменных, используемых в MATLAB.
25. Правила задания имени переменной.
26. Как присвоить переменной значение?
27. В каком формате в MATLAB представляются вещественные числа?
28. Какие форматы отображения вещественных чисел используются
в MATLAB?
29. Как в MATLAB осуществляются операции с комплексными числами?
30. Как в MATLAB осуществляются операции с матрицами?
31. Как в MATLAB осуществляется вычисление элементарных функ-
ции для векторов и матриц?

23
32. Перечислите основные арифметические операторы и их синтаксис
в системе MATLAB
33. Что такое встроенная функция? Перечислите алгебраические и
арифметические встроенные функции в MATLAB.
34. Перечислите тригонометрические и обратные встроенные функции
в MATLAB.
35. Записать выражение в MATLAB: 2π + а 4.
36. Записать выражение в MATLAB: Sin 45 + Sin 45°.
37. Чем отличается действительное число от комплексного числа?
Изобразите действительные и комплексные числа в системе MATLAB.
38. Перечислите функции комплексной переменной в системе
MATLAB.
39. Алгоритм решения системы линейных уравнений с комплексными
коэффициентами.

ПРАКТИЧЕСКОЕ ЗАДАНИЕ
1. Ознакомиться с теоретическим материалом и ответить на вопросы.
2. Организовать ввод данных и вычисления в интерактивном режиме
согласно заданиям.
3. Протоколы выполненных заданий в Мatlab показать преподавателю.

МЕТОДИЧЕСКИЕ УКАЗАНИЯ
– открыть окно программы МATLAB, используя соответствующий
ярлык

– выполнить задания согласно указаниям, используя в случае необхо-


димости help программы МATLAB.

ПРОСТЕЙШИЕ ВЫЧИСЛЕНИЯ
Задание № 1
Ввести системные переменные и заполнить таблицу системных пере-
менных (в тетради)
2π eps realmin realmax 1:0 0:0

Задание № 2
Решить арифметические примеры:
2 7
а) − ;
5 16 d) |x| + √ 7 + y 2
2 5
b) + .
3 7 e) m = Sin13 + Sin 13٥
2 3
c) 2 + 0,42 ⋅ 40 − cos 45° − 14 ⋅ f) p = log 7 + log 3
5 40
24
Значения переменных, вычисленные в течение текущего сеанса работы,
сохраняются в специально зарезервированной области оперативной памяти
компьютера. Открыть браузер рабочей области MATLAB- окно Workspace и
посмотреть эти значения.
Задание № 3
Вычислить значения функций и занести результат в тетрадь:
cos (1) cos (300) sin (500) tg (600) Arctg (1) Sin (π/6)

ФУНКЦИИ КОМПЛЕКСНОГО АРГУМЕНТА


Задание № 4
1. Организовать в интерактивном режиме ввод данных и решение сис-
темы линейных уравнений с комплексными коэффициентами согласно п. 11.1.
2. Ввести три комплексных числа: z1 = 4 + 2i; z2 = 5 + 3i; z3 = 3 - 2i;
3. Вычислить действительные и мнимые части вектора z, состоящего
из трех комплексных чисел z1, z2, z3;
4. Вычислить сумму трех комплексных чисел z1, z2, z3 и занести ее в z4 ;
5. Вычислить число z5 комплексно-сопряженное числу z4 ;
6. Вычислить модули и аргументы для двух комплексных чисел z4 и
z5, записать в тетради числа z4 и z5 в показательной форме;
7. Сделать для проверки пункта 6 обратный переход - от показательной
формы представления комплексного числа в алгебраическую форму для
чисел z4 и z5.

Лабораторная работа № 2
СИМВОЛЬНЫЕ ВЫЧИСЛЕНИЯ В MATLAB
Цели работы:
1. Знакомство с основными положениями пакета символьных вычис-
лений Symbolic Math Toolbox
2. Работа с символьными переменными, матрицами, математическими
выражениями.
3. Освоение символьных аналитических вычислений – упрощение вы-
ражений, решение алгебраических уравнений, решение системы линейных
уравнений, вычисление суммы ряда.
4. Освоение символьного интегрирования и символьного дифференци-
рования.
5. Получение практических навыков работы в диалоговом режиме.

ТЕОРЕТИЧЕСКИЙ МАТЕРИАЛ
1. Пакеты расширения MATLAB
В настоящее время существуют десятки официально распространяемых
пакетов расширения MATLAB, которые производятся как фирмой The Math-
25
Works Inc- производителем данного продукта, так и сторонними производи-
телями программного обеспечения, среди которых пакеты:
– Partial Differential Equation Toolbox (пакет для решения дифференци-
альных уравнений в частных производных, зависящих от двух переменных);
– Statistic Toolbox (решение задач статистики);
– Femlab Toolbox (решение трехмерных уравнений математической
физики);
– Image Processing Toolbox (решение задач обработки изображений);
– Fuzzy Logic Toolbox (решение задач методами нечеткой логики);
– Wavelet Toolbox (решение задач обработки сигналов и изображений
методом вэйвлет-преобразований); Simulink (пакет для моделирования дина-
мических систем) и др.;
– Symbolic Math Toolbox предназначен для выполнения символьных
вычислений;
– Пакет Symbolic Math Toolbox разработан фирмой Waterloo Maple
Software, Канада;
– Для получения справки по командам пакета Symbolic Math Toolbox
(рис. 9)следует открыть соответствующий раздел Help, или получить по-
мощь по команде:
Help <имя команды>

Рис. 9. Окно помощи в режиме просмотра информации о функции

2. Символьные вычисления в пакете MATLAB


2.1. Создание символьных переменных, выражений, матриц
Для создания символьных переменных используется функция sym, у ко-
торой следующий синтаксис:
имя переменной = sym(‘ имя переменной ‘)
26
Например, создадим две символьных переменных x и alfa:
>> x = sym (' x ')
x=
x
>> а = sym (' alpha ')
а=
alpha
Для создания одновременно трех символьных переменных a, b, с надо
выполнить команду:
>> syms a b c
Создание символьного выражения осуществляется командой:
>> sym (' символьное выражение ')

Например, для создания символьной переменной, содержащей выраже-


ние a x 2 + b x + c, следует выполнить команду:
>> f = sym (' a * x ^ 2 + b * x + c ')
В данном случае введенное выражение рассматривается как единая пе-
ременная. Для того, чтобы иметь возможность изменять значения коэффици-
ентов и неизвестной, входящих в выражение a x 2 + b x + c следует выпол-
нить команды:
>> syms a b c x
>> f = sym (' a * x ^ 2 + b * x + c ')
f=
a*x^2+b*x+c
2.2. Обращение к стандартным функциям
С помощью функции sym можно обращаться к стандартным функциям
пакета MAPLE. Например, создадим функцию, возвращающую значение
факториала числа:
>> kfac = sym (‘ k ! ‘)
Для вычисления 6 ! или n ! надо выполнить команды:
>> syms k n
>> subs (kfac, k, 6), subs ( kfac, k, n )
ans =
720
ans =
n!
2.3. Создание символьной матрицы
Для создания символьной матрицы необходимо создать символьные
переменные, являющиеся элементами матрицы и затем создать матрицу, яв-
но задав ее строки и столбцы.
>> syms a b c
>> A = [a b c ; b c a ; c a b]
27
A=
[a, b, c]
[b, c, a]
[c, a, b]
Далее с созданной символьной матрицей можно выполнять различные
арифметические операции.
2.4. Решение алгебраических уравнений
Для решения алгебраических уравнений используется команда solve
Пример 1
2x 7 x +1 5
Решить уравнение: − = + .
x − 1 2 x − 1 2 − 2x
>> [x] = solve ( ' 2 * x / (x - 1) – 7 / 2 = (x + 1 ) / (x - 1) + 5 / (2 – 2 * x ) ')
x=2
2.5. Решение системы алгебраических уравнений
Для решения системы алгебраических уравнений используется ко-
манда solve
Пример 2
Решить систему алгебраических уравнений:
⎧3x + 4 y = 18

⎩2 x + 5 y = 19
>> [ x, y ] = solve (' 3 * x + 4 * y = 18', ' 2 * x + 5 * y = 19 ')
x=2
y=3
2.6. Упрощение алгебраического выражения
Для упрощения выражений используется команда simplify.
Пример 3
⎛ 4a − 9 ⎞ ⎛ 2a ⎞
Упростить выражение ⎜⎜ a − ⎟⎟ : ⎜⎜ 2a − ⎟⎟ .
⎝ a − 2 ⎠ ⎝ a − 2 ⎠
>> syms x % описываем символьную переменную
>> p = (a- (4 * a - 9)) / (a - 2) / (2 * a – 2 * a / ( a – 2)) % задаем символь-
ное выражение
>> simplify (p)
ans =
-3 / 2 / a
2.7. Вычисление сумм рядов
Для решения алгебраических уравнений используется команда symsum.
Пример 4

1
Вычислить сумму ряда ∑ k4 .
k =1
>> syms x k
28
>> s = symsum (1 / k ^ 4, 1, inf)
s=
1 / 90 * pi ^ 4
Пример 5
10
1
Вычислить сумму ряда ∑ k4 .
k =1
>> syms x k
>> s = symsum (1 / k ^ 4, 1, 10)
s=
43635917056897 / 40327580160000
2.8. Символьное дифференцирование
Для вычисления производной функции f ( x ) необходимо:
– задать выражение, описывающее функцию;
– обратиться к функции diff.
Пример 6
Вычислить производную функции sin (ax) по переменной х.
>> sym а x % описываем символьные переменные
>> y = sin (a * x) % задаем дифференцируемую функцию
>> diff ( y ) % вычисляем производную в символьном виде
ans =
cos (a * x) * a
Пример 7
Вычислить производную функции sin ( a x ) по параметру а.
>> sym а x % описываем символьные переменные
>> y = sin (a * x) % задаем дифференцируемую функцию
>> diff (y, а) % вычисляем производную в символьном виде
ans =
cos (a * x) * х
Пример 8
Вычислить производную функции хn
>> sym x y n % описываем символьные переменные
>> y = x ^ n % задаем функцию хn
>> diff (y, x) % вычисляем производную функции хn в символьном виде
ans =
x ^ n*n / x
2.9. Символьное интегрирование
Для вычисления интегралов в символьном виде используется функция
int, имеющая следующий синтаксис:
int (f),
int (f, [u]),
int (f, [u , a, b ]),
где f – символьная подынтегральная функция, необязательные переменные:
29
u – переменная интегрирования,
а – нижний предел интегрирования,
b – верхний предел интегрирования.
Продемонстрируем приемы вычисления интегралов в MATLAB на сле-
дующих примерах:
Пример 9
dx
Вычислить интеграл: ∫ a 2 + ( bx )2 ;

>> syms a b c % задаем символьные переменные


>> int (1 / a ^ 2 + ( b * x ) ^ 2) % вычисляем интеграл в символьном виде
ans =
1/ a / b * atan (b * x / a)
Пример 10
a/b
dx
Вычислить интеграл ∫ a 2 + ( bx ) 2
;
a
>> syms a b c % задаем символьные переменные
>> int (1 / a ^ 2 + (b * x) ^ 2, 0, a / b) % вычисляем интеграл в символь-
ном виде
ans =
1 / 4 * pi / a / b

КОНТРОЛЬНЫЕ ВОПРОСЫ
1. Перечислите пакеты расширения МATLAB.
2. Как получить справку по командам пакета
3. Какая функция используется для создания символьных переменных
и служит для обращения к стандартным функциям?
4. Какая команда используется для решения алгебраических уравнений?
5. Какая команда для упрощения алгебраических выражений?
6. Какая команда используется для вычисления сумм рядов?
7. Что необходимо сделать для вычисления производной функции?
8. Перечислите функции, служащие для вычисления интегралов в сим-
вольном виде.

ПРАКТИЧЕСКОЕ ЗАДАНИЕ
1. Ознакомиться с теоретическим материалом и ответить на вопросы.
2. Организовать ввод данных и вычисления в интерактивном режиме
согласно заданиям.
3. Протоколы выполненных заданий в МATLAB показать преподавателю.

30
МЕТОДИЧЕСКИЕ УКАЗАНИЯ
– Открыть окно программы МATLAB, используя соответствующий
ярлык

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


димости help программы МATLAB.
Задание № 1
Решить алгебраические уравнения, используя команду solve:
1 x+8 1
a) + 2 = − 1;
x − 3 2 x − 18 3 − x

x x +1 1
b) + = 2 ;
x − 1 x + 3 x + 2x − 3

6 5 − 2x
c) 1 + = ;
x −1 x − 7

Задание № 2
Решить систему алгебраических уравнений, используя команду solve.
Выбрать уравнение согласно своему варианту из табл. 3.

Таблица№3
Варианты заданий
Номер варианта Система уравнений
⎧ y − 3 xy + x 2 − x + y + 9 = 0,
2

1 ⎨
⎩ y − x = 2.
⎧(2 x − 6) / 3 − ( x − 2) / 2 = 2 y,
2 ⎨
⎩(3x − 6) / 2 + y / 2 = x.
⎧2 x + y =1,
3 ⎨ 2
⎩ y − 2 xy − x = − 28
2

⎧ x 2 − xy =12 − y 2 ,
4 ⎨
⎩ x − 2 y = 6.
⎧( x − 6) / 2 − ( y + 1) / 3 = 1,
5 ⎨
⎩(2 − y )4 + ( x −1) / 2 = 2.
⎧ x − y = 7,
6 ⎨ 2
⎩ x + y = 9 − 2 xy.
2

31
⎧1 / x −1 / y = − 4 / 5,
7 ⎨
⎩ x − y = 4.
⎧4 /( x − y ) + 12( x + y ) = 3,
8 ⎨
⎩8 /( x − y ) + 18( x + y ) = − 1.
⎧3 /( x − y ) − 4 /( x + y ) = − 1,
9 ⎨
⎩9 /( x − y ) − 10 /( x + y ) = 8.
⎧6 /( x − y ) − 8 /( x + y ) = − 2,
10 ⎨
⎩9 /( x − y ) − 10 /( x + y ) = 8.
⎧1 / x + 4 / y = 4,
11 ⎨
⎩1 / e − 2 / x = 10.
⎧2 / x + 1 / y = 4,
12 ⎨
⎩1 / x − 3 / y = 9.
⎧1 / x + 1 / y = 7 / 12,
13 ⎨
⎩1 / x −1 / y =1 / 12.
⎧1 / x −1 / y = 3 / 8,
14 ⎨
⎩ x + y =12.
⎧ x + y = 3,
15 ⎨ 2
⎩ x + 3 xy + y − x − y = 2.
3

⎧3 x − y = 10,
16 ⎨ 2
⎩ x − y = 20 − xy.
2

Задание № 3
Упростить выражения, используя команду simplify:
⎛ c c 2 + 4 ⎞ (2 − c )
2
c
a) p = ⎜⎜ − − ⎟⋅
2 ⎟
;
⎝ c − 2 c + 2 4 − c ⎠ 2 c + c
1 1 1
b) p = + + ;
( x − 1)( x − 3) ( x − 3)( x − 5) ( x − 5)( x − 7)
⎛ 3x ⎞ ⎛ 6 x − 25 ⎞
c) p = ⎜ 3 x − ⎟:⎜ x − ⎟.
⎝ x −4⎠ ⎝ x−4 ⎠
Задание № 4
Вычислить сумму ряда, используя команду symsum. Выбрать уравнение
согласно своему варианту из табл. 4.
Таблица 4
Варианты заданий
Номер варианта Вид функционального ряда

(−1) 2 ⋅ k
1 s=∑
k=1 k ⋅ ( 2k + 1) ⋅ 2
k

32
(−1) k k
6
2 s=∑ ⋅2
k=1 3k + 1
5
(k − 1) 2 k
3 s=∑ ⋅4
k= 2 2 k
10
(2k − 1) 2
4 s=∑
k= 3 2k k
7
(−1) n −1
5 s=∑
k=1 ( 2k − 1)
k

(−1) 2
5
6 s=∑ k
k=1 2 k

1
7 s=∑
k=1 k ⋅ (2k + 1)

k
8 s=∑
k=1 k 2 (k + 10)

(−1) k
9 s=∑
k=1 ( k + 1)( k + 2)

1
10 s=∑
k=1 k ( k + 1)(k + 2)

k
11 s=∑
k=1 (k + 1)(k + 2)(k + 3)

(2k − 1)
12 s=∑
k=1 k 2 (k + 1) 2

1
13 s=∑
k= 2 k 2−1
9
2k − 1
14 s=∑
k= 2 k2
9
2k − 1
15 s=∑
k= 2 k2
(−1) k k
5
16 s=∑ ⋅3
k=1 5 k + 1

33
Задание № 5
Вычислить производную функции по х, используя команду diff.
Выбрать функцию согласно своему варианту из табл. 5.
Таблица 5
Варианты заданий
Номер варианта Функция для вычисления производной
ln x
1
x 1 + ln x
ln 2 x
2
x
3 x ⋅ e x ⋅ Sin x
1
4
9 + x2
1 1
5 2
⋅ Sin ( )
x x
x
6 ArcSin
1+ x
7 x x ⋅ (1 + ln x )

8 x 2 − 0,16
x
e3 x + 1
9
ex +1
e x ⋅ (1 + Sin x )
10
1 + Cos x
11 Sin x ⋅ ln ( Tg x )
1
12
( x + 1) ⋅ x 2 + 1
1
13
( 3 Sin x + 2 Cos x ) 2
ln x 3
14 ( )
x
x
15
( x + 3x 2 + 2 )
4

1
16 dx
x lg x

Задание №6
Используя функцию int, подготовить и организовать вычисление опре-
b

деленного интеграла: y = ∫ f ( x)dx .


a
34
Подынтегральная функция f(x) определена и непрерывна на интервале
a <= x <= b. Вид подынтегральной функции f(x), а также интервал интегри-
рования [a, b] определяется номером варианта из табл. 6.
Таблица 6
Варианты заданий
Пределы
Номер варианта Подинтегральная функция f (x) интегрирования
a b
ln x
1 1 3,5
x 1 + ln x
ln 2 x
2 1 4
x
3 x ⋅ e x ⋅ Sin x 0 1
1
4 0 2
9 + x2
1 1
5 2
⋅ Sin ( ) 1 2,5
x x
x
6 ArcSin 0 3
1+ x
7 x x ⋅ (1 + ln x ) 1 3
x 2 − 0,16
8 1 2
x
e +1
3x
9 0 2
ex +1
e x ⋅ (1 + Sin x )
10 0 1,5
1 + Cos x
11 Sin x ⋅ ln ( Tg x ) 1 1,5
1
12 0 0,75
( x + 1) ⋅ x 2 + 1
1
13 0 1
( 3 Sin x + 2 Cos x ) 2
ln x 3
14 ( ) 1 2
x
x
15 2
( x + 3x 2 + 2 )
4

1
16 dx 2 3
x lg x

35
Лабораторная работа № 3
ПОСТРОЕНИЕ ГРАФИКОВ
Цели работы:
1. Построение графиков функций.
2. Получение практических навыков работы в диалоговом режиме.

ТЕОРЕТИЧЕСКИЙ МАТЕРИАЛ
Одно из достоинств системы MATLAB – обилие средств графики, на-
чиная от команд построения простых графиков функций одной переменной в
декартовой системе координат и кончая комбинированными и презентаци-
онными графиками с элементами анимации.

1. Построение графиков отрезками прямых


Для отображения функции одной переменной у (х) используются гра-
фики в декартовой (прямоугольной) системе координат. При этом обычно
строятся две оси – горизонтальная X и вертикальная Y, и задаются коорди-
наты х и у, определяющие узловые точки у (х).
Эти точки соединяются друг с другом отрезками прямых, то есть при
построении графика осуществляется линейная интерполяция для промежу-
точных точек. Поскольку MATLAB – матричная система, совокупность
точек у (х) задается векторами X и Y одинакового размера.
Команда plot служит для построения графиков функций в декартовой
системе координат. Эта команда имеет ряд параметров, рассматриваемых
ниже.
¾ plot (X, Y) строит график функции у (х), координаты точек (х, у)
которой берутся из векторов одинакового размера Y и X.
Если X или Y – матрица, то строится семейство графиков по данным,
содержащимся в матрице.
Пример 1
Приведенный ниже пример (рис. 10) иллюстрирует построение графи-
ков двух функции – sin (x) и cos (х), данные которых содержатся в матрице
Y, а значения х хранятся в векторе X:
>> x = [0 1 2 3 4 5 6]
>> y = [sin (x); cos (x)];
>> plot (x, y)
В данном случае отчетливо видно, что график состоит из отрезков,
и если вам нужно, чтобы отображаемая функция имела вид гладкой кри-
вой, необходимо увеличить количество узловых точек. Расположение
их может быть произвольным.

36
Рис. 10. Построение графиков функций sin (x), cos (x) отрезками прямых
¾ plot(Y) строит график y (i), где значения Y берутся из вектора Y, a i
представляет собой индекс соответствующего элемента. Если Y содержит
комплексные элементы, то выполняется команда plot (real (Y), imag (Y)). Во
всех других случаях мнимая часть данных игнорируется.
Пример 2
Построить график функции y = sin (x) + i * cos (3 * x), где аргумент
х ∈ [-2 π ; 2 π] и изменяется с шагом 0,02 (рис. 11).
>>x = - 2 * pi : 0. 02 * pi : 2 *pi ;
>> y = sin (x) + i * cos (3 * x ) ;
>> plot (y)
>> plot (y , ' b : * ')

Рис. 11. График функции y = sin (x) + i * cos (3 * x)


Пример 3
Построить график функции параболы в интервале [1; 10] c шагом 1.
Рассмотрим, как могут выглядеть задания.
– >> x = 1 : 1 : 10;
>> y = x .* x;
>> plot (x , y)

37
– >> x = 1 : 1 : 10;
>> y = x . ^ 2;
>> plot (x , y)
– >> for х = 1 : 10;
>> y (х) = х * х ; end
>> plot (y)
Пример 4
Построить график функции параболы в интервале [1 ; 20] c шагом 0, 1.
Рассмотрим, как могут выглядеть задания.
– >> x = 1 : 0. 1 : 20;
>> y = x . ^ 2 ; plot (x, y)
– >> for i = 1 : 20;
>> x = 0. 1 * i ;
>> y (i) = x * x ; end
>> plot (Y)
¾ plot (Х, Y, S) аналогична команде plot (X, Y), но тип линии графика
можно задавать с помощью строковой константы S, которая задает цвет ли-
нии (табл. 7) или вид символа (табл. 8).

Таблица 7

Цвет линии
Y – Желтый G – Зеленый
M – Фиолетовый B – Синий
C – Голубой W – Белый
R – Красный K – Черный

Таблица 8

Тип точки Тип линии


. – Точка
+ – Плюс
О – Окружность - –Сплошная
Х – Крест : –Двойной пунктир
* – Звездочка - . –Штрих-пунктир
S – Квадрат - - –Штриховая
D – Ромб
V –Треугольник (вниз)

Итак, с помощью строковой константы S можно:


– изменять цвет линии;
– представлять узловые точки различными отметками (точка, окруж-
ность, треугольник);
– менять тип линии.

38
¾ plot (Xl, Yl, Sl, X2, Y2, S2, X3 ,Y3, S3,...) – эта команда строит на од-
ном графике ряд линий, представленных данными вида (Xi,Yi, Si), где Xi и Yi
– векторы или строки матрицы, a Si –задает цвет и тип точек или линий, из
которых будет построен график.
При отсутствии указания на цвет линий и точек он выбирается автома-
тически из таблицы цветов (белый исключается).
Рассмотрим пример построения графиков трех функций с различным
стилем представления каждой из них:
Пример 5
% Построение графиков трех функций со спецификацией линий каждо-
го графика (рис. 12).
>> x = - 2 * pi : 0. 1 * pi: 2 * pi ;
>> y1 = sin (x);
>> y2 = sin (x). ^ 2;
>> y3 = sin (x). ^ 3;
>> plot (x, y1, ' – b ', x, y2, ' - . + r ', x, y3, ' – ok ')

Рис. 12. Графики трех функций со спецификацией линий каждого графика


– график функции yl строится сплошной синей линией;
– график у2 строится штрихпунктирной линией с точками в виде
знака «плюс» красного цвета;
– график уЗ строится штриховой линией с кружками черного цвета.

2. Построение графиков в полярной системе координат


В полярной системе координат любая точка представляется как конец
радиус-вектора, исходящего из начала системы координат, имеющего длину
р и угол Q.
Для построения графика функции р(Q) используются приведенные ни-
же команды. Угол Q обычно меняется от 0 до 2π. Для построения графиков
функций в полярной системе координат используются команды типа
polar(...):

39
¾ polar (THETA, RHO) строит график в полярной системе координат,
представляющий собой положение конца радиус-вектора длиной RHO
и с углом ТНЕТА;
¾ polar (THETA, RHO, S) – аналогична предыдущей команде, но по-
зволяет задавать стиль построения с помощью строковой константы S по
аналогии с командой plot.
Пример 6
% График Polar(y) в полярной системе координат (рис. 13).
>> phi = 0 : 0. 1 : 2 * pi; r = sin (3 * phi) ;
>> polar (phi, r)

Рис. 13. График функции sin (3α) в полярной системе координат

3. Построение графиков векторов


Иногда желательно представление ряда радиус-векторов в их обычном
виде, т.е. в виде стрелок, исходящих из начала координат и имеющих угол и
длину, определяемые действительной и мнимой частью комплексных чисел,
представляющих эти векторы.
Для этого служит группа команд compass:
– Compass (U, V) – строит графики радиус-векторов с компонентами
(U, V), представляющими действительную и мнимую части каждого из ра-
диус-векторов.
– Compass (Z) – эквивалентно Compass (real(Z),imag (Z)) ;
– Compass (U, V, LINESPEC) и Compass (Z, LINESPEC)- аналогичны
представленным выше командам, но позволяют задавать спецификацию ли-
ний построения LINESPEC подобную описанной для plot.
Пример 7
% Построение радиус-векторов для вектора z, заданного комплексными
числами (рис. 14).
>> z = [- 1 + 2i, -2 – 3i, 2 + 3i, 5 + 2i]
>> compass (z)

40
Рис. 14. Построение радиус-векторов

3. Трехмерные графики
3.1. Функция meshgrid для создание массивов трехмерной графики
Трехмерные поверхности обычно описываются функцией двух пере-
менных z (x, у). Специфика построения трехмерных графиков требует не
просто ряда значений x и y , то есть векторов x и y – она требует определе-
ния двумерных массивов X и Y — матриц. Для создания таких массивов
служит функция meshgrid..В основном она используется совместно с функ-
циями построения графиков трехмерных поверхностей. Функция meshgrid
записывается в следующих формах:
– [X, Y] = meshgrid (x, y) преобразует область, заданную векторами х
и у, в массивы X и Y, которые могут быть использованы для вычисления
функции двух переменных и построения трехмерных графиков. Строки вы-
ходного массива X являются копиями вектора х, а столбцы Y – копиями век-
тора у;
– [X, Y] = meshgrid (x) — аналогична [X, Y] = meshgrid (x, x);
– [X, Y, Z] = meshgrid (x, y, z) возвращает трехмерные массивы, ис-
пользуемые для вычисления функций трех переменных и построения трех-
мерных 3D-графиков.
3.2. Построение графиков трехмерных поверхностей
Команда plot3 (...) является аналогом команды plot (...). Она строит ак-
сонометрическое изображение трехмерных поверхностей и представлена
следующими формами:
¾ plot3 (x, y, z) строит массив точек, представленных векторами х, у
и z, соединяя их отрезками прямых. Эта команда имеет ограниченное при-
менение;
¾ plot3 (X, Y, Z)- строит точки с координатами X(i,:), Y(i,:) и Z(i,:)
и соединяет их отрезками прямых, где X, Y и Z — три матрицы одинакового
размера;
¾ plot3 (X, Y, Z, S)- обеспечивает построения аналогичные предыду-
щей команде, но со спецификацией стиля линий и точек, соответствующей
41
Пример 8
Рассмотрим пример построения трехмерной поверхности, описываемой
функцией z (x, y) = x2 + y2 (рис. 15).
>> % Построение графика 3D поверхности линиями
>> [x, y] = meshgrid ([ - 3 : 0. 15 : 3 ]);
>> z = x . ^ 2 + y . ^ 2;
>> plot3 (x, y, z)

Рис. 15. График трехмерной поверхности


Пример 9
Построить график 3D поверхности (рис. 16).
>> % Построение графика 3D- поверхности цветными кружками
>> [x , y] = meshgrid ([ -3 : 0. 15 : 3]) ;
>> z = x . ^ 2 + y . ^ 2 ;
>> plot 3(x, y, z, ' o ')

Рис. 16. График трехмерной поверхности, построенный разноцветными кружками


3.3. Управление осями
Функция axis имеет несколько возможностей для настройки масштаба,
ориентации и коэффициента сжатия.
42
Обычно MATLAB находит максимальное и минимальное значение и
выбирает соответствующий масштаб и маркитирование осей. Функция axis
заменяет значения по умолчанию предельными значения, вводимыми поль-
зователем.
axis ([xmin, xmax, ymin, ymax])
Например, для того, чтобы более подробно проанализировать поведение
функции sin в окрестности точкимаксимума, можно установить пределы по
осям координат:
axis ([1. 5, 2. 5, 0. 5, 2 ]).
В функции axis можно также использовать ключевые слова для управ-
ления внешним видом осей (табл. 9).
Таблица 9

Название функции Действие


axis square Создает х и у оси равной длины
axis equal Создает отдельные отметки приращений для x и у осей одина-
ковой длины
plot(exp ( I * t ) ) Следующая либо за axis square, либо за axis equal превращает
овал в правильный круг
axis auto Возвращает значения по умолчанию и переходит в автоматиче-
ский режим.
axis on Включает обозначения осей и метки промежуточных делений.

axis off Выключает обозначения осей и метки промежуточных делений


grid off Выключает сетку координат
grid on Включает сетку координат

Общий заголовок для графика выводится функцией title, например:


title(‘ Function sin graph ‘).

КОНТРОЛЬНЫЕ ВОПРОСЫ
1. Расскажите о построении простых графиков функции одной
переменной.
2. Какие средства можно использовать для оформления графиков
MATLAB?
3. Что такое полярная система координат?
4. Назовите команды для построения графиков в полярной системе
координат.
5. Для чего служит функция compass?
6. В чем заключается специфика задания ряда значений для трехмер-
ной графики?

43
ПРАКТИЧЕСКОЕ ЗАДАНИЕ
1. Организовать ввод данных и вычисления согласно заданиям.
2. Организовать вывод графиков функций.
3. Протоколы выполненных заданий в MATLAB показать преподавателю.

МЕТОДИЧЕСКИЕ УКАЗАНИЯ
1. Открыть окно программы МATLAB.
2. Выполнить задания согласно указаниям, используя в случае необхо-
димости help программы МATLAB.
Задание № 1
Построить графики функций. Использовать функцию plot. Нужно само-
стоятельно задать шаг и диапазон изменения аргумента
2
– y=x –4;
4 2
– y = x - 4x ;
– y = sin (x) + log (x).

Задание № 2
Построить кривые, заданные параметрически. Использовать функцию plot.
Уравнение кривой: x (t) = t – sin (t) , y (t) = 1- cos (t)
– постройте эту кривую при t, изменяющимся в диапазоне [-π; π].
– постройте эту кривую при t, изменяющимся в диапазоне [0 ; 2π].

Задание № 3
Построить кривые, заданные в полярной системе координат в диапазоне
[0; 2π].
Использовать функцию polar.
– кривая задана уравнением r = 1 + sin (t).
– кривая задана уравнением r = 1 + cos (2t).

Задание № 4
Построить графики трехмерных поверхностей. Использовать функции
meshgrid, plot3 .
– график трехмерной поверхности, описываемый функцией
z= x − y.
2 2
– график трехмерной поверхности, описываемый функцией z = y - x .

ПОСТРОЕНИЕ ГРАФИКОВ ВЕКТОРОВ


C КОМПЛЕКСНЫМИ ЭЛЕМЕНТАМИ
Задание № 5
Построить в декартовой системе координат график вектора с ком-
плексными элементами
у = sin x + i *cos x в диапазоне [0; 2 π]. Использовать функцию plot.

44
Задание № 6
Построить график радиус-векторов для вектора z , элементами которого
являются комплексные числа из задания 10, то есть z1, z2, z3. Использовать
функцию compass.

ЛИТЕРАТУРА
1. Дьяконов В. MATLAB: Учебный курс.– СПб: Питер, 2001.
2. Дьяконов В., Абраменкова И., Круглов В. MATLAB 5: С пакетами
расширения.– М.: Нолидж, 2001.
3. Дьяконов В. MATLAB 6.5: Основы применения, М.: СОЛОН-Пресс,
2005.
4. «Информатика»: Учебник/Под ред. Алексеева.– М. 2001.
5. Кривлев А. Основы компьютерной математики с использованием
системы MATLAB.– М.: Лекс-Книга, 2005.
6. Першиков В.И., Савинков В.М. «Толковый словарь по информати-
ке».– М.: Финансы и статистика, 1995.

45
Портнягина Вера Васильевна

ИНФОРМАТИКА

ОСНОВЫ РАБОТЫ В MATLAB

Методические указания к выполнению лабораторных работ


для студентов специальности 220201 «Управление и информатика в техни-
ческих системах» очной формы обучения

В авторской редакции
Технический редактор Е.Е. Бабух
Набор текста В.В. Портнягина
Верстка, оригинал-макет В.В. Портнягина, Е.В. Черноусова

Подписано в печать 03.03.2008 г.


Формат 61*86/16. Печать цифровая. Гарнитура Times New Roman
Авт. л. 3,07. Уч.-изд. л. 3,36. Усл. печ. л. 3,15
Тираж 30 экз. Заказ № 31

Издательство
Камчатского государственного технического университета

Отпечатано полиграфическим участком издательства КамчатГТУ


683003, г. Петропавловск-Камчатский, ул. Ключевская, 35

46
47

Оценить