Шрифт
Матрицы и векторы в Mathcad, в ЮУрГУ
Play

Матрицы и векторы в Mathcad, в ЮУрГУ

Для создания массива вызывают команду Insert | Matrix (комбинация клавиш +). Альтернативный вариант — воспользоваться палитрой Matrix (рис. 4.1).В результате откроется диалоговое окно Insert Matrix, представленное на рис. 4.2.

В этом диалоговом окне указывается число строк и столбцов в создаваемом массиве (поля Rows и Columns). Таким образом, чтобы создать векторстроку, следует указать в поле Rows значение 1, для создания векторастолбца единицу указывают в поле Columns. Если значения в обоих полях отличны от единицы, создаваемый массив с математической точки зрения будет матрицей.После вызова диалогового окна вставки матрицы Insert Matrix и определения размеров массива, в рабочем документе появляется объект, структурно соответствующий создаваемому массиву. Однако вместо элементов в этом объекте отображаются структурные заполнители. Вместо них и следует ввести значения элементов массива. На рис. 4.3 переменной А в качестве значения присваивается матрица размерами 3x3.На рис. 4.4 приведен конечный результат. Там же представлены переменные вис, которым в качестве значений присвоены векторстрока и векторстолбец соответственно.

Для получения доступа к отдельному элементу массива необходимо указать название соответствующей переменной и индекс (или индексы) элемента в структуре массива. В частности, этим элементам можно присваивать новые значения, переопределяя тем самым исходный массив. Примеры приведены в документе на рис. 4.5.Проверить значение массива можно так же, как и значение любой другой переменной: для этого вводится название массива, после которого указывается знак равенства. Если число строк или столбцов массива не превышает десяти, то массив отображается полностью. В противном случае видна только часть массива, а прочие элементы можно просмотреть с помощью полос прокрутки. Следует также отметить два важных обстоятельства. Вопервых, по умолчанию индексация элементов массивов в рабочем документе Mathcad начинается с нуля. Вовторых, даже для одномерных массивов (векторов) все равно указывается два индекса: индексы строки и столбца, на пересечении которых находится элемент. Индексы разделяются запятой. Чтобы перейтив режим ввода нижних индексов, нажимают клавишу или используют пиктограмму на палитре Matrix (рис. 4.6).

Таким образом, при обращении к элементу векторастроки, первым указывается нулевой индекс строки, после чего, через запятую, индекс элемента в этой строке. Для векторастолбца ситуация противоположная: сначала указывается индекс элемента, после чего нулевой индекс столбца. Однако для векторастолбца второй индекс указывать не обязательно (по умолчанию он полагается равным нулю), поэтому элемент векторастолбца вызывают, указав только один индекс. Этот факт нашел свое отражение на рис. 4.5.Нулевое начальное значение для индексирования элементов массива не очень удобно в первую очередь с той точки зрения, что обычно в линейной алгебре и ее приложениях начальное значение для индексов принимается равным единице. Чтобы избежать путаницы, разумно переопределить настройки Mathcad так, чтобы индексы в рабочих документах начинались со значения 1. Для этого следует переопределить значение системной переменной ORIGIN.Эта переменная ответственна за определение начального индекса элементов массивов в Mathcad и ее значение по умолчанию равно нулю. Переопределить значение этой переменной можно прямо в рабочем документе обычным присваиванием. Второй способ состоит в вызове диалогового окна Worksheet Options. Диалоговое окно открывается в результате выбора команды Tools Worksheet Options. В окне нужно перейти к вкладке Builtin Variables и установить нужное значение в поле Array Origin (ORIGIN).Каждый из способов переопределения переменной ORIGIN имеет свои преимущества и недостатки. Например, переопределяя переменную с помощью диалогового окна Worksheet Options, легко добиться универсальности процедуры индексирования элементов различных массивов во всем рабочем документе. С другой стороны, с помощью команды присваивания значения переменной ORIGIN в рабочем документе можно указать для разных массивов различные способы индексирования элементов. Выбор способа должен, очевидно, базироваться на особенностях решаемой задачи.Интересно то обстоятельство, что значение переменной ORIGIN может быть отрицательным. Иногда этим можно воспользоваться, хотя данная возможность, все же, относится к разряду экзотических.

