Работа с массивами
Лабораторная
работа. "Работа с массивами"
Цель работы: Научиться работать с
массивами. Вычислять определители матриц, произведения матриц и матрицы на
вектор. Находить скалярное произведение векторов.
Задание:
1. По заданным координатам точек A, B, C, D найти координаты
векторов a=AB и b=CD.
2. Вычислить скалярное произведения найденных векторов.
. Найти следующие произведения векторов на заданную
матрицу M: a*M и M*b.
. Вычислить определители матриц M и S.
. Найти обратные матрицы S-1 и М-1.
. Вычислить произведение матрицы S на обратную к ней S-1.
. Найти решение системы линейных уравнений Sх=b и Мх=а.
. Выполнить проверку для найденных решений.
. Сохранить документ.
Пример выполнения задания:
Задание:
A= (2, - 1, 0); B= (-1, 4, - 6); C= (1, - 3, -
5); D= (-2, - 1, 0);
; .
1. Для того чтобы найти координаты векторов, заданных
координатами точек начала и конца вектора, занесем координаты этих точек в Excel.
Для этого создадим новый лист и назовем его "массивы".
В ячейку А2 запишем "А", в ячейки В1: В3 заполним
значения координат точки А. В ячейку D2 запишем "В", в
ячейки Е1: Е3 заполним значения координат точки В. Аналогично для
точки С заполняем ячейки: А6 и В5: В7, для точки D - D6, E5: E7. Получаем:
Примечание. Напомним, что для вычисления
координат вектора, заданного координатами начала и конца, необходимо из
координат конца вектора вычесть координаты его начала.
В ячейку А10 запишем "а", теперь выделим
ячейки В9: В11 и в строку формул запишем: =Е1: Е3-В1: В3 после чего нажмем Ctrl+Shift+Enter.
Если вы правильно нажали клавиши, то получите результат, а в
строке формул увидите следующую запись: {=E1: E3-B1: B3}
Примечание. Отметим, что исправлять, удалять и
переносить такие формулы можно только всем блоком. Для этого выделяем все (в
нашем случае три) ячейки и удаляем. Если нужно формулу исправить, опять
выделяем все ячейки и исправляем в строке формул, после чего нажимаем Ctrl+Shift+Enter. Для вычисления вектора b в ячейку D10 набираем "b", далее выделяем
ячейки Е9: Е11 и в строке формул набираем: =E5: E7-B5: B7 нажимаем Ctrl+Shift+Enter и
получаем:
2. Вычислим скалярное произведение a*b и b*a.
Для этого в ячейку А15 наберем "a*b=", а в ячейку В15
наберем формулу: =МУМНОЖ
(ТРАНСП (В9: В11); Е9: Е11) и
нажмем Ctrl+Shift+Enter.
Отметим, что все массивы в Excel умножаются при помощи
функции МУМНОЖ (), по принципу умножения матриц, т.е. строка на
столбец. Поэтому если вы умножаете два вектора, то для правильного результата,
необходимо умножать вектор-строку на вектор-столбец. Преобразовать же
вектор-столбец в вектор-строку позволяет функция ТРАНСП ().
Для получения скалярного произведения b*a в ячейку D15 наберем "b*a=", а в ячейку Е15: =МУМНОЖ (ТРАНСП (Е9:
Е11); В9: В11)
нажмем Ctrl+Shift+Enter.
Получим результат:
3. Научимся вычислять произведение вектора на матрицу.
Для этого заполним заданные матрицы. В ячейку G2 запишем "М", а
в ячейки H1: J3 заполним значения матрицы. Аналогично заполним
значения матрицы S в ячейки G6 и H5: J7. Получим:
Теперь в ячейку L2 заполним "a*M=", выделим ячейки M2: O2 и в строке формул
запишем: =МУМНОЖ (ТРАНСП (В9:
В11); H1:
J3) нажмем Ctrl+Shift+Enter.
Заметим, что для того чтобы умножить матрицу на вектор слева,
необходимо, чтобы вектор был записан в виде вектора-строки, для этого мы и
применяем функцию транспонирования. Отметим, что из алгебры вам должно быть
известно, что результат представляет собой вектор-строку, что мы и получили.
Для умножения матрицы на вектор справа вектор должен иметь
вид вектора-столбца; результат также имеет вид вектора-столбца.
В ячейку L6 запишем "M*b=", выделим ячейки M5: M7 и в строку формул
наберем: =МУМНОЖ (ТРАНСП (H1: J3); Е9: Е11) нажмем Ctrl+Shift+Enter.
В результате получим:
4. Вычислим определители заданных матриц.
Теперь в ячейку L14 наберем "|S|=", а в ячейку M14 формулу: =МОПРЕД (H5: J7) и нажмем Ctrl+Shift+Enter.
Получим:
5. Так как определители наших матриц не равны нулю, то
мы можем найти обратные матрицы M-1 и S-1.
Для этого в ячейку G10 запишем "1/М",
выделим ячейки H9: J11 и в строку формул поместим: =МОБР (H1: J3) нажмем Ctrl+Shift+Enter.
В ячейку G14 заполним "1/S", выделим ячейки H13: J15, в строку формул
запишем: =МОБР (H5: J7) и нажмем Ctrl+Shift+Enter.
Мы получим две обратные матрицы вида:
6. Для проверки правильности вычисления обратной матрицы
найдем произведение матрицы М на ей обратную - если вычисления
были произведены правильно, то мы получим единичную матрицу.
Для этого в ячейку G18 заполним
"М*1/М=", выделим ячейки H17: J19 и в строке формул
наберем: =МУМНОЖ (H1: J3; H9: J11) нажмем Ctrl+Shift+Enter.
Аналогично для матрицы S заполним ячейки G22 и H21: J23, получим:
массив матрица вектор уравнение
Мы видим, что в некоторых ячейках, где ожидали получить нули,
мы получили некие значения с записью Е-16 и Е-17. Такая запись означает, что
число умножается на 10-16 или 10-17,
что можно считать числом близким к нулю. Как правило, в прикладных
задачах значимыми являются лишь 2-3 знака после запятой, поэтому с точностью до
двух знаков мы получили нули. Чтобы запись приобрела нормальный вид, зададим
для данных ячеек числовой формат с двумя позициями после запятой. Для чего выделим
ячейки H17: J23 и выберем \Формат\Ячейки,
получим окно:
На закладке "Число" в поле выбора "Числовые
форматы" выберем "Числовой", в поле "Число десятичных
знаков" установим "2" и нажмем "ОК". В результате
получим:
Как мы убедились, обратные матрицы вычислены верно, теперь
можно их использовать для дальнейших вычислений.
. Найдем решение систем линейных уравнений М*х1=а
и S*x2=b.
Сначала решим первую систему, для этого в ячейку А21
заполним "х1=", выделим ячейки В20: В22 и в строку формул
запишем: =МУМНОЖ (H9: J11; B9: B11) нажмем Ctrl+Shift+Enter.
8. Выполним проверку полученных решений.
Для этого вычислим следующие значения: |M*x1-a| и |S*x2-b|. В ячейку А26
заполним "|M*x1-a|=", выделим ячейки В25:
В27 и в строку формул запишем: =ABS (МУМНОЖ (H1: J3; B20: B22) - B9: B11) нажмем
Ctrl+Shift+Enter. Аналогично, для проверки
решения второй системы выделим ячейки Е25: Е27 и в строку формул
запишем: =ABS (МУМНОЖ (H5: J7; Е20: Е22) - Е9: Е11) нажмем Ctrl+Shift+Enter. Как видим, здесь тоже
необходимо задать формат ячеек. Зададим такой же формат, как и для произведений
матриц, и получим:
9. Остается только сохранить файл.