ИВТ ЛР 01 Простейшие вычисления

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

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

Цели работы:
1. Знакомство с интерфейсом пакета MATLAB и основными положениями.
2. Знакомство с простыми типами данных, вводом данных и визуализацией результата вычислений.
3. Получение практических навыков работы в диалоговом режиме.
4. Работа с комплексными числами и комплексными функциями.

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

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

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

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

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

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

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

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

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


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

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

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

Браузер позволяет:
просмотреть существующие в памяти объекты;
редактировать их содержимое;
удалять объекты из памяти, т.к. матрицы и графики могут занимать многие мегабайты (выделить нужное и delete);
векторы и матрицы могут занимать большой объем памяти, цветные изображения с высоким разрешением, могут занимать в памяти объем, исчисляемый многими мегабайтами, и в этом случае оценка их размера становится необходимой.
Для вывода содержимого объекта достаточно выделить его имя с помощью мыши и щёлкнуть па кнопке Open. Объект можно открыть и двойным щелчком на его имени в списке. Кнопка Delete уничтожает объект с заданным именем и удаляет его из памяти, а кнопка Close закрывает окно просмотра.

3.2. Окно Array Editor

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

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

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

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

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

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

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-файлов выполняет синтаксический контроль программного кода по мере ввода текста. При этом используются следующие цветовые выделения:
– ключевые слова языка программирования – синий цвет;
– операторы, константы и переменные – чёрный цвет;
– комментарии после знака % – зелёный цвет;
– символьные переменные (в апострофах) – зелёный цвет;
– синтаксические ошибки – красный цвет.
Благодаря цветовым выделениям вероятность синтаксических ошибок резко снижается. Однако далеко не все ошибки диагностируются. Ошибки, связанные с неверным применением операторов или функций (например, применение оператора – вместо + или функции cos(x) вместо sin(x) и т. д.), не способна обнаружить ни одна система программирования. Устранение такого рода ошибок – дело пользователя, отлаживающего свои алгоритмы и программы.

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

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

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

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

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

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


5

4
2
9
1
5

a
c
w









а
2



б



u
j
i
b









0







2
8
5
4






е


8








в











6













г






Рис. 7. Примеры векторов и матриц
а - столбец, б- строка, в- прямоугольная матрица, г - квадратная матрица, е - матрица единичной размерности (простая переменная).

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

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
4 5]
M =
1 2
4 5
>> M (2,1) – индексированная переменная
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
>> u*3
ans =
3 6 9 12
>> u.^2
ans =
1 4 9 16
В языках программирования высокого уровня вычисления с массивами осуществляются поэлементно, поэтому в соответствующих процедурах приходится программировать вычисление выражений для каждого элемента массива. В 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
Аналогично вычисляются функции от двумерных массивов:
>> b= [0 pi / 6 ; pi / 4 pi / 2 ; 5 * pi / 6 3 * pi / 4]
b =
0 0.5236
0.7854 1.5708
2.6180 2.3562
>> sin (b)
ans =
0 0.5000
0.7071 1.0000
0.5000 0.7071
5.3.4 Создание матриц
Простейшей операций с матрицей является её создание. Для создания строки необходимо указать его имя, знак равенства и в квадратных скобках через запятую или через пробел перечислить значения элементов:
>> А=[1 2 3 4 5];
В случае если необходимо создать столбец чисел, то в качестве разделителя выступает символ точка с запятой:
>> B=[1 ; 3 ; 5 ; 7];
Для создания квадратной или прямоугольной матрицы понадобится чередовать оба этих способа.
>> С=[1 2 3 ; 4 5 6 ; 7 8 9];
5.3.5 Создание матриц специального вида.
Для генерации векторов пользователю предоставляется следующая команда: <Имя вектора>=<Начальное значение>:<Шаг>:<Конечное значение>
>> Х=6 : 0.2 : 26;
В результате получиться вектор X следующего вида:

6
6.2
6.4
6.6

25.6
25.8
26


