Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторные работы 5-6-7 MatLab.pdf
Скачиваний:
65
Добавлен:
27.03.2015
Размер:
936.17 Кб
Скачать

ИНФОРМАТИКА

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

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

Лабораторная работа №5

ГРАФИЧЕСКИЙ ИНТЕРФЕЙС ПОЛЬЗОВАТЕЛЯ И ПРОСТЕЙШИЕ ВЫЧИСЛЕНИЯ

Цели работы:

1.Знакомство с интерфейсом пакета MATLAB и основными положе-

ниями.

2.Знакомство с простыми типами данных, вводом данных и визуализацией результата вычислений.

3.Получение практических навыков работы в диалоговом режиме.

4.Работа с комплексными числами и комплексными функциями.

ТЕОРЕТИЧЕСКИЙ МАТЕРИАЛ

MATLAB – это высокопроизводительный язык для технических расчетов. Он включает в себя вычисления, визуализацию и программирование в удобной среде, где задачи и решения выражаются в форме, близкой к математической. Типичное использование MATLAB – это:

математические вычисления;

создание алгоритмов;

моделирование;

анализ данных, исследования и визуализация;

научная и инженерная графика;

разработка приложений, включая создание графического интерфейса.

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

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

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

2

Окно 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

3

Исправление информации в зоне просмотра невозможно. В зоне просмотра, можно с помощью мыши выделить любой фрагмент текста, затем скопировать его в буфер обмена операционной системы Windows, затем вставить данный фрагмент в командную строку MATLAB или документ, созданный в каком-либо приложении, работающем под управлением операционной системы Windows.

2.2. Понятие сессии

Сеанс работы с МАТLAB принято называть сессией (session). Сессия – это текущий документ, отражающий работу пользователя с системой. В ней имеются строки ввода, вывода, сообщения об ошибках. Входящие в сессию определения переменных и функций, расположенные в рабочей области памяти (но не саму сессию) можно записать на диск (файлы с расширением MAT), используя команду SAVE.

2.3.О переносе строки в сессии

Внекоторых случаях вводимое математическое выражение может ока-

заться настолько длинным, что для него не хватит одной строки. В этом случае часть выражения можно перенести на новую строку с помощью знака многоточия ..., то есть три или более точек (рис. 3).

Этот прием может быть полезен для создания наглядных документов, у которых предотвращается заход строк в невидимую область окна.

Максимальное число символов в одной строке — 4096 (в ранних версиях оно ограничивалось 256), но со столь длинными строками работать неудобно.

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

Очистка командного окна MATLAB осуществляется командой clc, которая, однако, оставляет неизменным содержимое буфера команд и рабочего пространства MATLAB. Действительно, если после этого набрать имя ранее вычисленной переменной d, то после нажатия клавиши ENTER мы снова увидим ее значение:

>> d d =

28 . 8496

4

3. Браузер рабочей области – окно Workspace

Значения переменных, вычисленных в течение текущего сеанса работы, сохраняются в специально зарезервированной области оперативной памяти компьютера, называемой рабочим пространством MATLAB (браузером рабочей области MATLAB – окно Workspace), которое мы видим на рис. 4.

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

Браузер рабочей области служит для просмотра рабочей области памяти. Для вызова браузера в командном окне надо набрать: DesktopÆ Workspase.

3.1. Возможности браузера

Браузер позволяет:

просмотреть существующие в памяти объекты;

редактировать их содержимое;

удалять объекты из памяти, т.к. матрицы и графики могут занимать многие мегабайты (выделить нужное и delete);

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

Для вывода содержимого объекта достаточно выделить его имя с помощью мыши и щелкнуть па кнопке Open. Объект можно открыть и двойным щелчком на его имени в списке. Кнопка Delete уничтожает объект с заданным именем и удаляет его из памяти, а кнопка Close закрывает окно просмотра.

3.2. Окно Array Editor

Из окна Workspase двойным щелчком левой кнопки мыши по строке, содержащей имя переменной, можно вызвать окно Array Editor, в котором можно просматривать и менять значения выбранной переменной. Для примера на рис. 5. показано соответствующее окно, появившееся после двойного клика по строке, содержащей имя переменной а.

5

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

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

Для подготовки, редактирования и отладки m-файлов служит специальный многооконный редактор. Он выполнен как типичное приложение

