39075

MATLAB. Арифметические и логические операции. Графики функций

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

Информатика, кибернетика и программирование

Задание: Выполнить арифметические и логические операции в том числе с комплексными числами. Комплексные числа. Числа можно считать константами. Числа используются в общепринятом представлении о них.

Русский

2013-09-30

970.82 KB

12 чел.

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

MATLAB. Арифметические и логические операции. Графики функций.

Задание:

  1.  Выполнить арифметические и логические операции, в том числе с комплексными числами.
  2.  Построить графики:

- функции  и  в общем виде (использовать разные стили и масштабы, подписи, легенды, сетки)

- графики функций в полярных координатах, гистограммы

- средства управления в графическом окне, редактирование графиков.

Теоретическая справка:

Арифметические и логические операции. Комплексные числа.

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

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

0

-3

2.301

123.456e-24

-234.456e10

Как нетрудно заметить, в мантиссе чисел целая часть отделяется от дробной не запятой, а точкой, как принято в большинстве языков программирования. Для отделения порядка числа от мантиссы используется символ e. Знак «плюс» у чисел не проставляется, а знак «минус» у числа называют унарным минусом. Пробелы между символами в числах не допускаются.

Числа могут быть комплексными: z=Re(x)+Im(x)*i. Такие числа содержат действительную Re(z) и мнимую Im(z) части. Мнимая часть имеет множитель i или j, означающий корень квадратный из –1:

3i

2j

2+3i

-3.141i

-123.456+2.7e-3i

Функция real(z) возвращает действительную часть комплексного числа,

Re(z), а функция imag(z) – мнимую, Im(z). Для получения модуля комплексного числа используется функция abs(z), а для вычисления фазы – angle(Z). Ниже даны простейшие примеры работы с комплексными числами:

>> i

ans = 0 + 1.0000i

>> j

ans = 0 + 1.0000i

>> z=2+3i

z = 2.0000 + 3.0000i

>> abs(z)

ans = 3.6056

>> real(z)

ans = 2

>> imag(z)

ans = 3

>> angle(z)

ans = 0.9828

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

Некоторые константы в MATLAB принято называть системными переменными, поскольку, с одной стороны, они задаются системой при ее загрузке, а с другой – могут переопределяться. Основные системные переменные, применяемые в системе MATLAB, указаны ниже:

• i или j –мнимая единица (корень квадратный из –1);

• pi – число p = 3,1415926…;

• eps – погрешность операций над числами с плавающей точкой (2–52);

• realmin – наименьшее число с плавающей точкой (2–1022);

• realmax – наибольшее число с плавающей точкой (21023)

• inf – значение машинной бесконечности;

• ans – переменная, хранящая результат последней операции и обычно вызывающая его отображение на экране дисплея;

• NaN – указание на нечисловой характер данных (Not-a-Number).

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

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

Операторы отношения служат для сравнения двух величин, векторов или матриц, все они имеют две сравнимые величины. Следующая таблица содержит основные операторы отношения:

Логические операторы служат для реализации поэлементных логических операций над элементами одинаковых по размеру массивов согласно следующей таблице

Создание графика

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

Функция plot имеет различные формы, связанные с входными параметрами, например plot(y) создает кусочно-линейный график зависимости элементов y от их индексов. Если в качестве аргументов заданы два вектора, то plot(x,y) создаст график зависимости y от x. Например, для построения графика функции sin в интервале от 0 до 2π, сделаем следующее

Программа построила график зависимости, который отображается в окне Figure 1

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

 

Возможно изменение цвета, стиля линий  маркеров, таких как знаки плюс и кружки, следующим образом

Plot(x, y, ‘цвет_стиль_маркер’)

цвет_стиль_маркер – это 1-, 2-, 3- символьная строка (заключенная в одинарные кавычки), составленная из типов цвета, стиля линий и маркеров.

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

subplot (m, n, p)

Разбивает окно изображений на матрицу m на n подграфиков и выбирает p-ый подграфик текущим.

Управление осями

Функция axis имеет несколько возможностей для настройки масштаба, ориентации и коэффициента сжатия.

Обычно MATLAB находит максимальное и минимальное значение и выбирает соответствующий масштаб и маркирование осей. Функция axis заменяет значения по умолчанию предельными значениями, вводимыми пользователем.

Axis([xmin xmax ymin ymax])

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

axis square - создает x и y оси равной длины, а

axis equal - создает отдельные отметки приращений для x и y осей одинаковой длины. Так функция

plot(exp(i*t)) - следующая либо за axis square, либо за axis equal превращает овал в правильный круг.

axis auto – возвращает значения по умолчанию и переходит в автоматический режим.

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

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

grid off – выключает сетку координат, а

grid on – включает ее заново.

Например, включение отображения сетки

x = logspace(-1,2);

subplot(2,1,2),loglog(x,exp(x),'-s')

grid on

Функции xlabel, ylabel, zlabel добавляют подписи к соответствующим осям, функция  title  добавляет заголовок в верхнюю часть окна, а функция text вставляет текст в любое место графика. Пример,

В MATLAB реализована функция так называемых легенд legend. Например,

hleg1 = legend('cos_x','sin_x');

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

figure

t = 0:.1:2*pi;

subplot(2,1,1),polar(t,sin(2*t).*cos(2*t),'--r')

А также возможно построение гистограмм с помощью функции hist. Гистограмма  представляет собой столбиковую диаграмму, характеризующую число попаданий элементов вектора v в каждый из k интервалов. Данные для гистограммы получают с помощью следующих функций:

N= hist(Y)

N= hist(Y, M)

N=hist(Y, X)

[N,X]=hist (…)

В функциях приняты обозначения:

- Y – вектор чисел, возвращаемых для десяти интервалов, выбираемых автоматически;

- M – количество интервалов;

- X – вектор.

Команда hist(…) с синтаксисом, описанным в функциях выбора чисел, строит график гистограммы.

x = -4:0.1:4;

y = randn(10000,1);

subplot(2,1,2),hist(y,x)

В MATLAB возможно редактирование графика прямо в графическом окне. Трехмерные графики можно вращать в разные стороны, растягивать, сжимать и прочее