В математике часто встречаются матрицы специального вида. Ниже приведён ряд из них:
Единичная матрица, рис. 8.а. В единичной матрице все элементы равны нулю, кроме элементов стоящих на главной диагонали (матрица является квадратной). Для создания единичной матрицы Вам необходимо подать команду <Имя матрицы>=eye(<Размер>);
>> a = eye(4);
Матрица со всеми единицами, рис. 8б. Эта матрица содержит единицы во всех ячейках. Для создания матрицы необходимо указать <Имя матрицы>=ones(<Кол-во строк>, <Кол-во столбцов>);
>> b = ones(3, 4);
Нулевая матрица, рис. 8в. Эта матрица содержит во всех своих ячейках одни нули. Для создания необходимо выполнить следующую команду: <Имя матрицы>=zeros(<Кол-во строк>, <Кол-во столбцов>);
>> c =zeros(4, 2);
Случайная матрица, рис. 8г. Все значения этой матрицы получаются с генератора случайных чисел. Для создания такой матрицы необходимо дать следующую команду: <Имя матрицы>=rand(<Кол-во строк>, <Кол-во столбцов>);
>> d =rand(3, 4);

1
0
0
0

1
1
1
1

0
0

5
6






0
1
0
0

1
1
1
1

0
0

4
1






0
0
1
0

1
1
1
1

0
0

0
3






0
0
0
1






0
0










а




б




в


г






Рис. 8. Специальные матрицы.
5.3.6 Доступ к ячейкам матрицы.
Для доступа к ячейкам матрицы необходимо указать имя матрицы, номер строки и номер столбца. Нумерация строк и столбцов ведётся с ЕДИНИЦЫ! Номера пишутся в круглых скобках. Общий формат записи: <Имя массива>(<Номер строки>, <Номер столбца>);
>> d(3,2)
ans =
2
>> d(3,1) = 9;
>> d
ans =
5 6
4 1
9 3
5.3.7 Умножение, деление матрицы на скаляр.
В математики для всех матриц определена операция умножения (деления) матрицы на скаляр (число) – «.*» («./»). Все значения матрицы в этом случае умножаются (делятся) на это число.

A(1,1)
A(1,2)
A(1,3)



A(1,1).*r
A(1,2).*r
A(1,3).*r

A(2,1)
A(2,2)
A(2,3)
.*
r
=
A(2,1).*r
A(2,2).*r
A(2,3).*r

A(3,1)
A(3,2)
A(3,3)



A(3,1).*r
A(3,2).*r
A(3,3).*r

5.3.8 Сложение, вычитание скаляра из матрицы.
Кроме операции умножения матрицы на скаляр, для матрицы и скаляра определены операции сложение «+» и вычитания «–». Действия так же выполняются с каждой ячейкой матрицы отдельно.

5.3.9 Сложение, вычитание матриц.
Эта операция допустима только с матрицами одинакового размера. При выполнении операции действие выполняется с соответствующими друг другу ячейками. Пример:

а(1,1)
а(1,2)
а(1,3)

b(1,1)
b(1,2)
b(1,3)

а(1,1)+ b(1,1)
а(1,2)+ b(1,2)
а(1,3)+ b(1,3)

а(2,1)
а(2,2)
а(2,3)
+
b(2,1)
b(2,2)
b(2,3)
=
а(2,1)+ b(2,1)
а(2,2)+ b(2,2)
а(2,3)+ b(2,3)

а(3,1)
а(3,2)
а(3,3)

b(3,1)
b(3,2)
b(3,3)

а(3,1)+ b(3,1)
а(3,2)+ b(3,2)
а(3,3)+ b(3,3)

5.3.10 Произведение матриц.
При выполнении операции перемножения матриц выполняется последовательное умножение строки на столбец. При этом количество столбцов в первой матрице должно равняться количеству строк во второй матрице. Матрица результата будет иметь столько же строк, сколько и в первой матрице, и количество столбцов равное количеству столбцов во второй матрице.

A(1,1)
A(1,2)
A(1,3)

B(1,1)
B(1,2)

A(1,1)*B(1,1)+ A(1,2)*B(2,1)+ A(1,3)*B(3,1)
A(1,1)*B(1,2)+ A(1,2)*B(2,2)+ A(1,3)*B(3,2)

A(2,1)
A(2,2)
A(2,3)
*
B(2,1)
B(2,2)
=
A(2,1)*B(1,1)+ A(2,2)*B(2,1)+ A(2,3)*B(3,1)
A(2,1)*B(1,2)+ A(2,2)*B(2,2)+ A(2,3)*B(3,2)





B(3,1)
B(3,1)






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

6.1. Понятие о математическом выражении

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

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

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

7.1.1. Основные положения для системных переменных

