Решение задач в Excel на VBA. Применение программных средств в проектировании автомобильных конструкций. Калядин В.И. - 15 стр.

UptoLike

Составители: 

15
биваем (или переделываем из единичной) матрицу перестановок P1, ко-
торая будет задавать перестановки 1-ой и 2-ой строк. Под матрицей
Ab1 диапазоне G6:J8) разместим (на этапе ) матрицу, которая по-
лучится как результат умножения P1 на Ab1.
Напомним, как выполняется в Excel умножение матриц. Для этого:
выделяем G6:J8, нажимаем F2, в ячейку G6 вставляем как формулу
функцию МУМНОЖ. Вызвав эту функцию, указываем сначала диапазон
B2:D4 первой матрицы, а затем второй G2:J4. Для записи матрицы ре-
зультата в диапазон, начинающийся в ячейке G6, следует нажать
Ctrl+Shift+Enter.
После получения матрицы P1*Ab1 с переставленными 2-ой и 1-ой
строками готовим (на этапе ) слева матрицу L1 для исключения неиз-
вестных из строк со 2-ой по 3-ью (c k+1 по n) первого столбца. Для
этого выделяем диапазон B6:D8 (строк c k по n) и запускаем макрос E
создания единичной матрицы (по Ctrl+Shift+E или кликнув по кружку E -
фигуры, с которой мы связали этот макрос). Затем выделяем в матрице
P1*Ab1 1-ый столбец (G6:G8) с главным элементом. Копируем значе-
ния из G6:G8 и, выделив B6:B8, помещаем специальной вставкой (зна-
чения) в столбец единичной матрицы. Не сбрасывая выделение B6:B8,
запускаем (по Ctrl+Shift+L или кликнув по L-кружку фигуры) макрос Lk
нормирования этого вектора. В результате получим показанную в таб-
лице 1.1 (для этапа ) матрицу L1. После умножения (на этапе ) этой
матрицы на расширенную матрицу P1*Ab1 (диапазон G6:J8) заносим в
G10:J12 матрицу произведения Ab2=L1*(P1*Ab1) с исключенным неиз-
вестным
1
x
из G11:G12.
Аналогичным образом действуем дальше (на этапах , , , ) до
получения матрицы Ab3 (G18:J20), у которой все элементы под главной
диагональю (левой (3х3)-подматрицы Ab3) равны нулю. Расширенная
матрица Ab3 соответствует СЛАУ с верхней треугольной матрицей; она
просто решается последовательным вычислением
1
x
,
2
x
,
3
x
- обратной
подстановкой. Еѐ алгоритм реализован в макросе TrSolve, который за-
пускается по Ctrl+Shift+x (или кликнув по соответствующему x-кружку
фигуры) при предварительно выделенной расширенной матрице
(G18:J20) и выводит (на этапе ) вычисленные неизвестные
1
x
,
2
x
,
3
x
3
4
4
5
6
7
8
9
биваем (или переделываем из единичной) матрицу перестановок P1, ко-
торая будет задавать перестановки 1-ой и 2-ой строк. Под матрицей
Ab1 (в диапазоне G6:J8) разместим (на этапе 3 ) матрицу, которая по-
лучится как результат умножения P1 на Ab1.
  Напомним, как выполняется в Excel умножение матриц. Для этого:
выделяем G6:J8, нажимаем F2, в ячейку G6 вставляем как формулу
функцию МУМНОЖ. Вызвав эту функцию, указываем сначала диапазон
B2:D4 первой матрицы, а затем – второй G2:J4. Для записи матрицы ре-
зультата в диапазон, начинающийся в ячейке G6, следует нажать
Ctrl+Shift+Enter.
После получения матрицы P1*Ab1 с переставленными 2-ой и 1-ой
строками готовим (на этапе 4 ) слева матрицу L1 для исключения неиз-
вестных из строк со 2-ой по 3-ью (c k+1 по n) первого столбца. Для
этого выделяем диапазон B6:D8 (строк c k по n) и запускаем макрос E
создания единичной матрицы (по Ctrl+Shift+E или кликнув по кружку E -
фигуры, с которой мы связали этот макрос). Затем выделяем в матрице
P1*Ab1 1-ый столбец (G6:G8) с главным элементом. Копируем значе-
ния из G6:G8 и, выделив B6:B8, помещаем специальной вставкой (зна-
чения) в столбец единичной матрицы. Не сбрасывая выделение B6:B8,
запускаем (по Ctrl+Shift+L или кликнув по L-кружку фигуры) макрос Lk
нормирования этого вектора. В результате получим показанную в таб-
лице 1.1 (для этапа 4 ) матрицу L1. После умножения (на этапе 5 ) этой
матрицы на расширенную матрицу P1*Ab1 (диапазон G6:J8) заносим в
G10:J12 матрицу произведения Ab2=L1*(P1*Ab1) с исключенным неиз-
вестным x1 из G11:G12.
Аналогичным образом действуем дальше (на этапах 6 , 7 , 8 , 9 ) до
получения матрицы Ab3 (G18:J20), у которой все элементы под главной
диагональю (левой (3х3)-подматрицы Ab3) равны нулю. Расширенная
матрица Ab3 соответствует СЛАУ с верхней треугольной матрицей; она
просто решается последовательным вычислением x1 , x2 , x3 - обратной
подстановкой. Еѐ алгоритм реализован в макросе TrSolve, который за-
пускается по Ctrl+Shift+x (или кликнув по соответствующему x-кружку
фигуры) при предварительно выделенной расширенной матрице
(G18:J20) и выводит (на этапе 10 ) вычисленные неизвестные x1 , x2 , x3

                                  15