Добавил:
t.me Инфо для ГУАП студентов от меня: https://kafaka.notion.site/99e6d9b70ca74f7baef3daea17839e5a Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Churilovas_lab_Rabota_1.docx
Скачиваний:
5
Добавлен:
10.11.2024
Размер:
485 Кб
Скачать
☆

Часть 2. Основы работы с matlab

Упражнение 1.

Объявим в рабочем пространстве системы MATLAB двумерную матрицу A. Определим её элементы с помощью операции конкатенации, то есть запишем значения в квадратных скобках «[]», отделив знаком «;» каждый новый столбец.

На рисунке 5 показан созданный массив А.

Рисунок 5 – Задание матрицы с помощью операции конкатенации

Упражнение 2.

В приложении MATLAB реализована возможность генерации последовательности элементов, равномерно распределенных на интервале от 0 до 1. Данное действие выполняется путём применения функции rand(). Используем этот метод для заполнения массива B размером 3*3.

На рисунке 6 приведена смоделированная программой квадратная матрица В.

Рисунок 6 – Генерация матрицы со случайными элементами

Упражнение 3.

Результат выполнения действия A+10*B представлен на рисунке 7. Для вычисления значений по приведенной формуле использовались стандартные операции сложения и умножения.

Рисунок 7 – Выполнение действия А+10*В

Перемножение матриц по правилам линейной алгебры осуществляется с помощью соответствующего оператора «*». На рисунке 8 показаны элементы нового массива M2, значения которых найдены как A*B.

Рисунок 8 – Выполнение действия А*В

Поменять местами строки матрицы с ее столбцами можно операцией транспонирования, которая закреплена за знаком «.'». Определенный таким путём массив приведен на рисунке 9.

Рисунок 9 – Выполнение действия В.’

Почленное умножение элементов одного массива на элементы другого реализуется с помощью комбинации знаков «.*». Применение данного оператора отображено на рисунке 10.

Рисунок 10 – Выполнение действия А.*В

Распределить элементы матрицы А по возрастанию позволит обращение к команде sort(). Самый простой способ вызова функции – передать имя массива, значения которого требуется рассортировать. Пример осуществления отмеченной операции показан на рисунке 11.

Рисунок 11 – Выполнение операции sort()

Определим максимальный и минимальный элементы матрицы В. Для выполнения данной задачи в отношении к двумерному массиву необходимо применить функции max() и min() дважды.

Результат поиска максимального значения представлен на рисунке 12.

На рисунке 13 приведен синтаксис обращения к команде min().

Рисунок 12 – Выполнение операции max()

Рисунок 13 – Выполнение операции min()

Определитель квадратной матрицы вычисляется с помощью функции det(), пример вызова которой отображен на рисунке 14.

Рисунок 14 – Выполнение операции det()

Упражнение 4.

Объявим массив С размером 3*1 с помощью функции zeros(). Данная команда создаст матрицу с указанным числом строк и столбцов и заполнит её нулями. Выполнение описанного действия показано на рисунке 15.

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

На рисунке 16 представлен конечный вид матрицы С.

Рисунок 15 – Применение функции zeros()

Рисунок 16 – Применение индексации

Упражнение 5.

Решим систему алгебраических линейных уравнений вида A*X=C путём применения оператора обратного деления «\». Выведем следующую формулу: X=A\C. Результат определения значений столбца X представлен на рисунке ниже.

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

Упражнение 6.

Определим элементы заданного массива D. В его записи, приведенной на рисунке 18, применим следующие встроенные функции: abs() – модуль переданной переменной, sin() – синус числа, а также воспользуемся математическими операторами сложения «+» и почленного возведения в степень «.^».

Рисунок 18 – Определение матрицы

Упражнение 7.

Внесем векторы a и b в список переменных программы, отметив их значения в квадратных скобках «[]». Созданные таким образом параметры показаны на рисунке 19.

Найдём скалярное произведение векторов a и b путём применения комбинации, состоящей из функции sum() и специального оператора умножения «.*». На рисунке 20 демонстрируется полученный численный результат.

Рисунок 19 – Задание векторов в системе

Рисунок 20 – Скалярное произведение векторов

Для нахождения векторного произведения предназначена функция cross(), пример применения которой приведен на рисунке 21.

Длина вектора может быть найдена как скалярное произведение вектора на самого себя, то есть за счет использования команды sum() и оператора «.*». На рисунке 22 показан процесс выполнения отмеченных действий со строкой а.

Рисунок 21 – Векторное произведение векторов

Рисунок 22 – Длина вектора

Упражнение 8.

Для построения графиков применим функцию plot(). Чтобы разместить несколько линий в одной области, воспользуемся командой hold on.

Реализуем первичные построения. В командном окне запишем набор инструкций:

x=0:4*pi;

y=exp(-(x).^2);

z=atan(x.^(1/2));

plot(x,y);

hold on;

plot(x,z);

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

Внесем следующие дополнения в записи функций plot():

plot(x,y,'g-'); %зеленая непрерывная линия

plot(x,z,'k--'); %черная штриховая линия

Для добавления пояснительных сведений воспользуемся рядом команд: title() – помещение заголовка, xlabel() и ylabel() – вставка подписей к осям координат, text() – расположение комментария. В рабочем поле запишем строки:

xlabel('Координатная ось ОХ');

ylabel('Координатная ось ОY');

title('Графики функций y(x) и z(x)');

text(1.7, 0.2, 'y(x)');

text(6, 1.16, 'z(x)');

Полученный чертеж графиков функций y(x) и z(x) представлен на иллюстрации 23.

Рисунок 23 – Применение символьных стилистических маркеров и дополнительных графических функций

Упражнение 9.

Построим графики функций y(x) и z(x) в разных подобластях одного графического окна с помощью команды subplot(). Данный инструмент позволяет разбить пространство вывода на несколько частей, в каждую из которых можно вывести различных кривые.

Воспользуемся следующим набором программных операторов:

x=0:2*pi;

y=exp(-(x).^2);

z=atan(x.^(1/2));

subplot(1,2,1);

plot(x,y);

title('График функции y(x)');

subplot(1,2,2);

plot(x,z);

title('График функции z(x)');

Внешний вид графического окна с двумя обособленными областями приведен на рисунке 24.

Рисунок 24 – Построение графиков в разных подобластях одного графического окна

Упражнение 10.

Построим поверхность, описанную функцией f(x, y). Для задания фигуры в пространстве сформируем сетку путём обращения к команде meshgrid(). Следом применим функцию mesh(), непосредственно выполняющую образование поверхности по указанным векторам.

В командном окне среды запишем программные строки:

U=1:0.05:2;

V=1:0.05:2;

[X,Y]=meshgrid(U,V);

F=log(X.^2+Y.^2-X.*Y);

mesh(X,Y,F);

title('Поверхность f(x, y)');

На рисунке 25 отображена полученная поверхность.

Рисунок 25 – Поверхность, построенная с помощью функции mesh()