как отмечалось, системные переменные могут переопределяться. Можно задать системной переменной eps иное значение, например eps = 0.0001;
однако важно то, что их значения по умолчанию задаются сразу после загрузки системы;
поэтому неопределёнными, в отличие от обычных переменных, системные переменные не могут быть никогда.

7.2. Символьная константа

Символьная константа – это цепочка символов, заключённых в апострофы, например:
' Hellо my friend! '
' Привет '
' 2 + 3 '
Если в апострофы помещено математическое выражение, то оно не вычисляется и рассматривается просто как цепочка символов. Так что ' 2 + 3 ' не будет возвращать число 5.
Однако с помощью специальных функций преобразования символьные выражения могут быть преобразованы в вычисляемые. Соответствующие функции преобразования будут рассмотрены в дальнейшем. Символьные вычисления MATLAB может выполнять с помощью специального пакета расширения Symbolic Math Toolbox.

8. Текстовые комментарии

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

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

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


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

может содержать сколько угодно символов, но запоминается и идентифицируется только 31 начальный символ.
имя любой переменной не должно совпадать с именами других переменных, функций и процедур системы, то есть оно должно быть уникальным.
имя должно начинаться с буквы, может содержать буквы, цифры и символ подчёркивания _ недопустимо включать в имена переменных пробелы и специальные знаки, например +, -, *, / и т. д., поскольку в этом случае правильная интерпретация выражений становится невозможной.
желательно использовать для обозначений переменных содержательные имена, например speed_l для переменной, обозначающей скорость первого объекта.
переменные могут быть обычными и индексированными, то есть элементами векторов или матриц;
могут использоваться и символьные переменные, причём символьные значения заключаются в апострофы, например s='Demo'.

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

Как мы уже рассматривали, в памяти компьютера переменные занимают определённое место, называемое рабочим пространством (workspace). Для очистки рабочего пространства используется функция clear в разных формах, например:
– clear – уничтожение определений всех переменных;
– clear х – уничтожение определения переменной х;
– clear a, b, с – уничтожение определений нескольких переменных.
Уничтоженная (стёртая в рабочем пространстве) переменная становится неопределённой. Использовать такие переменные нельзя, и такие попытки будут сопровождаться выдачей сообщений об ошибке.

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

Оператор – это специальное обозначение для определённой операции над данными – операндами. Например, простейшими арифметическими операторами являются знаки суммы ( + ), вычитания ( – ), умножения ( * ) и деления ( / ).
Операторы используются совместно с операндами. Например, в выражении 2+3 знак + является оператором сложения, а числа 2 и 3 – операндами.
Следует отметить, что большинство операторов относится к матричным операциям, что может служить причиной серьёзных недоразумений.
Например, операторы умножения ( * ) деления ( / ) и возведения в степень ( ^ ) вычисляют произведение, частное от деления и возведение в степень двух массивов, векторов или матриц. Есть ряд специальных операторов, например оператор ( \ ) означает деление справа налево, а операторы (.*) (./) и (.^) означают почленное умножение, деление и возведение в степень массивов.
Следующие примеры поясняют сказанное на примере операций с векторами:
>> V1 = [2 4 6 8]
V1 =
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,...) будет использоваться только в тех случаях, когда функция возвращает множественный результат.


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) возвращает вектор-строку, содержащую простые множители числа n. Для массивов эта функция неприменима. Пример:
>> f = factor (5)
f =
120
sqrt (x)-вычисление квадратного корня из элементов массива х. Для отрицательных и комплексных элементов 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

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


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
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)
theta =
0. 5880
– Формула Z = R .* exp (i * theta) даёт переход от показательной формы представления комплексного числа к алгебраической;
» Z = R .* exp (i * theta)
Z =
3. 0000 + 2. 0000 i

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

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

Требуется найти токи I1 и I2. Для решения системы используется матрица коэффициентов R и матрица свободных членов F . Решение находится в виде произведения обратной матрицы коэффициентов на матрицу свободных членов:
F R W
·
· = 1
Ниже (рис. 9) приведён фрагмент программы MATLAB, который показывает порядок решения системы линейных уравнений с комплексными коэффициентами.
Таким образом, ток I1 = – 0. 0041 – 0. 0150i, а ток I2 = – 0. 0196 – 0. 0233i.


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


12. Погрешность измерения величин 