Windows (рис. 6).

Редактор М-файлов можно вызвать командой Edit из командной строки или командой File Æ New Æ M-file.

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

После этого в окне редактора можно:

создавать свой файл,

пользоваться средствами его отладки и запускать свой файл, используя команду Save As меню File редактора.

На первый взгляд может показаться, что редактор/отладчик – просто лишнее звено в цепочке «пользователь – MATLAB». И в самом деле, текст файла можно было бы ввести в окно системы и получить тот же результат.

Однако на деле редактор/отладчик выполняет важную роль. Он позволяет создать m-файл (программу) без той многочисленной «шелухи», которая сопровождает работу в командном режиме. Редактор обеспечивает синтаксический контроль файла.

6

4.1. Отладочные средства редактора

Редактор имеет и другие важные отладочные средства:

он позволяет устанавливать в тексте файла специальные метки, именуемые точками прерывания (останова). При их достижении вычисления приостанавливаются, и пользователь может оценить промежуточные результаты вычислений (например, значения переменных), проверить правильность выполнения циклов и т. д.;

редактор позволяет записать файл в текстовом формате и сохранить ваш файл.

4.2. Отображение имен переменных из рабочего пространства

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

Данная команда отображает в рабочем окне список всех переменных, находящихся в рабочем пространстве MATLAB. Выполнив команды, представленные на рис. 6, и далее команду

>> who

получим

Your variables are: x y

>>

4.3. Сохранения в файле содержимого рабочего пространства

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

FileÆ Save Workspace as...

После чего появляется стандартное диалоговое окно операционной системы Windows для выбора каталога на диске и имени файла. Для файлов, в которых MATLAB сохраняет значения переменных из рабочего пространства нужно использоваться расширение mat, поэтому такие файлы принято называть «МАТ-файлами».

4.4. Цветовые выделения и синтаксический контроль

Редактор/отладчик m-файлов выполняет синтаксический контроль программного кода по мере ввода текста. При этом используются следующие цветовые выделения:

ключевые слова языка программирования – синий цвет;

операторы, константы и переменные – черный цвет;

комментарии после знака % зеленый цвет;

символьные переменные (в апострофах) – зеленый цвет;

синтаксические ошибки – красный цвет.

Благодаря цветовым выделениям вероятность синтаксических ошибок резко снижается. Однако далеко не все ошибки диагностируются. Ошибки,

7

связанные с неверным применением операторов или функций (например, применение оператора – вместо + или функции cos(x) вместо sin(x) и т. д.), не способна обнаружить ни одна система программирования. Устранение такого рода ошибок – дело пользователя, отлаживающего свои алгоритмы и программы.

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

Система MATLAB создана таким образом, что любые (подчас весьма сложные) вычисления можно выполнять в режиме прямых вычислений, то есть без подготовки программы. Режим работы с MATLAB, в котором пользователь вводит команды в командной строке, задавая математические выражения или обращаясь к функциям MATLAB, называется интерактивным режимом.

Это превращает MATLAB в необычайно мощный калькулятор, который способен производить не только обычные для калькуляторов вычисления например:

выполнять арифметические операции и вычислять элементарные функции);

операции с векторами и матрицами;

комплексными числами;

рядами и полиномами;

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

5.1. Некоторые основные положения

Работа с системой в режиме прямых вычислений носит диалоговый характер и происходит по правилу «задал вопрос, получил ответ». Пользователь набирает на клавиатуре вычисляемое выражение, редактирует его (если нужно) в командной строке и завершает ввод нажатием клавиши Enter.

>> – служит для указания ввода исходных данных;

данные вводятся с помощью простейшего строчного редактора;

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

[ ] – квадратные скобки используют для создания матриц и векторов;

– пробел служит для разделения элементов матриц;

, – запятая применяется для разделения элементов матриц и операторов в строке ввода;

: – двоеточие используется для указания диапазона (интервала изменения величины) и в качестве знака групповой операции над элементами матриц;

! – отмечает начало команды DOS;

’ – апостроф указывает на символьные строки;

% – знак процента обозначает начало комментария;

8

если не указана переменная для значения результата вычислений, то MATLAB назначает такую переменную с именем ans;

знаком присваивания является привычный для нас знак равенства =;

