Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛР методичка МС / Портнгина В.В. ИНФОРМАТИКА, ОСНОВЫ РАБОТЫ В MATLAB.pdf
Скачиваний:
75
Добавлен:
10.06.2015
Размер:
701.88 Кб
Скачать

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

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

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

ИНФОРМАТИКА

ОСНОВЫ РАБОТЫ В 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: x y

>>

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

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

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

 

 

- 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

20

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)

21

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

22