Пусть x – приближённое значение некоторой величины (например, полученное путём однократного измерения этой величины), а x0 – её точное значение
Абсолютной погрешностью величины называется разность
·x = |x – x0|.
Пример. В школе 1254 учащихся. При округлении этого числа до 1200 абсолютная погрешность составляет
· = |1200 – 1254| = 54, а при округлении до 1250:
· = |1250 – 1254| = 4.
Относительной погрешностью приближённого числа называется отношение абсолютной погрешности приближённого числа к самому этому числу:


Пример 
В школе 1254 учащихся. При округлении этого числа до 1200 абсолютная погрешность составляет 

· = |1200 – 1254| = 54, относительная погрешность равна или 4,3 %. 
При округлении до 1250:
· = |1250 – 1254| = 4, а относительная погрешность или 0,3 %.
В научных экспериментах многие величины определяются не непосредственно, а косвенным путём – измерением значений других величин. Так, чтобы найти плотность тела, измеряют его массу, взвешивая на весах, после чего определяют объём тела, погружая его в жидкость. Плотность выражается через массу и объём тела.

·=m/V
Масса и объём, входящие в эту формулу, измеряются с некоторой погрешностью; это означает, что и плотность, вычисленная по этой формуле будет иметь погрешность.

Существуют несколько правил, позволяющих рассчитывать погрешности величин.

Абсолютная погрешность суммы двух независимых величин равна сумме абсолютных погрешностей отдельных слагаемых:
·(x + y) = 
·x + 
·y.
Абсолютная погрешность разности двух независимых величин равна сумме абсолютных погрешностей уменьшаемого и вычитаемого:
·(x – y) = 
·x + 
·y.
Относительные погрешности при сложении и вычитании складывать нельзя.
Относительная погрешность произведения приближённо равна сумме относительных погрешностей отдельных сомножителей: 
·(xy)
·
·(x)+
·(y), в частности
·(x/y)
·
·(x)+
·(y)

Пример 12.1. 
Определить, какое равенство точнее: 911 = 0,818; 18 = 4,24;.
Решение.
Найдём значения данных выражений с большим числом десятичных знаков. Для этого выполним следующие действия: 
>> format long % длинное представление числа (15 знаков)
>> a1=9/11
a1 =
0.81818181818182
>> a2=sqrt(18)
a2 =
4.24264068711928
Затем вычислим предельные абсолютные погрешности:
>> abs(a1-0.818)
ans =
1.818181818182829e-004
>> abs(a2-4.24)
ans =
0.00264068711928

Округлим их с избытком:

Вычислим предельные относительные погрешности:
>> 0.00019/0.818
ans =
2.322738386308069e-004
>> 0.0027/4.24
ans =
6.367924528301887e-004
Таким образом,


Так как , то равенство  9/11 = 0,818 является более точным.

Пример 12.2. 
Округлить сомнительные цифры числа a, оставив верные знаки: 
Решение.
Пусть а = 2,3544;
·а = 0,2%; тогда 
·а = а·
·а = 0,00471. В данном числе верными являются три цифры, поэтому округляем его, сохраняя эти цифры:
а = 2,3544;
·а1 =
·а+
·окр= 0,0044+0,00471=0,00911<0,01
Значит, и в округлённом числе 2,35 все три цифры верны.

Пример 12.3. 
Найти предельную абсолютную и относительную погрешности числа 12,384, если оно имеет только верные цифры.
Решение.
Так как все пять цифр числа а =12,384 верны, то 13 EMBED Equation.3 1415

