Добавил:
@wequalwo Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лаб1 / МОТС_лабка1

.docx
Скачиваний:
4
Добавлен:
08.09.2024
Размер:
1.81 Mб
Скачать

МИНОБРНАУКИ РОССИИ

Санкт-Петербургский государственный

электротехнический университет

«ЛЭТИ» им. В.И. Ульянова (Ленина)

Кафедр АПУ

отчет

по лабораторной работе №1

по дисциплине «Математические основы теории систем»

Тема: Матричные преобразования и трехмерная графика.

Студенты гр. 0392

Стаськова А.Р.

Частухин Д.А.

Иванов С.К.

Преподаватель

Гульванский В.В.

Санкт-Петербург

2022

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

Теоретические положения. Пусть дана функция двух аргументов . В области определения , командой [X,Y] = meshgrid(xgv,ygv) создайте координатную сетку с заданным шагом. Теперь можно создавать саму функцию, например:

>>[x,y]=meshgrid(-10:0.3:10,-10:0.3:10);

>> z=(sin(x)./x).*(sin(y)./y);

>> surf(x,y,z)

Полученная поверхность приведена на рисунке 1.1. Можно произвольно выбрать шкалу цветовых оттенков (см. help colormap).

Рис. 1.1. Трехмерная поверхность

Второй способ состоит в формировании двух взаимно перпендикулярных плоскостей X и Y – аналогов двумерных осей ординат.

>> x=-10:10;

>> y=ones(1,21);

>> X=x'*y;

>> Y=y'*x;

Теперь используем координатные плоскости для построения конуса:

>> R1=sqrt(X.^2+Y.^2);

>> surf(X,Y,-R1);

или пирамиды (рис. 3.2):

>> R2=max(abs(X),abs(Y))

>> surf(X,Y,-R2);

Матричные операции, вычисление функций от матриц. Кратко напомним основные матричные операции.

Определитель .

, ­– алгебраическое дополнение;

Обратная матрица .

– союзная матрица;

Умножение матриц . Элемент результирующей матрицы на пересечении строки и столбца равен сумме попарных произведений элементов строки матрицы и столбца матрицы :

Возведение в степень осуществляется ‑кратным умножением матрицы на себя.

Выполнение работы.

clear all

close all

x = -10:10;

y = ones(1, 21);

X = x'*y;

Y = y'*x;

  1. Строим пирамиду, приавляя к матрице пирамиды единичную матрицу, чтобы определитель был отличен от нуля.

R = max(abs(X), abs(Y));

d = det(R);

R1 = R+eye(21);

d1 = det(R1);

Рис 2.1 Определитель.

  1. Сравниваем результаты двух операций – обращения матрицы командой inv и поэлементного деления матрицы ones(n,n) на R.

Рис 2.2 Сравнение обращение и поэлементного деления.

R_inv = inv(R1);

R_ones = ones(21, 21)./R1;

figure('Name','?????????','NumberTitle','off');

%title('?????????');

subplot(1, 2, 1)

surf(X, Y, -R_inv)

title('inv');

subplot(1, 2, 2);

surf(X, Y, -R_ones)

title('./')

  1. Сравниваем матричные операции sqrtm(A), logm(A), expm(A) с аналогичными операциями, выполняемыми поэлементно.

Рис 2 3 Матричный логарифм.

Рис 2.4 Матричное извлечение корня.

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

Рис 2.5 Сравнение матричного экспоненциала и поэлементной экпоненты

R_sqrtm = sqrtm(R1);

R_sqrt = sqrt(R1);

figure('Name','??????????','NumberTitle','off');

%subplot(2, 1, 1)

surf(X, Y, -R_sqrt);

title('sqrt');

%subplot(2, 1, 2)

%surf(X, Y, -R_sqrtm);

%title('sqrtm');

R_logm = logm(R1);

R_log = log(R1);

figure('Name','????????','NumberTitle','off');

%subplot(2, 1, 1)

surf(X, Y, -R_log);

title('log');

%subplot(2, 1, 2)

%surf(X, Y, -R_logm);

%title('logm');

R_expm = expm(R1);

R_exp = exp(R1);

figure('Name','??????????','NumberTitle','off');

subplot(1, 2, 1)

surf(X, Y, -R_exp);

title('exp');

subplot(1, 2, 2)

surf(X, Y, -R_expm);

title('expn');

  1. Преобразуем пирамиду R операциями врезки, «отрезав» какой-нибудь из углов.

Рис 2 6 Пирамида с отрезанным углом.

  1. Создаем 9 конусов c помощью матрицы 3*3

x = -10:10;

y = ones(1, 21);

X = x'*y;

Y = y'*x;

R = sqrt(X.^2 + Y.^2);

ons = ones(3, 3);

%ons(2, 2) = 0;

R_kron = kron(ons, R);

figure('Name','???????????','NumberTitle','off');

x = -31:31;

y = ones(1, 63);

X = x'*y;

Y = y'*x;

surf(X, Y, -R_kron);

axis equal

Рис 2.7 Конус, размноженный с помощью тензорного произведения.

Делаем центральный конус в два раза выше соседей.

x1 = -10:10;

y1 = ones(1, 21);

X1 = x1'*y1;

Y1 = y1'*x1;

ons1 = ones(3, 3);

ons1(2, 2) = 0;

R_kron1 = kron(ons1, R);

R2 = sqrt(X1.^2 + Y1.^2);

R2 = 2*R2 - 10*sqrt(2);

ond = [0, 0, 0; 0, 1, 0; 0, 0, 0];

R_kron2 = kron(ond, R2);

figure('Name','??????????','NumberTitle','off');

x1 = -31:31;

y1 = ones(1, 63);

X1 = x1'*y1;

Y1 = y1'*x1;

surf(X1, Y1, -R_kron1-R_kron2);

axis equal

Рис 2.8 Центральный конус увеличен.

  1. Строим тепловые карты на основе графиков из предыдущего пункта.

Рис 2.9 Heatmap

Рис 2.10 Imagesc.

figure('Name','heatmap','NumberTitle','off');

subplot(1, 2, 1);

heatmap(-R_kron)

grid off

subplot(1, 2, 2);

heatmap(-R_kron1-R_kron2)

grid off

figure('Name','imagesc','NumberTitle','off');

subplot(1, 2, 1);

imagesc(-R_kron)

grid off

subplot(1, 2, 2);

imagesc(-R_kron1-R_kron2)

grid off

Выводы.

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

Соседние файлы в папке Лаб1