Учебно-методическое пособие к практикуму по курсу «Пакеты компьютерной алгебры»



Pdf көрінісі
бет7/15
Дата26.11.2023
өлшемі1,85 Mb.
#128313
түріУчебно-методическое пособие
1   2   3   4   5   6   7   8   9   10   ...   15
fliplr
и 
rot90
позволяют отражать и поворачивать векторы и 
матрицы. Покажем их работу на примере. 
Пример 37. Функции fliplr и rot90 
clc, clear 
d1=[1 2 3],d2=[11 12 13] 
rot90(d1) 
fliplr(d2) 
a1=[10 2 3; 40 5 6; 70 8 9] 
fliplr(a1) 
a2=[10 20 30; 4 5 6; 7 8 9] 
rot90(a2) 
С помощью функции 
reshape
можно изменить форму – размерность 
массива, количество элементов массива при этом остается неизменным. 
Пример 38. Функция reshape 
clc, clear 
d=1:12 
size(d) 
d=reshape(d,3,4) 
size(d) 
d=reshape(d,4,[]) 
size(d) 


25 
d=reshape(d,12,1) 
size(d) 
Функция 
repmat
позволяет задавать новую матрицу с помощью реплициро-
вания (повторения) исходной матрицы в соответствии с заданной размерно-
стью. 
Пример 39. Функция repmat 
d=1:3 
d1=repmat(d,2), d2=repmat(d,2,3) 
С помощью функции 
blkdiag
выполняют построение блочно-диагональных 
матриц, а с помощью функции spy можно отобразить структуру матрицы, её 
ненулевые элементы. 
Пример 40. Функция blkdiag 
clc, clear 
m1=[1 2; 3 4], m2=[10 20 30; 40 50 60],
m3=[2 4 6; 1 3 7; 5 4 3] 
% Формирование блочно-диагональной матрицы
m=blkdiag(m1,m2,m3) 
% Визуализация структуры матрицы
spy(m) 
В некоторых примерах, приведенных выше, использовалась функция 
size

возвращающая количество строк и количество столбцов объекта. Функция 
numel
возвращает общее количество элементов массива, а функция 
length
– количество элементов вектора или строки матрицы. 
Пример 41. Функции size, numel, length 
clc, clear 
v1=[1; 2; 3; 4], v2=[1 2 3 4] 
size(v1), size(v2) 
length(v1),length(v2) 
numel(v1),numel(v2) 
M=[1 2 3; 4 5 6] 
size(M), length(M), numel(M) 


26 
Логические операции с матрицами
Для матриц определены логические операции:
Операция 
Знак 
операции 
Равно 
== 
Не равно 
~= 
Больше 

Больше или равно 
>= 
Меньше 

Меньше или равно 
<= 
Логическое И 

Логическое ИЛИ 

Пример 42. Подсчет количества элементов матрицы, равных двум 
clc, clear 
A=[1 2; 3 2] 
sum(sum(A==2)) 
Пример 43. Подсчет количества одинаковых элементов в матрицах A и B и 
стоящих на одинаковых местах 
clc, clear 
A=[1 2; 3 2] 
B=[1 0; 3 5] 
sum(sum(A==B)) 


27 
Задачи для самостоятельного решения 
Вариант 1 
1. Задана матрица A=randi(*-5 5],3,3) 
a)
Определить количество ненулевых элементов. 
b)
Найти A+A', показать, что полученная матрица симметричная. 
c)
Определить количество элементов, равных двум. 
d)
Переставить верхнюю и нижнюю строки матрицы. 
e)
Найти сумму элементов главной диагонали матрицы. 
2. Заданы 5 матриц различного порядка. Создать блочно-диагональную 
матрицу, состоящую из заданных матриц-блоков. Отобразить структуру 
полученной матрицы с помощью spy.
3. Заданы матрицы одинаковой размерности:
A= randi([-5 5],3,3), B= randi([-5 5],3,3) 
a)
Определить количество позиций, на которых стоят ненулевые 
элементы в обеих матрицах. 
b)
Определить количество позиций, на которых, хотя бы в одной из 
матриц стоят ненулевые элементы. 
4. Задан вектор x=1:9. Получить из него матрицу 3-го порядка, в каждой 
строке которой записаны последовательно элементы вектора. 
5. Задан вектор x=1:4. Создать матрицу 4-го порядка, элементы каждой 
строки (столбца) матрицы являются элементами вектора. 
6. Задано целое число n и целочисленный вектор. Повторить каждый 
элемент вектора n раз. 
7. Задан вектор, в котором есть нулевые элементы. Каждый нулевой элемент 
заменить средним арифметическим элементов вектора. 


28 
Вариант 2 
1. Задана матрица A=randi(*-5 5],3,3) 
a)
Определить количество нулевых элементов. 
b)
Проверить – является ли матрица симметричной. 
c)
Определить количество элементов, неравных двум. 
d)
Переставить правый и левый столбцы матрицы. 
e)
Найти сумму элементов побочной диагонали матрицы. 
2. Заданы 5 матриц различного порядка. Создать блочно-диагональную 
матрицу из заданных матриц-блоков, блоки расположить вдоль побочной 
диагонали. Отобразить структуру полученной матрицы с помощью spy.
3. Заданы матрицы одинаковой размерности:
A= randi([-5 5],3,3), B= randi([-5 5],3,3) 
a)
Определить количество позиций, на которых стоят элементы, равные 
двум в обеих матрицах. 
b)
Определить количество позиций, на которых, хотя бы в одной из 
матриц стоят элементы, равные двум. 
4. Задан вектор x=1:9. Получить из него матрицу 3-го порядка, в каждом 
столбце которого записаны последовательно элементы вектора. 
5. Задан вектор x=1:4. Создать матрицу 4-го порядка, на диагоналях которой 
стояли бы элементы вектора. Если диагональ короче size(x), то заполнение 
начинать 1-го элемента вектора x. 
6. Задано целое число n и целочисленный вектор. Повторить каждый 
элемент вектора n раз. 
7. Задан вектор, в котором есть нулевые элементы. Каждый нулевой элемент 
заменить максимальным среди элементов вектора. 


29 
Вариант 3 
1. Задана матрица A=randi(*-5 5],3,3) 
a)
Определить количество отрицательных элементов. 
b)
Проверить – является ли матрица кососимметричной. 
c)
Определить количество элементов, равных минус единице. 
d)
Переставить местами главную и побочную диагонали матрицы. 
e)
Найти сумму элементов, стоящих выше главной диагонали. 
2. Заданы 5 матриц различного порядка. Создать матрицу из заданных 
матриц-блоков, блоки расположить в углах матрицы. Отобразить структуру 
полученной матрицы с помощью spy.
3. Заданы матрицы одинаковой размерности:
A= randi([-5 5],3,3), B= randi([-5 5],3,3) 
a)
Определить количество позиций, на которых стоят элементы, равные 
максимальному значению матрицы, в обеих матрицах. 
b)
Определить количество позиций, на которых, хотя бы в одной из 
матриц стоят максимальные элементы. 
4. Задан вектор x=1:16. Получить из него матрицу 4-го порядка, в каждом 
столбце которого записаны последовательно элементы вектора. 
5. Задан вектор x=1:3. Создать матрицу 3-го порядка, на диагоналях которой 
стояли бы элементы вектора. Если диагональ короче size(x), то заполнение 
начинать 1-го элемента вектора x. 
6. Задано целое число n и целочисленный вектор. Повторить каждый 
элемент вектора n раз. 
7. Задан вектор, в котором есть ненулевые элементы. Каждый ненулевой 
элемент заменить минимальным среди элементов вектора. 


30 
Вариант 4 
1. Задана матрица A=randi(*-5 5],3,3) 
a)
Определить количество элементов, равных 3. 
b)
Проверить – является ли матрица положительноопрделенной. 
c)
Определить количество неотрицательных элементов. 
d)
Переставить угловые элементы матрицы. 
e)
Найти сумму элементов, стоящих ниже главной диагонали. 
2. Заданы 5 матриц различного порядка. Создать матрицу из заданных 
матриц-блоков, блоки расположить вдоль 1-й строки матрицы. Отобразить 
структуру полученной матрицы с помощью spy.
3. Заданы матрицы одинаковой размерности:
A= randi([-5 5],3,3), B= randi([-5 5],3,3) 
a)
Определить количество позиций, на которых стоят элементы, равные 
максимальному отрицательному элементу матрицы, в обеих матрицах. 
b)
Определить количество позиций, на которых, хотя бы в одной из 
матриц стоят максимальные отрицательные элементы. 
4. Задан вектор x=1:16. Получить из него матрицу 4-го порядка, в каждой 
строке которой записаны последовательно элементы вектора. 
5. Задан вектор x=1:3. Создать матрицу 3-го порядка, на диагоналях которой 
стояли бы элементы вектора. Если диагональ короче size(x), то заполнение 
начинать 1-го элемента вектора x. 
6. Задано целое число n и целочисленный вектор. Повторить каждый 
элемент вектора n раз. 
7. Задан вектор, в котором есть ненулевые элементы. Каждый ненулевой 
элемент заменить средним значение среди элементов вектора. 


31 
Графика в MatLab 
Система MATLAB предоставляет огромное количество графических 
средств. К ним относятся команды построения простых графиков функций, 
комбинированные и презентационные графики, элементы анимации и сред-
ства проектирования графического пользовательского интерфейса (GUI).
Построение графиков функций 
Рассмотрим на примерах способы построения графиков в ML. Если 
заданы два вектора одинакового размера, хранящие координаты функции, 
то построить график функции можно с помощью команды 
plot

Пример 1. Построение графика функции 
% задание вектора x
x = [0:0.005:5];
% расчет значений функции 
y = exp(-x).*sin(10*x);
% построение графика функции 
plot(x, y) 
Графическое окно пакета MatLab 


32 
После выполнения скрипта из примера #1 на экране возникнет графическое 
окно, выполняя команды меню этого графического окна File→Save as, 
File

Export Setup, можно сохранить построенный график в файл MatLab с 
расширением fig, либо экспортировать в графические форматы - png, eps, gif. 
Файл с расширением fig можно открыть в MatLab. Результатом открытия 
файла будет графическое окно.
Несколько графиков в одном графическом окне
Для того, чтобы построить еще один график в этом же графическом 
окне, то можно действовать двумя путями – воспользоваться командой hold 
on, либо добавить еще два аргумента в команду plot. С помощью функции 
delete производят удаление графика.
Пример 2. Два графика функции в одних осях с помощью hold on 
x = [0:0.005:5];
y1 = exp(-x).*sin(10*x);
y2 = exp(-x).*cos(10*x);
% построение первого графика функции
plot(x, y1) 
% продолжать построение в этом же окне
hold on 
% построение второго графика функции 
plot(x, y2) 
Пример 3. Два графика функции в одних осях с помощью plot 
x = [0:0.005:5];
y1 = exp(-x).*sin(10*x);
y2 = exp(-x).*cos(10*x);
% построение сразу двух графиков функций
plot(x, y1, x, y2) 


33 
Установка параметров графиков
Задать цвет и тип линии для графиков можно несколькими способа-
ми. Рассмотрим один из этих способов на примере.
Пример 4. Задание цвета и типа линии для графика 
x = [0:0.005:5];
y = exp(-x).*sin(10*x);
plot(x, y,
'r:'

Обозначения для типа линий, цветов и маркеров приведены в таблице ниже. 
Цвет 

Желтый 

Розовый 

Голубой 

Красный 

Зеленый 

Синий 

Белый 

Черный 
Линия 


Достарыңызбен бөлісу:
1   2   3   4   5   6   7   8   9   10   ...   15




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет