
Лабораторная работа № 3
Решение задач линейной алгебры средствами Excel
Цель работы: ознакомление с приемами работы по использованию табличных функций, функций для работы с матрицами, выработка навыков по решению систем линейных уравнений, созданию и применению макросов.
Теоретические сведения. Технология работы
3.1. Табличные функции
Табличные формулы (array formula) — мощное средство Excel, позволяющее в формулах обращаться с диапазонами, как с обычными ячейками, что дает возможность получать компактные решения сложных задач.
Пример 3.1. На рис. 3.1 приведены данные о работе фирмы за несколько месяцев. Необходимо вычислить для каждого месяца доход как разность прихода и расхода.
-
А
В
С
D
1
Месяц
Приход
Расход
Доход
2
Январь
200
150
3
Февраль
360
230
4
Март
410
250
Рис. 3.1
Эту задачу можно решить двумя способами.
1 способ. В ячейку D2 введем формулу = В2–С2, а затем скопируем ее любым способом в ячейки D3 и D4.
2 способ. Выделим диапазон D2:D4. Активной ячейкой в этом диапазоне является D2, наберем в ней знак равенства =, затем выделим диапазон В2:В4, наберем знак минус, выделим диапазон С2:С4. После набора формулы нажимаем не клавишу Enter, как ранее при вводе формулы, а Ctrl + Shift + Enter (при нажатии клавиши Enter должны быть нажаты обе клавиши Ctrl и Shift). Во всех ячейках диапазона появится формула {=B2:B4–C2:С4}. Фигурные скобки, окружающие формулу, говорят о том, что это табличная формула. Эти скобки нельзя набирать вручную (формула будет воспринята как текст). Если после ввода подобной формулы нажать клавишу Enter, то формула будет введена только в активную ячейку диапазона.
Отредактировать формулу можно следующим образом: выделить диапазон с формулой, нажать клавишу F2, внести изменения в формулу и нажать клавиши Ctrl + Shift + Enter. Нельзя очистить одну из ячеек, занятых табличной формулой. Например, если выделить ячейку D3 и нажать клавишу Delete, то будет выведено сообщение «Нельзя изменять часть массива». Удалить диапазон можно только целиком.
Пример 3.2. В диапазоне А1:Н1 записаны числа. Требуется найти минимальное по модулю значение.
Эту задачу также можно решить двумя способами.
В 1-м случае надо использовать вспомогательную 2-ю строку, в которую записать абсолютные значения чисел 1-й строки (в ячейку А2 ввести формулу = ABS(A1), а затем эту формулу скопировать в ячейки В2:Н2). После этого в ячейку А3 записать формулу =МИН(А2:Н2). Результат представлен на рис. 3.2.
|
А |
B |
C |
D |
E |
F |
G |
H |
1 |
-9,5 |
3,8 |
6,2 |
-0,1 |
0,2 |
3,8 |
-7,2 |
6,3 |
2 |
9,5 |
3,8 |
6,2 |
0,1 |
0,2 |
3,8 |
7,2 |
6,3 |
3 |
0,1 |
|
|
|
|
|
|
|
Рис. 3.2
2-й способ не требует заполнения вспомогательной строки, достаточно в ячейку А3 записать формулу =МИН(ABS(A1:Н1)) и нажать клавиши Ctrl + Shift + Enter. Результат: 0,1.
При решении подобных задач применение табличных формул не является обязательным, а при решении задач, связанных с матрицами, без таких формул не обойтись.
3.2. Операции с матрицами
Матрицы широко используются для математического описания объектов и процессов. Excel в полной мере поддерживает действия над матрицами, что позволяет использовать Excel для решения задач линейной алгебры, прежде всего для операций с матрицами и решения систем линейных уравнений.
Основные операции над матрицами и соответствующие им функции Excel следующие:
транспонирование матрицы — функция ТРАНСП(массив) из категории Ссылки и массивы;
вычисление определителя матрицы — функция МОПРЕД(мас-сив) из категории Математические;
нахождение обратной матрицы — функция МОБР(массив) из категории Математические;
умножение матриц — функция МУМНОЖ(массив1;массив2) из категории Математические;
сложение и вычитание матриц;
умножение матрицы на число.
Рассмотрим каждую операцию и ее применение в Excel.
Транспонирование. В транспонированной матрице АТ (или А') столбцы исходной матрицы А заменяются строками, т.е. если А = (aij), то АТ = (aji). Из определения транспонированной матрицы следует, что если исходная матрица А имеет размер m n, то транспонированная матрица АТ — n m.
Пример 3.3. Транспонировать матрицу А, записанную в ячейках А2:С3. Для выполнения поставленной задачи выделим диапазон ячеек под транспонированную матрицу, например, Е2:F4, нажмем в строке формул кнопку fx (Вставка функции), в появившемся диалоговом окне Мастер функций — шаг 1 из 2 в рабочем поле Категория выберем Ссылки и массивы, а в рабочем поле Функция — имя функции ТРАНСП и нажмем кнопку ОК. В появившемся диалоговом окне Аргументы функции в поле Массив укажем диапазон исходной матрицы A2:C3 и нажмем клавиши Ctrl + Shift + Enter. В диапазоне E2:F4 появится транспонированная матрица (рис. 3.3).
Табличную формулу можно набирать с клавиатуры без обращения к Мастеру функций. Если перед вводом формулы выделить диапазон E2:G4, то в «лишних» ячейках появится #Н/Д, т.е. «Неопределенные данные», а если выделить меньший диапазон, например Е2:F3, то будет выведена только часть матрицы без каких-либо сообщений.
|
А |
В |
С |
D |
E |
F |
1 |
Матрица А |
|
Матрица АТ |
|||
2 |
2 |
3 |
4 |
|
2 |
7 |
3 |
7 |
8 |
9 |
|
3 |
8 |
4 |
|
|
|
|
4 |
9 |
Рис. 3.3
Вычисление определителя. Важной характеристикой квадратных матриц является их определитель. Определитель (или детерминант) — это число, вычисляемое на основе значений элементов матрицы. Определитель матрицы А обозначается как |А| или det A. Для матрицы А второго порядка |А| = а11 а22 – а12 а21. С ростом порядка матрицы n резко увеличивается число слагаемых определителя (n!). Функция МОПРЕД(массив) облегчает вычисления. Для вычисления определителя квадратной матрицы, записанной в ячейках А2:С4, необходимо в ячейке А6 записать формулу =МОПРЕД(А2:С4) и нажать клавишу Enter. Если какая-либо ячейка в матрице пуста или содержит текст, то функция МОПРЕД возвращает значение ошибки #ЗНАЧ!. Функция МОПРЕД также возвращает значение ошибки, если матрица имеет неравное количество строк и столбцов.
В матричных операциях можно использовать массив констант. Это матрицы, в которых элементы строк разделены точкой с запятой, а строки отделяются двоеточием. Если в какую-либо ячейку записать формулу =МОПРЕД({3;2;1:3;2;4:1;0;1}), то будет получен результат 6.
Нахождение обратной матрицы. Матрица A-1 называется обратной по отношению к квадратной матрице А, если при умножении этой матрицы на данную как слева, так и справа получается единичная матрица: А A-1 = А-1 A = Е.
Как следует из определения, обратная матрица является квадратной того же порядка, что и исходная. Необходимым и достаточным условием существования обратной матрицы является невырожденность исходной матрицы. Матрица называется невырожденной, если ее определитель отличен от нуля. В Excel для нахождения обратной матрицы используется функция МОБР(массив). Массив может быть задан как диапазон ячеек, например, А1:С3, как массив констант, например, {3;2;1:3;2;4:1;0;1} или как имя диапазона, например, ma. Для вычисления матрицы, обратной к матрице, записанной в ячейках А2:С4, следует выделить диапазон ячеек, например, А6:С8 и ввести формулу =МОБР(А2:С4). Даже если для ввода формулы используется Мастер функций, завершать ввод надо нажатием клавиш Ctrl + Shift + Enter (вместо щелчка по кнопке ОК). В случае вырожденности исходной матрицы функция МОБР возвращает значение ошибки #ЧИСЛО!.
Умножение матриц. Произведение матриц определено, если число столбцов первой матрицы равно числу строк второй. Матрица Сmp называется произведением матриц Аmn и Вnp, если каждый ее элемент сij равен сумме произведений элементов i-й строки матрицы А на соответствующие элементы j-го столбца матрицы В.
Для матриц верны следующие свойства операции умножения:
ассоциативность: А(ВС) = (АВ)С;
дистрибутивность: А(В + С) = АВ + АС;
умножение матриц не коммутативно: АВ ВА;
если Е — единичная матрица, то ЕА = А; АЕ = А;
в алгебре матриц нет операции деления, выражение А/В не имеет смысла, его заменяют два различных выражения В-1А и АВ-1 (если существует В-1).
Для нахождения произведения двух матриц в Excel используется функция МУМНОЖ(массис1;массив2), при этом количество столбцов аргумента массив1 должно быть таким же, как количество строк аргумента массив2, и оба массива должны содержать только числа. Результатом является матрица с таким же числом строк, как массив1 и с таким же числом столбцов, как массив2. Если хотя бы одна ячейка в аргументах пуста или содержит текст, или число столбцов в аргументе массив1 отличается от числа строк в аргументе массив2, то функция МУМНОЖ возвращает значение ошибки #ЗНАЧ!.
Пример 3.4. Вычислить произведение матриц А и В. Матрица А записана в ячейках A2:C5, матрица В — в ячейках E2:F4 (рис. 3.4).
Для решения данной задачи необходимо выделить диапазон H2:I5, в который будет помещена результирующая матрица, набрать с клавиатуры или ввести с помощью Мастера функций формулу =МУМНОЖ(A2:C5;E2:F4) и нажать клавиши Ctrl + Shift + Enter.
|
A |
B |
C |
D |
E |
F |
G |
H |
I |
||||
1 |
Матрица А |
|
Матрица В |
|
Матрица С = АВ |
||||||||
2 |
4 |
6 |
2 |
|
1 |
5 |
|
48 |
18 |
||||
3 |
2 |
8 |
5 |
|
6 |
1 |
|
70 |
-2 |
||||
4 |
-1 |
3 |
3 |
|
4 |
-4 |
|
29 |
-14 |
||||
5 |
7 |
9 |
2 |
|
|
|
|
69 |
36 |
Рис. 3.4
Сложение и вычитание матриц. Для этих операций не существует специальных функций, просто следует выделить место для результирующей матрицы, набрать знак равенства =, указать диапазон первой матрицы, набрать знак плюс или минус, указать диапазон второй матрицы и нажать клавиши Ctrl + Shift + Enter. Складывать (вычитать) можно матрицы одного размера.
Умножение матрицы на число. Произведением матрицы Аmn на число k называется матрица В = kA, элементы которой bij = kaij для i = 1, 2, …, m, j = 1, 2, …, n. Для умножения матрицы А из примера 3.4 (рис. 3.4) на число 5 надо выделить диапазон А8:С11, ввести формулу =5*А2:С5 и нажать клавиши Ctrl + Shift + Enter.
Пример 3.5. Вычислить X = А-1 – С·СТ, где А — квадратная матрица второго порядка, С — матрица размером 2 3.
Решение представлено на рис. 3.5.
|
A |
B |
C |
D |
E |
F |
G |
H |
I |
|||||
1 |
Вычислить Х= А-1 – С*СТ |
|||||||||||||
2 |
Матрица А |
|
Матрица С |
|
Матрица А-1 |
|||||||||
3 |
3 |
1 |
|
-8 |
-1 |
-3 |
|
1 |
-0,5 |
|||||
4 |
4 |
2 |
|
-2 |
5 |
4 |
|
-2 |
1,5 |
|||||
5 |
|
|
|
|
|
|
|
|
|
|||||
6 |
Матрица СТ |
|
Матрица С*СТ |
|
|
Матрица Х |
||||||||
7 |
-8 |
-2 |
|
74 |
-1 |
|
|
-73 |
0,5 |
|||||
8 |
-1 |
5 |
|
-1 |
45 |
|
|
-1 |
-43,5 |
|||||
9 |
-3 |
4 |
|
|
|
|
|
|
|
Рис. 3.5
В ячейках H3:I4 записана табличная формула {=МОБР(А3:В4)}, в ячейках А7:В9 — формула {=ТРАНСП(D3:F4)}, в ячейках D7:E8 —формула {=МУМНОЖ(D3:F4;A7:B9)}, а в ячейках H7:I8 — формула {=H3:I4–D7:E8}. Тот же результат можно получить и без вывода промежуточных матриц, для этого надо выделить диапазон, содержащий четыре ячейки, например, А11:В12 и ввести табличную формулу {=МОБР(А3:В4)–МУМНОЖ(D3:F4;ТРАНСП(D3:F4))}.
Для наглядности матрицам можно давать имена. Выделим диапазон с матрицей А и с помощью команды Присвоить имя (группа Определенные имена вкладки Формулы) дадим этой матрице имя ma, диапазону D3:F4 с матрицей С присвоим имя mc. Присвоить имя ячейке или диапазону можно по-другому: выделить ячейку или диапазон, щелкнуть мышью в поле имени (слева от строки формул), набрать в этом поле нужное имя и нажать клавишу Enter. Табличные формулы с использованием имен диапазонов можно записать так: {=МОБР(ma)}, {=ТРАНСП(mc)}, {=МОБР(ma)–МУМНОЖ(mc; ТРАНСП(mc))}.