В документе на рис. 4.7 приведены некоторые примеры, иллюстрирующие вышеперечисленные возможности Mathcad. Предварительно переменной ORIGIN В окне Worksheet Options установлено значение 1. Поэтому элемент с двумя единичными индексами, например, является верхним левым элементом матрицы. После того как переменной ORIGIN в рабочем документе присвоено нулевое значение, элемент с единичными индексами уже не будет левым верхним элементом матрицы. Наконец, если переменной ORIGIN присвоить целую отрицательную величину 2, то индексы элементов станут начинаться с отрицательного значения. Точнее, начальные их индексы будут совпадать, как и ранее, со значением переменной ORIGIN, а последующие индексы получатся добавлением единицы к предыдущему.Пример 4.3. Определение массиваОписанный способ инициализации массивов не единственно возможный. Часто, например, значение элементов массива является функцией их индексов. В этом случае инициализировать массив можно с помощью переменных со значениямидиапазонами. Пример приведен в документе на рис. 4.8.Значение переменной ORIGIN предварительно установлено равным единице (т. е. индексы массивов нумеруются, начиная с единицы). Элемент массива а определяется в общем виде как корень квадратный из сумм квадратов своих индексов, а сами индексы предварительно инициализируются со значениямидиапазонами. Если диапазон изменений индексных переменных невелик (на рис. 4.8 это диапазон значений от 1 до 9), то массив, при проверке его значения, отображается в виде матрицы (см. рис. 4.8). В случае, когда диапазон изменения индексных переменных существенный (а на вкладке Display Options диалогового окна Result Format в раскрывающемся списке Matrix display style выбран элемент Automatic), в рабочем документе при проверке значения массива будет видна, как уже ранее отмечалось, только его часть (рис. 4.9).

Как несложно видеть, значение массива отображается в виде таблицы. Индексы элемента определяются номерами строки и столбца таблицы, на пересечении которых этот элемент находится. После выделения значения в таблице появляются полосы прокрутки, используя которые можно просмотреть всю таблицу (рис. 4.10).В Mathcad предусмотрена возможность отображения значения массива в виде матрицы при любых его размерах. Для этого нужно выбрать команду Format Result. В результате открывается диалоговое окно Result Format, в котором на вкладке Display Options в раскрывающемся списке Matrix display style следует выбрать элемент Matrix (рис. 4.11).В результате, каких бы размеров ни был массив, он неизменно отображается в виде матрицы (рис. 4.12).Существует и другая возможность: если в раскрывающемся списке Matrix display style выбрать элемент Table, то массивы всегда отображаются в виде таблицы (рис. 4.13).

Вложенные массивы

Операции с массивами

К векторам и матрицам могут применяться такие арифметические операции, как сложение, вычитание, деление и умножение. Правда, если операндами служат массивы, они должны удовлетворять некоторым условиям. Так, для того, чтобы можно было сложить два массива, они должны иметь одинаковую размерность и размер. В этом случае массивы складываются так же, как и обычные переменные: например, чтобы вычислить сумму массивов А и в, в рабочем документе вводят команду А+В. При этом в результате получается массив тех же размеров, элементы которого равны сумме соответствующих элементов исходных массивов. Точно так же вычисляется и разность массивов: АВ. Причем последнюю операцию можно рассматривать как сумму массива А и массива, противоположного к B, т. е. B.Когда число столбцов массива А равно числу строк массива в, можно вычислять их произведение с помощью обычного оператора умножения. В результате получается массив, число строк которого равно числу строк первого массива, а число столбцов — числу столбцов второго. Так, если С = А*В, ТО, а сумма беретсяэлементы массива с вычисляются по формуле по всем индексам к . Таким образом, операция умножения массивов в Mathcad соответствует правилу умножения матриц.Помимо оператора умножения, при работе с массивами допустим и оператор деления. Правда, в этом случае второй операнд должен быть численным. В результате каждый элемент первого операндамассива делится на второй операндчисло. К квадратным матрицам (массив с одинаковым количеством строк и столбцов) применима операция возведения в степень (комбинация клавиш +). В качестве степени можно указывать любое целое число, в том числе и отрицательное.На рис. 4.19 приведен фрагмент рабочего документа, в котором можно найти примеры выполнения упомянутых операций с массивами.