встроенные функции (например, sin и другие) записываются строчными буквами и их аргументы указываются в круглых скобках;

результат вычислений выводится в строках вывода (без знака >>).

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

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

(рис. 7).

Векторы и матрицы характеризуются размерностью и размером. Размерность определяет структурную организацию массивов в виде

строки (размерность 1);

страницы (размерность 2);

куба (размерность 3) и т. д.

Так что вектор является одномерным массивом, а матрица представляет собой двумерный массив с размерностью 2.

MATLAB допускает задание и использование многомерных массивов, но мы пока ограничимся только одномерными и двумерными массивами – векторами и матрицами.

Размер вектора – это число его элементов. Размер матрицы определяется числом ее строк т и столбцов п. Обычно размер матрицы указывают как mxn.

Матрица называется квадратной, если т = n, то есть число строк матрицы равно числу ее столбцов.

Векторы и матрицы могут иметь имена, например V – вектор или М – матрица. Элементы векторов и матриц рассматриваются как индексирован-

ные переменные, например:

V2 – второй элемент вектора V;

М23 – третий элемент второй строки матрицы М.

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

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

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

9

инвертирование матрицы;

вычисление ее собственных значений;

решение системы линейных уравнений;

вывод графиков функций и т.д.

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

45

>>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

10

>> 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.Понятие о математическом выражении

Центральным понятием всех математических систем является математическое выражение. Оно задает то, что должно быть вычислено в численном (реже символьном) виде. Вот примеры простых математических выражений:

11

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 не принято делить числа на целые и дробные, короткие и длинные и так далее, как это принято в большинстве языков программирования, хотя задавать числа в таких формах можно.

12

Операции над числами выполняются всегда в формате с двойной томностью. Такой формат удовлетворяет подавляющему большинству требований к численным расчетам, но совершенно не подходит для символьных вычислений с произвольной (абсолютной) точностью. Символьные вычисления 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

13

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 можно задавать переменным определенные значения. Для этого используется операция присваивания, вводимая знаком равенства:

Имя_переменной = Выражение Типы переменных заранее не декларируются. Они определяются выра-

жением, значение которого присваивается переменной. Так, если это выражение – вектор или матрица, то переменная будет векторной или матричной.

14

9.1.Имя переменной (ее идентификатор)

может содержать сколько угодно символов, но запоминается и идентифицируется только 31 начальный символ.

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

имя должно начинаться с буквы, может содержать буквы, цифры и символ подчеркивания _. недопустимо включать в имена переменных пробелы и специальные знаки, например +, -, *, / и т. д., поскольку в этом случае правильная интерпретация выражений становится невозможной.

желательно использовать для обозначений переменных содержательные имена, например speed_l для переменной, обозначающей скорость первого объекта.

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

могут использоваться и символьные переменные, причем символьные значения заключаются в апострофы, например s = ' Demo '.

9.2.Уничтожение определений переменных

Как мы уже рассматривали, в памяти компьютера переменные занимают определенное место, называемое рабочим пространством (workspace). Для очистки рабочего пространства используется функция clear в разных формах, например:

clear – уничтожение определений всех переменных;

clear х – уничтожение определения переменной х;

clear a, b, с – уничтожение определений нескольких переменных. Уничтоженная (стертая в рабочем пространстве) переменная становится

неопределенной. Использовать такие переменные нельзя, и такие попытки будут сопровождаться выдачей сообщений об ошибке.

10. Операторы и функции

Оператор – это специальное обозначение для определенной операции над данными – операндами. Например, простейшими арифметическими операторами являются знаки суммы +, вычитания –, умножения * и деления /.

Операторы используются совместно с операндами. Например, в выражении 2+3 знак + является оператором сложения, а числа 2 и 3 – опе-

рандами.

Следует отметить, что большинство операторов относится к матричным операциям, что может служить причиной серьезных недоразумений. Например, операторы умножения * и деления / вычисляют произведение и частное от деления двух массивов, векторов или матриц. Есть ряд специальных операторов, например оператор \ означает деление справа налево, а операторы .* и ./ означают почленное умножение и деление массивов.

15

Следующие примеры поясняют сказанное на примере операций с векторами:

>> 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,...) будет использоваться только в тех случаях, когда функция возвращает множественный результат.

16

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

17

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

 

 

- 0,12310 -7

