Создание векторов и матриц
ТОМСКИЙ ПОЛИТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ»
УТВЕРЖДАЮ Директор ИК _____________ М.К.Сонькин
«____»_____________2011 г
Т.Е. Мамонова
Лабораторная работа № 2
МАТРИЧНЫЕ ОПЕРАЦИИ В MATHCAD
Методические указания по выполнению лабораторных работ по курсу «Информационные технологии» для студентов I курса, 220700 «Автоматизация технологических процессов и производств», 221000 «Мехатроника и робототехника»
Издательство Томского политехнического университета
УДК 519.6 ББК 00000 А00
Мамонова Т.Е. А00 Матричные операции в MathCAD. Методические указания по выполнению лабораторных работ по курсу «Информационные технологии» для студентов I курса, обучающихся по направлениям 220700 «Автоматизация технологических процессов и производств»,221000 «Мехатроника и робототехника» / Т.Е. Мамонова. – Томск: Изд-во Томского политехнического университета, 2011. – 20 с. УДК 519.6 ББК 00000
Методические указания рассмотрены и рекомендованы к изданию методическим семинаром кафедры интегрированных компьютерных систем управления ИК «13» января 2011 г.
Зав. кафедрой ИКСУ доктор технических наук _________________ А.М. Малышенко
Председатель учебно-методической комиссии _________________ В.Н. Шкляр
Рецензент Доцент ИКСУ ИК НИ ТПУ кандидат технических наук В.Н. Шкляр
© ГОУ ВПО «Томский политехнический университет», 2011 © Мамонова Т.Е., 2011 © Оформление. Издательство Томского политехнического университета, 2011
ЛАБОРАТОРНАЯ РАБОТА № 2 Матричные операции в MathCAD Цель работы: научиться выполнять операции с матрицами с использованием математического пакета MathCAD. Теоретическая часть Матричное исчисление играет важную роль в компьютерной математике. Практически все численные методы на том или ином этапе работы своего алгоритма сводятся к решению систем линейных алгебраических уравнений (СЛАУ), которое часто производится матричными методами. Вообще говоря, нельзя назвать ни одной области использования компьютера, в алгоритмах которой (в большей или меньшей степени) не использовались бы матрицы. Понятие «вектор» обычно не отделяют от понятия «матриц». Векторы могут рассматриваться как матрицы, состоящие из одного столбца (или строки). Дискретные аргументы – особый класс переменных, который в пакете MathCAD зачастую заменяет управляющие структуры, называемые циклами (однако полноценной такая замена не является). Эти переменные имеют ряд фиксированных значений, либо целочисленных (1 способ), либо в виде чисел с определенным шагом, меняющихся от начального значения до конечного (2 способ). 1. Name := Nbegin .. Nend, где Name – имя переменной, Nbegin – ее начальное значение, Nend – конечное значение, .. – символ, указывающий на изменение переменной в заданных пределах (вводится клавишей ;). Если Nbegin < Nend, то шаг переменной будет равен +1, иначе –1. 2. Name := Nbegin, (Nbegin + Step) .. Nend Здесь Step – заданный шаг изменения переменной (он должен быть положительным, если Nbegin < Nend, или отрицательным в обратном случае). Дискретные аргументы значительно расширяют возможности MathCAD, позволяя выполнять многократные вычисления или циклы с повторяющимися вычислениями, формировать векторы и матрицы. Массив – имеющая уникальное имя совокупность конечного числа числовых или символьных элементов, упорядоченных некоторым образом и имеющих определенные адреса. В пакете MathCAD используются массивы двух наиболее распространенных типов: · одномерные (векторы); · двумерные (матрицы). Порядковый номер элемента, который является его адресом, называется индексом. Индексы могут иметь только целочисленные значения. Они могут начинаться с нуля или единицы, в соответствии со значением системной переменной ORIGIN (см. Приложение A). Матричные вычисления в MathCAD можно условно разделить на три основных типа. К первому относятся такие элементарные действия над матрицами, как создание, извлечение из них данных, их умножение, сложение или скалярное произведение (в случае векторов). Для их реализации служат специальные операторы трех панелей семействаMath (Математические): Calculator (Калькулятор), Matrix (Матричные) иSymbolic (Символьные). Ко второму типу можно отнести те матричные преобразования, которые требуют использования специальных функций и встроенных алгоритмов матричной алгебры, таких как, например, функции вычисления определителя, матричных норм или сортировки элементов векторов по возрастанию. Функции этой группы можно найти в категорииVector and Matrix (Векторные и матричные) у мастера функций. И к третьему типу матричных вычислений следует отнести те задачи, решить которые можно только используя возможности системы программирования MathCAD. В языках программирования начальные индексы массивов обычно равняются 0.По умолчанию в MathCAD индексы строк и столбцов также отсчитываются с 0. В том случае, если такая система вам неудобна или непривычна, можно изменить точку отсчета индексов на 1, задав системную переменную ORIGIN: ORIGIN: = 1. Доступ к элементам вектора или матрицы осуществляется с помощьюиндексированных переменных. Например, чтобы использовать пятый элемент вектора с именем А, нужно записать этот элемент в виде: А5. А для того, чтобы взять элемент матрицы В, расположенный на пересечении 3-ей строчки и 4-го столбца нужно записать: В3 4. Для задания индексов на панелиMatrix предусмотрена специальная кнопкаSubscript (Индекс). Перейти к записи индекса можно также с помощью клавиши «[» (левая квадратная скобка). Нажав ее, вы увидите, что на месте будущего индекса, чуть ниже текста имени матрицы, появится черный маркер. В него через запятую следует ввести значения индексов. На первом месте при этом должен стоять номер строки, а на втором – столбца. Создание векторов и матриц В системе MathCAD предусмотрены различные возможности задания векторов и матриц: • Определение матрицы последовательным заданием каждого элемента. • С помощью индексированных переменных. • С помощью использования командыInsert^Matrix, либо с помощью соответствующей кнопки панелиMatrix. • Задание с помощью элементов программирования. • Применение встроенных функций. • Через связь с другим приложением, например Excel. • Создание таблицы данных. • Чтение из внешнего файла. Рассмотрим некоторые из них. Определение матрицы последовательным заданием каждого элемента очевидно и не требует пояснений. При создании матрицы или вектора с помощью индексированной переменной следует исходить из того, что любая индексированная переменная, индексами которой являются переменные, принимающие целочисленные значения из некоторого промежутка, уже представляют собой вектор или матрицу. Практическая часть Пример 1. Требуется сформировать вектор x, состоящий из 6 элементов. Элементам этого вектора присвоить значения индексов. Решение. Предоставим два варианта решения этой задачи: 1. с помощью индексированной переменной; 2. с помощью командыInserts-Matrix. Вариант 1 Для того чтобы сформировать вектор, воспользуемся вспомогательной переменной, которая будет играть роль индекса (например, i), а затем будем использовать эту переменную для здания элементных значений векторах. Формирование вектора представлено на рис. 1. Вариант 2 Формирование вектора х будем производить с помощью команды Matrix. Для этого сначала напишем оператор присваивания: «х=», а затем выполним командуMatrix. Эта команда открывает диалоговое окно«Insert Matrix», которое представлено на рис. 2, в котором необходимо указать число строк и число столбцов. В нашем примере число строк равно 6, а число столбцов равно 1. Рис. 1. Формирование вектора с использованием индексированной переменной После нажатия кнопки«Ok» команда предоставит шаблон с шестью ячейками, в которые следует вписать значения элементов вектора. Рис. 2. Вызов диалогового окна «Insert Matrix» для создания матрицы с помощью команды «Matrix»
Пример 2. В файле с именем «int(4_4).txt» записаны числа в виде матрицы четыре строчки по четыре элемента, разделенными пробелами. В файле с именем «int(4_1).txt» записаны числа в столбик. Требуется прочитать эти данные в матрицу Q и вектор P. Решение. Для чтения данных из файла в матрицу/вектор можно воспользоваться функцией READPRN, которая имеет один параметр – имя файла. Фрагмент с решением представлен на рис. 3.
Рис. 3. Чтение данных из файлов
С матрицами могут производиться как численные, так и символьные вычисления. Операции с матрицами в системе MathCAD обозначаются так, как это принято в математике: -, +, *, ... . На рис. 4 показано назначение некоторых специализированных команд, расположенных на панели инструментовMatrix. Помимо этого, система MathCAD представляет большое количество функций для работы с векторами и матрицами. Воспользоваться этими функциями можно с помощью мастера функций f(x).
Рис. 4. Назначение некоторых команд, расположенных на панели инструментов «Matrix»
На рис. 5 представлены вычисления с использованием операций над матрицами. Рис. 5. Примеры матричных вычислений в MathCAD Пример 3. Требуется сформировать диагональную квадратную матрицу с(6x6). Значения элементов главной диагонали должны совпадать с номером строки/столбца. Решение. Для получения диагональной матрицы в системе предусмотрена функция diag, которая имеет один параметр – вектор диагональных элементов. Поэтому формирование матрицы начнем с создания вспомогательного вектора, в который занесем элементы для диагонали. Для формирования этого вспомогательного вектора (например, с именем s), воспользуемся вспомогательной переменной, которая будет играть роль индекса (например, i). Тогда формирование диагональной матрицы может быть получено в результате операций, как это показано на рис. 6.
Рис. 6. Формирование диагональной матрицы
Пример 4. Даны две матрицы: A(4x3) и В(4x2). Требуется объединить эти матрицы в одну матрицу C(4x5), причем, первыми столбцами новой матрицы должны быть столбцы матрицы А, а справа от этих элементов следовать столбцы матрицы В (методом «дописывания справа»). Решение. Для соединения двух матриц в одну матрицу можно использовать функцию augment, параметрами которой будут являться имена соединяемых матриц, как это показано на рис. 7. Рис. 7. Объединения двух матриц по правилу «дописывания справа» Пример 5. Даны две матрицы: A(2x3) и В(3x3). Требуется объединить эти матрицы в одну матрицу С(5x3), причем, в новой матрицы в качестве первых строк должны быть строки матрицы А, а за ними должны следовать строки матрицы В. Решение. Для соединения двух матриц в одну матрицу по правилу «друг под другом» можно использовать функцию stack, параметрами которой будут являться имена соединяемых матриц, как это показано на рис. 8. Рис. 8. Объединения двух матриц по правилу «друг под другом» Пример 6. Дана матрица A(6x6). Требуется получить из этой матрицу подматрицу, в которую включить элементы, расположенные в строках, начиная с номера 2-го по номер 4-ый, и столбцах, начиная с номера 0-го по номер 5-ый. Решение. Для выделения подматрицы с номерами столбцов и строк представленными граничными значениями предусмотрена функция submatrix. Эта функция имеет 5 параметров: имя матрицы, из которой производится выбор; начальный номер строки выбора; конечный номер строки выбора; начальный номер столбца выбора; конечный номер столбца выбора. Возможное решение представлено на рис. 9. Рис. 9.Выделение подматрицы из заданной матрицы
Пример 7. Дана матрица A(6x6). Требуется получить из этой матрицу два вектора. Первый вектор должен совпадать с 4-ым столбцом матрицы А, а второй – с 3-ей строкой матрицы А. Решение. Для получения векторных значений можно воспользоваться командой М< > (из матрицы взять вектор-столбец), которая расположена на панели«Matrix». Для получения первого вектора эту команду нужно применить непосредственно к матрице А, а для получения второго вектора нужно сначала получить из матрицы А транспонированную матрицу, а только потом воспользоваться командой «взять столбец». Возможное решение представлено на рис. 10. Рис. 10. Выделение векторных значений из заданной матрицы Пример 8. Из матрицы А(6x6) выделить минор, который образуется в результате вычеркивания из этой матрицы нулевой строчки и третьего столбца. Решение. Решение задачи можно свести к соединению двух подматриц, выделенных из матрицы А, как это показано на рис. 11.
Рис. 11.Выделение минора из заданной матрицы Использование матриц специального вида для Известно, что в результате умножении матрицы на вектор получается вектор. Причем, каждый i-ый элемент этого вектора-результата представляет собой сумму попарных произведений соответствующих элементов i-ой строки матрицы на элементы вектора-сомножителя. Очевидно, если в векторе, на который умножается матрица, все элементы равны нулю, а один элемент равен единице, то результатом такого произведения будет число, соответствующее тому элементу i-ой строки матрицы, где векторным сомножителем будет единица. Такой вывод можно использовать для выделения (формирования) из матрицы нужного столбца. Пример 9. Дана матрица: A(4x4). Требуется получить из этой матрицу два вектора. Первый вектор должен совпадать с 0-ым столбцом матрицы А, а второй – с 3-им столбцом матрицы А. Решение. Для получения новых векторов сформируем два вспомогательных вектора: вектор B1 – с единичным значением в строке с номером 0, а второй вектор В4 – с единичным значением в строке с номером 3. Тогда для получения векторов в соответствии с условием задачи достаточно умножить матрицу А справа на векторы В1 и В2, как это показано на рис. 12. Рис. 12. Выделение векторных значений из заданной матрицы
Аналогичным образом можно получить вектор-строку из матрицы. Для этого достаточно сформировать вспомогательный вектор-строку, у которой все компоненты равны нулю, а одна компонента, номер которой соответствует номеру выделяемой строки из матрицы, равна единице. Если этот вектор умножить слева на матрицу, то в результате будет получена нужная строка. Пример 10. Дана матрица: A(4x4). Требуется выделить из матрицы первую строку по порядку (с номером 0). Решение. Сначала требуется подготовить вспомогательный вектор-строку, а потом умножить эту строку слева на матрицу А. Вектор-строку можно получить из предыдущего примера транспонированием вектора-столбца В1. Такой прием можно использовать для перестановки строк и столбцов матрицы, только для этого потребуется уже вспомогательная матрица, состоящая из векторов-столбцов (векторов-строк), место единичных элементы которых соответствуют тому порядку, который нужно иметь в результате преобразования матрицы. Пример 11. Дана матрица: A(4x4). Требуется переставить в матрице строки с номерами 0 и 1. Решение. Для преобразования исходной матрицы требуется подготовить вспомогательную матрицу. Во вспомогательной матрице местоположение единиц в строках должно соответствовать нужному порядку для расположения строк в новой матрице. После этого решение можно получить простым перемножением матриц:
Пример 12. Дана матрица: A(4x4). Требуется переставить в матрице столбцы с номерами 0 и 1. Решение. Для преобразования исходной матрицы требуется подготовить вспомогательную матрицу. Во вспомогательной матрице местоположение единиц в столбцах соответствуют нужному порядку для выбора их в новую матрицу. После этого решение можно получить простым перемножением матриц: Таким образом, можно с помощью вспомогательного вектора с единичными компонентами получить вектор, компоненты которого будут равны сумме строк (столбцов) матрицы, а также суммы отдельно выделенного столбика (строчки). Пример 13. Дана матрица: A(4x4). Требуется найти сумму элементов в столбце с номером 3. Решение. Для решения задачи требуется подготовить вспомогательный вектор-строку из единичных элементов и выполнить умножение: Пример 14. Дана матрица: A(4x4). Требуется получить вектора, элементы которого будут представлять суммы элементов в столбцах матрицы. Решение. Для решения требуется подготовить вспомогательный вектор-строку из единичных элементов и выполнить умножение: Контрольные вопросы 1. Как определить индексированную переменную? 2. Какие виды массивов в MathCAD Вам известны? 3. Какая системная переменная определяет нижнюю границу индексации элементов массива? 4. Опишите способы создания массивов в MathCAD. 5. Как просмотреть содержимое массива, определенного через дискретный аргумент? 6. Панель инструментов, содержащая функции работы с матрицами в MathCAD. 7. Перечислите возможности пакета MathCAD при работе с матрицами. 8. Каким образом можно получить вектор-строку из матрицы? 9. Какие функции используются при выделении минора из матрицы? 10. Какие функции используются при объединении матриц? Варианты заданий к лабораторной работе № 2 Задание 1.Рассчитать выражение в соответствие с вариантом. Одну из матриц ввести с помощью файла .txt. Вариант 1.
Вариант 2.
Вариант 3.
Вариант 4.
Вариант 5.
Вариант 6.
Вариант 7.
Вариант 8.
Вариант 9.
Вариант 10.
Задание 2.Преобразовать матрицы в соответствии с вариантом задания. Значения матриц произвольные. Вариант 1. Из матрицы А(5x5) выделить минор, который образуется в результате вычеркивания из этой матрицы 4-й строчки и 0-го столбца. Вариант 2. Дана матрица: A(6x4). Требуется выделить из матрицы вторую строку по порядку (с номером 1). Вариант 3. Дана матрица: A(4x4), и В(5x5). Требуется получить из этих матриц два вектора. Первый вектор должен совпадать с 4-ым столбцом матрицы А, а второй – с 0-ым столбцом матрицы B. Вариант 4. Из матрицы А(4x4) выделить минор, который образуется в результате вычеркивания из этой матрицы второй строчки и второго столбца. Вариант 5. Требуется сформировать диагональную квадратную матрицу С(5x5). Значения элементов главной диагонали должны совпадать с номером строки/столбца. Вариант 6. Дана матрица: A(3x3). Требуется получить из этой матрицу два вектора. Первый вектор должен совпадать с 0-ым столбцом матрицы А, а второй – с 3-им столбцом матрицы А. Вариант 7. Даны две матрицы: A(2x2) и В(4x2). Требуется объединить эти матрицы в одну матрицу С(6x2), причем, в новой матрицы в качестве первых строк должны быть строки матрицы B, а за ними должны следовать строки матрицы A. Вариант 8. Даны две матрицы: A(4x3) и В(4x2). Требуется объединить эти матрицы в одну матрицу C(4x5), причем, первыми столбцами новой матрицы должны быть столбцы матрицы А, а справа от этих элементов следовать столбцы матрицы В (методом «дописывания справа»). Вариант 9. Требуется сформировать диагональную квадратную матрицу с(6x6). Значения элементов главной диагонали должны совпадать с номером строки/столбца. Вариант 10. Даны матрица: A(4x5) и В(4x2). Требуется выделить из матрицы A первую строку по порядку (с номером 0) и объединить полученную строку с матрицей B (методом «дописывания справа») Задание 3.Решить систему линейных уравнений (СЛАУ) методом Крамера. Вариант 1. Вариант 2. Вариант 3. Вариант 4. Вариант 5. Вариант 6. Вариант 7. Вариант 8. Вариант 9. Вариант 10. Содержание отчета · Титульный лист. · Цель работы. · Задание. · Листинг документа MathCAD. · Ответы на контрольные вопросы. · Выводы по работе. Список литературы 1. Плис, Александр Иванович. MATHCAD 2000; Математический практикум для экономистов и инженеров: учебное пособие для вузов / А. И. Плис, Н. А. Сливина. – М.: Финансы и статистика, 2000. – 656 с. 2. Глушаков, Сергей Владимирович. Математическое моделирование MathCAD 2000, MatLab 5: Учебный курс / С. В. Глушаков, И. А. Жакин, Т. С. Хачиров. – Харьков; М.: Фолио: АСТ, 2001. – 524 с. 3. Дьяконов, Владимир. Mathcad 2000: Учебный курс / В. Дьяконов. – СПб.: Питер, 2001. – 592 с.
Приложение А Системные переменные
Для заметок
Для заметок
Учебное издание
МАМОНОВА Татьяна Егоровна
Популярное: Как выбрать специалиста по управлению гостиницей: Понятно, что управление гостиницей невозможно без специальных знаний. Соответственно, важна квалификация... Личность ребенка как объект и субъект в образовательной технологии: В настоящее время в России идет становление новой системы образования, ориентированного на вхождение... Как вы ведете себя при стрессе?: Вы можете самостоятельно управлять стрессом! Каждый из нас имеет право и возможность уменьшить его воздействие на нас... ©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (909)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |