Нижний Новгород
2020
Составители:
УДК 621.311.1
Научный редактор
Редактор
© Нижегородский государственный
технический университет им.
Р.Е. Алексеева, 2020
©, 2020
2
СОДЕРЖАНИЕ
Цель...............................................................................................................................4
Задание..........................................................................................................................4
Порядок выполнения, примеры.................................................................................4
1. Линейные матричные операции.........................................................................4
2. Выполнение макросов средствами VBA............................................................6
2.1. Макрос, выполняющий операцию ввода информации о матрицах.......7
2.2. Макрос, определяющий границы ввода данных.....................................7
2.3. Макрос, выполняющий операцию сложения матриц.............................8
2.4. Макрос, выполняющий операцию вычитания матриц...........................8
2.5. Макрос, выполняющий операцию умножения матриц..........................9
2.6. Макрос, выполняющий операцию очистки листа Excel.........................9
Содержание отчета....................................................................................................10
Контрольные вопросы...............................................................................................11
Библиографический список......................................................................................12
3
Цель
Целью работы является повторение основных операций над
матрицами, построение макроса, позволяющего выполнять сложения,
умножения, вычитания матриц средствами VBA в MS Office Excel.
Задание
Составить макрос для ввода данных строк и столбцов, макросы
сложения, вычитания и умножения матриц.
Порядок выполнения, примеры
1. Линейные матричные операции
Матрицей размерности m ∙ n называется прямоугольная таблица
m ∙ n чисел aij, i = 1, ... , m, j = 1, ... , n, расположенных в m строках
и n столбцах. Матрица называется квадратной, если m =
n (n - порядок матрицы).
4
c11 ... c1k
c ... c2 k
C 21
... ... ...
cm1 ... cmk
.
Произведение матриц зависит от порядка сомножителей. Если
AB=BA, то матрицы A и B называются перестановочными.
Для квадратных матриц определена единичная матрица - квадратная
матрица, все диагональные элементы которой единицы, а остальные -
нули:
1 0 ... 0
0 1 ... 0
C
... ... ... ...
0 0 ... 1 .
Верны соотношения:
(AT )T = A;
5
(A+B)T=AT + BT ;
(AB)T =BT AT.
Квадратная матрица A, для которой A T =A,
называется симметричной. Элементы такой матрицы, расположенные
симметрично относительно главной диагонали, равны.
Квадратная матрица A называется обратимой, если существует такая
матрица X, что AX = XA = E.
Матрица X называется обратной к матрице A и обозначается A -1:
A A -1 = A -1A = E.
Если матрица A невырождена (т.е. ее определитель отличен от нуля),
то у нее существует обратная матрица A -1.
Верно соотношение: (A-1)T =(AT) -1.
Квадратная матрица U, для которой U-1= UT, называется
ортогональной матрицей.
Свойства ортогональной матрицы:
1) Модуль определителя ортогональной матрицы равен единице.
2) Сумма квадратов элементов любого столбца ортогональной
матрицы равна единице.
3) Сумма произведений элементов любого столбца ортогональной
матрицы на соответствующие элементы другого столбца равна
нулю. Такими же свойствами обладают строки ортогональной
матрицы.
2. Выполнение макросов средствами VBA
В ходе работы были использованы элементы управления формы-
кнопка. Выбор этого элемента происходит следующим образом:
На панели разработчика необходимо нажать кнопку «Вставить»,
после чего выбрать элемент «Кнопка». Этот элемент размещается там, где
необходимо, предварительно изменяя его геометрические размеры до
необходимых, также задается его имя (см. Рис. 2.1).
6
Рис. 2.1. Выполнение элемента «Кнопка»
Щелкнув правой кнопкой по «Кнопке 7», появится выпадающие
меню, в котором выбирается команда «Назначить макрос». После нажатия
на команду «Назначить макрос», появится окно, где будет необходимо
задать имя макроса и написать его вновь самому или выбрать из уже
написанных макросов, которым будет управлять «Кнопка 7».
8
MsgBox "Расчет не возможнет. Не совпадение строк и столбцов у
складываемых матриц", vbOKOnly
End If
End Sub
2.4. Макрос, выполняющий операцию вычитания матриц
Sub Вычитание()
Dim i, j, k, g, n1, n2, n3, n4 As Double
n1 = Cells(2, 2) 'Строки Матрицы1
n2 = Cells(3, 2) 'Столбцы Матрицы1
n3 = Cells(2, 3) 'Строки Матрицы2
n4 = Cells(3, 3) 'Столбцы Матрицы2
If (n1 = n3) and (n2 = n4) Then
For i = 1 to n1 Step 1
For j = 1 to n2 Step 1
Cells(i + 3 * n1 + 3, j) = Cells(i + 3, j) - Cells(i + n1 + 3, j)
Cells(i + 3 * n1 + 3, j).Interior.ColorIndex = 29
Next j
Next i
Else
MsgBox "Расчет невозможен", vbOKOnly
End If
End Sub
2.5. Макрос, выполняющий операцию умножения матриц
Sub Умножение()
Dim i, j, k, g, n1, n2, n3, n4, m as Double
n1 = Cells(2, 2) 'Строки Матрицы1
n2 = Cells(3, 2) 'Столбцы Матрицы1
n3 = Cells(2, 3) 'Строки Матрицы2
n4 = Cells(3, 3) 'Столбцы Матрицы2
m=1
If n2 = n3 Then
For i = 1 To n1 Step 1
k=0
For m = 1 To n4 Step 1
Cells(i + 3 + 4 * n1, m) = 0
For j = 1 To n2 Step 1
k = Cells(i + 3, j) * Cells(j + n1 + 3, m)
Cells(i + 3 + 4 * n1, m) = Cells(i + 3 + 4 * n1, m) + k
Cells(i + 3 + 4 * n1, m).Interior.ColorIndex = 4
Next j
Next m
9
Next i
Else
MsgBox "Расчет невозможен", vbOKOnly
End If
End Sub
2.6. Макрос, выполняющий операцию очистки листа Excel
Dim i, j, k, g, n1, n2, n3, n4 as Double
n1 = Cells(2, 2) 'Строки Матрицы1
n2 = Cells(3, 2) 'Столбцы Матрицы1
n3 = Cells(2, 3) 'Строки Матрицы2
n4 = Cells(3, 3) 'Столбцы Матрицы2
For i = 1 To n1 Step 1
For j = 1 To n2 Step 1
Cells(i + 3, j) = ""
Cells(i + 3, j).Interior.ColorIndex = 0
Next j
Next i
For k = 1 To n3 Step 1
For g = 1 To n4 Step 1
Cells(k + n1 + 3, g) = ""
Cells(k + n1 + 3, g).Interior.ColorIndex = 0
Next g
Next k
For i = 1 To n1 Step 1
For j = 1 To n2 Step 1
Cells(i + n3 + n2 + 3, j) = ""
Cells(i + n3 + n2 + 3, j).Interior.ColorIndex = 0
Cells(i + 3 * n1 + 3, j) = ""
Cells(i + 3 * n1 + 3, j).Interior.ColorIndex = 0
Next j
Next i
For i = 1 To n1 Step 1
For m = 1 To n4 Step 1
Cells(i + 3 + 4 * n1, m) = " "
Cells(i + 3 + 4 * n1, m).Interior.ColorIndex = 0
Next m
Next i
Cells(2, 1).Value = ""
Cells(3, 1).Value = ""
Cells(1, 2).Value = ""
Cells(1, 3).Value = ""
10
Cells(2, 2).Value = ""
Cells(3, 2).Value = ""
Cells(2, 3).Value = ""
Cells(3, 3).Value = ""
Содержание отчета
Отчет должен содержать титульный лист, цель работы, методику
выполнения операций над матрицами, код макроса, выводы по работе; к
отчёту должен быть приложен файл MS Office Excel с выполненными
макросами.
11
Контрольные вопросы
1. Какие существуют операции над матрицами.
2. Дать определение скалярной матрицы.
3. Транспонирование матриц.
4. Какая матрица является обратимой?
5. Возведение матрицы в степень.
6. Дать определение ортогональной матрицы.
7. Какие существуют свойства ортогональной матрицы?
8. Невырожденная и вырожденная матрицы.
9. Умножение матриц на число, произведение матриц.?
10. Дать определение несимметричной матрицы.
12
Библиографический список
13