- 0.123 е -7

456 • 1997

456 * 1997

2 π + e 3

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:

3 i

2 j

2 + 3 i -3. 14 i

-123. 456 + 2.7 e -3i

Ниже даны простейшие примеры работы с комплексными числами:

>>i ans =

0 + 1. 0000i

>>z = 2 + 3i

18

z=

2.0000 + 3. 0000 i >> abs (z)

ans =

3.6056

>>real (z) ans =

>>imag (z) ans =

>>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)

19

theta = 0. 5880

Формула Z = R .* exp (i * theta) дает переход от показательной формы представления комплексного числа к алгебраической;

» Z = R .* exp (i * theta) Z =

3. 0000 + 2. 0000 i

11.1. Системы линейных уравнений с комплексными коэффициентами

Программа MATLAB позволяет легко решать системы линейных уравнений с комплексными коэффициентами. Предположим, что дана система линейных уравнений:

&

&

(125+ 29,75i)=2,840,977i

I1

(200+361,9i)+I2

&

 

&

(287,529,75i)=5,9065,537i

I

(125+29,75i ) +I

2

1

 

 

 

Требуется найти токи I1 и I2. Для решения системы используется матрица коэффициентов R и матрица свободных членов F . Решение находится в виде произведения обратной матрицы коэффициентов на матрицу свобод-

ных членов:

W =R 1 F

Ниже (рис. 8) приведен фрагмент программы MATLAB, который показывает порядок решения системы линейных уравнений с комплексными коэффициентами.

Таким образом, ток I1 = – 0. 0041 – 0. 0150i, а токI2 = – 0. 0196 – 0. 0233i.

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

20

КОНТРОЛЬНЫЕ ВОПРОСЫ

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 осуществляется вычисление элементарных функции для векторов и матриц?

21

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

Ввести системные переменные и заполнить таблицу системных переменных (в тетради)

eps

realmin

 

 

 

Задание № 2

Решить арифметические примеры:

а) 52 167 ;

b)23 + 75 .

c)2 52 +0,42 40 cos 45°−14 403

realmax

1:0

0:0

 

 

 

d)|x| + √ 7 + y 2

e)m = Sin13 + Sin 13٥

f)p = log 7 + log 3

22

Значения переменных, вычисленные в течение текущего сеанса работы, сохраняются в специально зарезервированной области оперативной памяти компьютера. Открыть браузер рабочей области 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.

Лабораторная работа № 6

СИМВОЛЬНЫЕ ВЫЧИСЛЕНИЯ В MATLAB

Цели работы:

1.Знакомство с основными положениями пакета символьных вычис-

лений Symbolic Math Toolbox

2.Работа с символьными переменными, матрицами, математическими выражениями.

3.Освоение символьных аналитических вычислений – упрощение выражений, решение алгебраических уравнений, решение системы линейных уравнений, вычисление суммы ряда.

4.Освоение символьного интегрирования и символьного дифференцирования.

5.Получение практических навыков работы в диалоговом режиме.

ТЕОРЕТИЧЕСКИЙ МАТЕРИАЛ

1.Пакеты расширения MATLAB

Внастоящее время существуют десятки официально распространяемых пакетов расширения MATLAB, которые производятся как фирмой The Math-

23

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(‘ имя переменной ‘)

24

Например, создадим две символьных переменных 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]

25

A = [a, b, c] [b, c, a] [c, a, b]

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

2.4. Решение алгебраических уравнений

Для решения алгебраических уравнений используется команда solve

Пример 1

Решить уравнение: x2x1 72 = xx +11 + 2 52x .

>>[x] = solve ( ' 2 * x / (x - 1) – 7 / 2 = (x + 1 ) / (x - 1) + 5 / (2 – 2 * x ) ')

x= 2

2.5. Решение системы алгебраических уравнений

Для решения системы алгебраических уравнений используется команда solve

Пример 2

Решить систему алгебраических уравнений:

3x +4y =18

2x +5y =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

Вычислить сумму ряда 14 .

k=1 k

>> syms x k

26

>> s = symsum (1 / k ^ 4, 1, inf) s =

1 / 90 * pi ^ 4

Пример 5

Вычислить сумму ряда 10 14 .

k=1 k

>>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 – символьная подынтегральная функция, необязательные переменные:

27