Пример 12.4. 
Вычислить и определить погрешности результата 13 EMBED Equation.3 1415,
где  n = 3,0567((0,0001), m = 5,72((0,02).

Решение.
Имеем:
13 EMBED Equation.3 1415
Ответ: 

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

Какие окна имеет интерфейс MATLAB, их назначение?
Какова структура окна Command Windows?
Как очистить окно Command Windows?
Как в MATLAB осуществляется ввод и выполнение команд?
Как увеличить длину командной строки Command Windows, распространив её на несколько физических строк командного окна?
Что называется рабочей областью MATLAB?
Как осуществляется просмотр и редактирование значений переменных в окне Workspace?
Как отобразить список переменных, созданных в данном сеансе работы, в командном окне?
Как удалить неиспользуемую более переменную из рабочего пространства MATLAB?
Как получить справку по выбранной команде MATLAB?
Для чего служит редактор М-файлов?
Как вызвать редактор М-файлов, и какие отладочные средства он имеет?
Как осуществляется цветовые выделения и синтаксический контроль при работе с пакетом MATLAB?
Как можно получить быструю справку по любой команде MATLAB?
Расскажите о MATLAB в роли супер калькулятора.
Что принято называть сессией при работе с MATLAB?
Как изображается и для чего служит комментарий?
Что такое интерактивный режим?
Перечислите основные объекты, с которыми работает MATLAB.
В каком окне можно скорректировать данные, занесённые в рабочую область и как вызвать это окно?
Что такое системные переменные MATLAB их идентификаторы?
Перечислите системные переменные и назовите, какие значения принимает каждая системная переменная по умолчанию.
Перечислите типы переменных, используемых в MATLAB.
Правила задания имени переменной.
Как присвоить переменной значение?
В каком формате в MATLAB представляются вещественные числа?
Какие форматы отображения вещественных чисел используются в MATLAB?
Как в MATLAB осуществляются операции с комплексными числами?
Как в MATLAB осуществляются операции с матрицами?
Перечислите основные арифметические операторы и их синтаксис
в системе MATLAB
Что такое встроенная функция? Перечислите алгебраические и арифметические встроенные функции в MATLAB.
Перечислите тригонометрические и обратные встроенные функции в MATLAB.
Записать выражение в MATLAB: 2
· + а 4.
Записать выражение в MATLAB: Sin 45 + Sin 45°.
Чем отличается действительное число от комплексного числа? Правила записи комплексных чисел в системе MATLAB.
Перечислите функции комплексной переменной в системе MATLAB.
Алгоритм решения системы линейных уравнений с комплексными коэффициентами.
ПРАКТИЧЕСКИЕ ЗАДАНИЯ

ЗАДАНИЕ 1:
а) вычислить значение функции y =f(x) в точке х0 
б) простроить график функции y =f(x) используя встроенную функцию MatLab poly(x,y) на интервале от х0 до хn , шаг аргумента x определить самостоятельно

Варианты заданий.
№ варианта
Функция
х0
хn

1
13 EMBED Equation.3 1415
5,5
8,5

2
13 EMBED Equation.3 1415
2,75
4,2

3
13 EMBED Equation.3 1415
3,1
4,0

4
13 EMBED Equation.3 1415
4,21
7,6

5
13 EMBED Equation.3 1415
6,32
7,8

6
13 EMBED Equation.3 1415
4,75
6,25

7
13 EMBED Equation.3 1415
2,35
4,55

8
13 EMBED Equation.3 1415
8,29
12,49

9
13 EMBED Equation.3 1415
4,56

6,25

10
13 EMBED Equation.3 1415
1,23
12,0

11
13 EMBED Equation.3 1415
7,55
9,65


Пример выполнения задания:

>> x=4.75;
>> y=(2/3*(sin(2*x))^2)-(3/4*(cos(2*x))^2)
y =
-0.7420
>> x=4.75:0.05:5; % задание вектора аргумента (x0:шаг аргумента:xn)
>> y=(2/3*(sin(2*x)).^2)-(3/4*(cos(2*x)).^2)
y =
-0.7420 -0.7069 -0.6454 -0.5597 -0.4534 -0.3307
>> plot(x,y)


Рис. 10. График функции 13 EMBED Equation.3 1415

со списком элементарных функций MatLab можно ознакомиться, набрав команду
>> help elfun
со списком операторов
>> help ops
Чтобы очистить командное окно, необходимо из меню Clear Command  выбрать команду  Command Window, очистить историю команд, Command History (Рис. 11)



Рис. 11. Использование команд меню Clear Command . 
ЗАДАНИЕ 2. 1. Определить, какое равенство точнее.
2. Округлить сомнительные цифры числа, оставив верные знаки.
3. Найти предельную абсолютную и относительную погрешности числа, если они имеют только верные цифры.
4. Вычислить и определить погрешности результата.

Варианты заданий.

№ варианта
Задание

1
13 EMBED Equation.3 1415

2
13 EMBED Equation.3 1415

3
13 EMBED Equation.3 1415

4
13 EMBED Equation.3 1415

5
13 EMBED Equation.3 1415

6
13 EMBED Equation.3 1415

7
13 EMBED Equation.3 1415


8

13 EMBED Equation.3 1415

9
13 EMBED Equation.3 1415

10
13 EMBED Equation.3 1415

11
13 EMBED Equation.3 1415












Приложенные файлы

  • doc 3960607
    Размер файла: 706 kB Загрузок: 0

Добавить комментарий