Как известно, в процессе транспонирования матрицы ее строки и столбцы меняются местами. В Mathcad транспонирование выполняется указанием справа вверху у матрицы символа транспонирования (буква Т). Это выполняется комбинацией клавиш + или специальной пиктограммой, размещенной на палитре Matrix (рис. 4.20).В документе на рис. 4.21 приведены простые примеры транспонирования матриц.Очень часто в практических задачах приходится искать обратные матрицы. Как известно, по определению обратной к данной называется такая матрица, которая, будучи умноженной на исходную, в результате дает единичную матрицу (у нее все диагональные элементы равны единице, а недиагональные — нулю). Обратная матрица может быть определена только для невырожденной квадратной матрицы. Невырожденной, в свою очередь, называется матрица с ненулевым определителем (детерминантом). Как вычисляется детерминант, будет показано далее, а прежде определимся с вычислением обратной матрицы. Эта процедура по сути своей эквивалентна возведению матрицы в минус первую степень, поэтому найти обратную матрицу можно теми методами, что описывались ранее при описании операции возведения матрицы в степень. Однако на палитре Matrix есть специальная пиктограмма, воспользовавшись которой можно найти нужную матрицу (рис. 4.22).Примеры вычисления обратных матриц представлены на рис. 4.23.В Mathcad существует возможность вычислять ряд важных характеристик матриц, среди которых главной, безусловно, является детерминант (или определитель) матрицы. Для выполнения этой операции достаточно заключить название матрицы, для которой вычисляется детерминант, в прямые скобки (комбинация клавиш +) — как при вычислении модуля числа. Можно также воспользоваться специальной пиктограммой на палитре Matrix (рис. 4.24).Следует отметить, что детерминант может быть вычислен только для квадратной матрицы.Примеры вычисления детерминанта представлены в документе на рис. 4.25.Как можно заметить, детерминант единичной матрицы равен единице. Кроме того, при транспонировании матрицы детерминант не меняется, а детерминант обратной матрицы равен единице, деленной на детерминант исходной матрицы. Это свойство — следствие более общего правила, согласно которому детерминант произведения нескольких матриц равен произведению их детерминантов.Ранее рассказывалось о том, как можно вычислить произведение двух или более матриц и, в частности, двух векторов. Речь шла о так называемом скалярном произведении векторов. Результат операции есть скаляр (число), равный произведению модулей векторов на косинус угла между ними. Кроме скалярного, часто встречается векторное произведение. Это бинарная операция, операндами в которой выступают векторы, а результат — тоже вектор. Направлен он перпендикулярно плоскости, в которой размещены векторыоперанды, из двух возможных направлений выбирается то, что соответствует правилу правого буравчика (при вращении буравчика от первого вектора ко второму буравчик должен двигаться в направлении векторарезультата операции), а модуль векторарезультата равен произведению модулей векторовоперандов на синус угла между ними.Векторное произведение в Mathcad можно вычислить с помощью специального оператора, который вводится нажатием комбинации клавиш + или посредством пиктограммы на палитре Matrix (рис. 4.26).Рис. 4.26. Пиктограмма вычисления векторного произведения на палитре MatrixПрименяться операция вычисления векторного произведения может, как уже отмечалось, только к векторам, причем это должны быть векторыстолбцы из трех элементов.В документе на рис. 4.27 можно найти примеры вычисления векторных произведений.В том, что вектор, получающийся в результате векторного произведения двух других векторов, перпендикулярен им обоим, убедиться достаточно просто — следует вычислить скалярное произведение результирующего вектора на каждый из исходных. Для ортогональных векторов такое произведение, как известно, равно нулю.В Mathcad на палитре Matrix есть пиктограмма, позволяющая ввести в рабочий документ оператор вычисления суммы элементов вектора (рис. 4.28).Этот же оператор можно ввести при помощи комбинации клавиш +.С практической точки зрения вычисление суммы элементов вектора — достаточно экзотическая операция, поскольку, с одной стороны, это операция унарная, и, кроме того, в результате ее выполнения вектору в соответствие ставится скаляр. По этим причинам дать простую физическую интерпретацию данной операции достаточно сложно. На практике такая операция имеет, как правило, несколько модифицированный вид. В качестве примера можно привести процедуру выполнения параллельных расчетов или при определении нормы вектора (обычно это корень квадратный из суммы квадратов элементов, но может быть и сумма модулей элементов). В любом случае применение процедуры тесно связано с другой, достаточно важной и полезной процедурой — а именно процедурой векторизации.Если кратко описывать суть последней, то ситуация выглядит следующим образом: массив указывается в качестве аргумента некоторой функции, которая определена для скалярных аргументов. Применяя процедуру векторизации, можно вычислить значение функции для каждого из элементов упомянутого массива. Это исключительно удобный способ выполнения параллельных расчетов, когда одни и те же вычисления проделываются с разными входными значениями. Вместо того чтобы каждый раз вводить одну и ту же функцию с разными аргументами, эти аргументы можно записать в виде элементов некоторого массива, потом указать этот массив в качестве аргумента функции и выполнить процедуру векторизации. В результате будет получен массив тех же размеров, что и указанный аргументом, а его элементы определяют результат вычисления функции для аргумента, стоящего в исходном массиве на соответствующем месте. Для выполнения векторизации на палитре Matrix имеется специальная пиктограмма (рис. 4.30).Рис. 4.30. Пиктограмма векторизации на палитре MatrixУдобна также комбинация клавиш +<>. При этом нужно следить, чтобы перед векторизацией линиями редактирования было выделено именно то выражение, по отношению к которому векторизация применяется. В противном случае результат может быть, по меньшей мере, обескураживающим.Пример 4.11. Процедура векторизацииНа рис. 4.31 представлены примеры векторизации различных операций.После применения процедуры векторизации над соответствующим выражением появляется символ вектора. По нему, кстати, можно впоследствии определить, к какой части команды была применена векторизация.

📎📎📎📎📎📎📎📎📎📎