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



бет3/9
Дата16.10.2023
өлшемі132,17 Kb.
#115900
түріУчебно-методическое пособие
1   2   3   4   5   6   7   8   9
Байланысты:
Учебно-методическое пособие к практикуму по курсу «Пакеты компью-


Разделителями данных в векторах и матрицах служат пробел и запятая в
строке, и точка с запятой - в столбце.
Пример 1. Задание векторов
% Вектор-строка
a1=[1 2 3]
% Вектор-строка
a2=[1,2,3]
% Вектор-столбец
a3=[1;2;3]
Пример 2. Задание матриц
% Матрица, размера 2х3
b1=[1 2 3; 4 5 6]
% Матрица, размера 3х2
b2=[1 2; 3 4; 5 6]
Значения вектора можно задать с помощью следующей конструкции:
[начальное значение : шаг : конечное значение], 
или
[начальное значение : : конечное значение], 



13
тогда шаг по умолчанию равен единице. Квадратные скобки в этом выраже-


нии можно опустить.
Пример 3. Задание вектора и вычисление вектора
% Задаем вектор x
x=0:0.01:6
% Вычисляем вектор y
y=sin(x)
Функцией
x = linspace(начальное значение, конечное значение), 
также можно пользоваться при создании линейного массива. При этом век-
тор x по умолчанию будет содержать сто компонент. Возможен и другой спо-
соб вызова функции linspace - с тремя входными параметрами, послед-
ним из которых является количество компонент вектора.
Пример 4. Функция linspace
% Вектор из 100 компонент
c1=linspace(1,100)
% Вектор из 20 компонент
c2=linspace(1,100,20)
Обращение к элементам матрицы
Для обращения к элементам матрицы используют круглые скобки ( ).
Первый индекс – номер строки, второй – номер столбца. Возможно задавать
диапазон строк – столбцов.
Пример 5. Задание матрицы и обращение к ее элементам
% Очистка экрана
clc
% Очистка переменных
clear
% Задание матрицы
A=[1 2 3; 4 5 6; 7 8 9]
% Изменение 1-го элемента матрицы
A(1,1)=100



14
% Изменение 3-й строки матрицы


A(:,3)=50
% Изменение 2-го столбца матрицы
A(2,:)=33
В примере, представленном выше, знак двоеточие обозначает, что в
рассмотрение берутся все элементы.
Пример 6. Изменение фрагмента матрицы
clc
% Очистка переменной A
clear A
% Задание квадратной матрицы 7-го порядка из единиц
A=ones(7)
% Изменение фрагмента матрицы
A(2:6,2:6)=55
Пример 7. Использование ключевого слова end
clear
A
A=ones(7)
% Изменение фрагмента матрицы
A(4:end,4:end)=-21
В примере #6 значения элементов строк и столбцов со 2 по 6 заменяются на
55. В примере #7 использовано ключевое слово end для обозначения конца
диапазона.
Удаление элементов матрицы
Удалить из матрицы можно строку или столбец целиком. Для
удаления строки или столбца необходимо присвоить удаляемому элементу
пустой массив.
Пример 8. Удаление элементов матрицы
% Задание матрицы
A=[5 5 5; 2 10 2; 2 10 2]



15
% Удаление 1-й строки матрицы


A(1,:)=[]
% Удаление 2-го столбца матрицы
A(:,2)=[]
Пример 9. Удаление нескольких строк матрицы
% Задание матрицы
A=[1 1 1; 2 2 2; 7 3 3]
% Удаление 2-х строк матрицы
A(1:2,:)=[]
% Удаление двух последних элементов матрицы
A(2:end)=[]
Некоторые специальные матрицы
Приведем примеры некоторых специальных и часто используемых
матриц.
Пример 10. Матрица из единиц
% Матрица из единиц 5-го порядка
A=ones(5)
% Матрица из единиц, в которой 2 строки и 3 столбца
B=ones(2,3)
Пример 11. Матрица из нулей
% Матрица из нулей 3-го порядка
C=zeros(3)
% Матрица из нулей, в которой 2 строки и 6 столбцов
D=zeros(2,6)
Обычно команду zeros используют для инициализации матриц.
Пример 12. Единичная матрица
% Единичная матрица 3-го порядка
E=eye(3)
% Единичная матрица, в которой 3 строки и 4 столбца
F=eye(3,4)



16
Следующий пример демонстрирует команду magic, которая позволяет


формировать матрицу Альбрехта Дюрера, или магический квадрат. Данная
матрица знаменита тем, что суммы элементов в строках, столбцах и
диагоналях одинаковы.
Пример 13. Магический квадрат
% Матрица Дюрера 3-го порядка
M3=magic(3)
% Матрица Дюрера 5-го порядка
M5=magic(5)
Создание матриц, заполненных случайными числами
Существует несколько функций, позволяющих заполнять матрицы
случайными числами. Рассмотрим несколько примеров, реализующих это.
Пример 14. Функция rand
% Матрица 5-го порядка,
% заполненная вещественными случайными числами
% с равномерным распределением из открытого интервала
(0,1)
A=rand(5)
% Матрица 2x3,
A=rand([2 3])
Пример 15. Заполнение матрицы случайными целыми числами
% Используем функцию округления round
% Заполняем матрицу случайными целыми числами от 0 до
10
A=round(rand(8)*10)
% Заполняем матрицу случайными целыми числами от -5 до
5
B=round(rand(8)*10-5)



17
Пример 16.


Заполнение матрицы случайными целыми с помощью функции randi
% Матрица 15-го порядка с элементами в диапазоне от -20
до 20
A=randi([-20 20],15)
% Матрица 5x7 с элементами в диапазоне от -3 до 3
B=randi([-3 3],5,7)
Поэлементные операции
Для
выполнения
поэлементной
арифметической
операции
необходимо поставить точку перед знаком операции:
A.+B
A.-B
A.*B
A./B
A.\B
A.^B
Пример 17. Поэлементные операции с векторами
% Заполнение векторов. Вектора одинаковой длины
v1=10:10:50, v2=1:5
% Поэлементное умножение векторов
r_1=v1.*v2
% Поэлементное деление векторов
r_2=v1./v2
% Поэлементное суммирование векторов и умножение на
число
% Точку в данном случае ставить необязательно
r_3=0.1*v1+100*v2
Пример 18. Поэлементные операции с матрицами
% Заполнение матриц. Матрицы одинаковой размерности
m1=[2 4 6; 3 7 9], m2=[6 4 2; 9 7 3]
% Поэлементное умножение матриц
z_1=m1.*m2
% Поэлементное деление матриц
z_2=m2./m2
% Поэлементное суммирование матриц и умножение на число
% Точку в данном случае ставить необязательно
z_3=m1+10*m2



18
Пример 19. Поэлементное деление прямое и обратное


% Заполнение векторов. Векторы одинаковой размерности
q1=[1 2 3 4], q2=[10 20 30 40]
% Поэлементное прямое деление векторов
p_1=q1./q2
% Поэлементное обратное деление векторов
p_2=q1.\q2
% Заполнение матриц. Матрицы одинаковой размерности
h1=[10 20; 30 40], h2=[5 10; 15 20]
% Поэлементное прямое деление матриц
w_1=h1./h2
% Поэлементное обратное деление матриц
w_2=h1.\h2
Матричные операции
В MatLab определены матричные операции по правилам линейной
алгебры: при сложении и вычитании должны совпадать размерности, при
умножении и делении число столбцов первого матричного сомножителя и
число строк второго должны совпадать. К матричным же операциям
относится возведение в степень и транспонирование матрицы.
Пример 20. Матричное умножение
% Задание матриц
M1=[1 1 1; 2 2 2]
M2=[3 4; 3 5;3 6]
% Матричное умножение
M1*M2
% Вектор-строка из 5 элементов
M3=[1 2 3 4 5]
% Вектор-столбец из 5 элементов
M4=[1; 2; 3; 4; 5]
% Матричное умножение
M3*M4
% Задание квадратных матриц



19
M5=[1 2; 3 4]


M6=[1 2; 2 1]
% Матричное умножение
M5*M6
Обратное матричное деление используется для отыскания решения
систем алгебраических линейных уравнений (СЛАУ). Если задана система
вида Ax=b, где A – квадратная матрица, b – столбец свободных членов, а x –
разыскиваемое решение, то в том случае, когда система совместна, x можно
найти с помощью операции обратного деления.
Пример 21. Матричное обратное деление
clear, clc
% Задание матрицы A и столбца свободных членов b
A=[1 0 0; 0 2 0; 0 0 3]
b=[10; 40; 150]
% Решение системы Ax=b
x=A\b
% или
x=A^(-1)*b
% или
x=inv(A)*b
Условия для системы, приведенной в примере #21, подобраны с расчетом,
что читатель найдет решение устно и проверит совпадение с решением,
полученным с помощью MatLab. Описание методов решения СЛАУ в ML чи-
татель может найти в источниках [1-6].
Для возведения квадратной матрицы в целую положительную степень,
используется операция ^.
Пример 22. Возведение матрицы в степень
clear, clc
% Задание матрицы A
A=[1 2 3; 0 2 0; 0 0 3]
% Возведение матрицы в степень
A^2



20
Пример 23. Транспонирование вещественной матрицы


clear, clc
A=[1 1 1; 2 2 2; 4 5 6]
% Транспонирование матрицы
A'
% Транспонирование матрицы
A.'
Знак ' – обозначает операцию транспонирования с взятием комплекс-
ного сопряжения, очевидно, что для вещественных матриц эта операция
сводится к обычному транспонированию, а .’ обеспечивает простое транс-
понирование, даже в случае комплексных матриц.
Пример 24. Транспонирование матрицы, содержащей комплексные эле-
менты
clear, clc
% Задание матрицы A
A=[1-i 1+i; 2+3i 2-3i]
% Транспонирование матрицы c комплексными значениями
A.'
% Транспонирование матрицы и комплексное сопряжение
A'
При проведении операций с матрицами нужно помнить приоритет
операций.
Он
следующий:
сначала
выполняется
операция
транспонирования, затем возведения в степень, потом умножение и
деление, а в последнюю очередь – сложение.
Пример 25. Приоритет матричных операций. Транспонирование и умноже-
ние
clear
clc
A=[1 1; 2 2]
% Вычисление значения выражения без скобок
A*A'



21
% Вычисление значения выражения со скобками


(A*A)'
Пример 26. Приоритет матричных операций. Возведение в степень и деле-
ние
clear, clc
A=[1 3; 0 5]
% Вычисление значения выражения без скобок
A/A^2
% Вычисление значения выражения со скобками
(A/A)^2
Рассмотрим операцию объединения матриц. Она может выполняться
по горизонтали для матриц, количество строк которых одинаково, и по
вертикали, для матриц с одинаковым количеством столбцов, также можно
объединять матрицы одинаковой размерности вдоль третьей оси. Для
плоского объединения матриц используют квадратные скобки, функция cat
объединяет матрицы вдоль трех направлений:


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




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

    Басты бет