Практическая работа № 3 Работа с матрицами в MathCad
В задачах линейной алгебры практически всегда возникает необходимость выполнять различные операции с матрицами.
Предварительно матрицу нужно определить и ввести в рабочий документ MathCAD.
Для того чтобы определить матрицу, введите с клавиатуры имя матрицы и знак присваивания (<Shift>+<:>). Затем откройте панель операций с матрицами и нажмите кнопку «Создать матрицу или вектор» или выберите в меню Вставка (Insert) команду Матрицу (Matix). В окне диалога введите число строк и столбцов и заполните значениями поле ввода матрицы.
Большинство вычислений с матрицами, как и другие вычисления в MathCAD, можно выполнять тремя способами – с помощью панелей инструментов, выбором операции в меню или обращением к соответствующей функции.
За кнопками на панели инструментов Матрицы закреплены следующие функции:
определение размеров матрицы
Xn – ввод нижнего индекса
X -1 – вычисление обратной матрицы
|X| — вычисление определителя матрицы: ; вычисление длины вектора
поэлементные операции с матрицами: если , то
M <> – определение столбца матрицы: M < j > — j-й столбец матрицы
M T – транспонирование матрицы:
— вычисление скалярного произведения векторов:
— вычисление векторного произведения двух векторов:
— вычисление суммы компонент вектора: ;
— определение диапазона изменения переменной
визуализация цифровой информации, сохраненной в матрице.
Для того, чтобы выполнить какую-либо операцию с помощью панели инструментов, нужно выделить матрицу и щелкнуть в панели по кнопке операции либо щелкнуть по кнопке в панели и ввести в помеченной позиции имя матрицы.
Функции, предназначенные для решения задач линейной алгебры, собраны в разделе Векторы и матрицы (Vector and Matrix); их можно разделить на три группы: функции определения матриц и операции с блоками матриц, функции вычисления различных числовых характеристик матриц и функции, реализующие численные алгоритмы решения задач линейной алгебры.
Функции определения матриц и операции с блоками матриц:
matrix(m, n, f) – создает и заполняет матрицу размерности m x n, элемент которой, расположенный в i-ой строке, j-ом столбце, равен значению f(i,j) функции f(x,y);
diag(v) – создает диагональную матрицу, элементы главной диагонали хранятся в векторе v;
identity(n) – создает единичную матрицу порядка n;
augment(A, B) – формирует матрицу, в первых столбцах которой содержится матрица A, а в последних – матрица B (матрицы A и B должны иметь одинаковое число строк);
stack(A, B) – формирует матрицу, в первых строках которой содержится матрица A, а в последних – матрица B (матрицы A и B должны иметь одинаковое число столбцов);
submatrix(A, ir, jr, ic, jc) – формирует матрицу, которая является блоком матрицы A, расположенным в строках с ir по jr и в столбцах с ic по jc (ir<=jr, ic<=jc).
Номер первой строки (столбца) матрицы или первой компоненты вектора хранится в MathCAD в переменной ORIGIN. По умолчанию в MathCAD координаты векторов, столбцы и строки матрицы нумеруются, начиная с 0 (ORIGIN:=0). Поскольку в математической записи чаще всего используется нумерация с 1, перед началом работы с матрицами будем определять значение переменной ORIGIN равным 1, т.е. будем, прежде всего, выполнять команду ORIGIN:=1.
Элементы программирования в MathCad 15
Для примера рассмотрим пример заполнения матрицы-вектора в автоматическом режиме. Предположим, что нам нужно заполнить матрицу случайными числами. Размер матрицы 10 элементов. Заполнение в ручную такой матрицы безусловно отнимет массу времени
В свободном поле mathcad введите имя вашей будущей матрицы M. Поставте знак присвоить «: ]». В место привычного маркера возникнет вертикальная черная черта с двумя маркерами. Удерживая клавишу Alt введите еще несколько раз символ «]» так, чтобы увеличить число свободных маркеров. Можно также воспользоваться кнопкой «Add Line» на панели Programming. В этих маркерах записываются строки кода
Рис. 1. Подготовка к написанию кода
Поместите курсор в первый маркер и на панели Programming нажмите кнопку с надписью «for». Вы увидите заготовку для формирования цикла FOR с маркером для ввода «тела цикла», который несколько отстоит от основных маркеров
Рис. 2. Запись безусловного цикла FOR
Теперь нужно ввести переменную-счетчик (пусть это будет «i»), которая будет менять свое значение от 1 до 10. Диапазон от 1 до 10 задается с помощью ранжированной переменной, которую можно найти на панели Matrix
Рис. 3. Настройка параметров цикла for в mathcad 15
Цикл for в этом примере будет перебирать значения счетчика i от 1 до 10 c шагом 1. При каждом значении i элементу матрицы с соответсвующим индексом будет присваиваться случайное число с помощью стандартной функции rnd(m). Функция rnd присваивает переменной значение в диапазоне от 0 до «m»
Операция присваивания осуществляется при помощи операции Local difinition с панели Programming. Опрерация присваивания отображена в виде стрелочки «←». Чтобы присвоить какое либо значение элементу матрицы нужно указать соответсвующий индекс матрицы. Это делается с помощью кнопки Subscript на панели Matrix.
Операция присваиваивания должна осуществляться в «теле цикла». То есть, все действия, которые должны повторяться по мере работы счетчика циклы, должны находиться в соответсвующих маркерах. После завершения работы цикла в последний маркер тела программы нужно ввести имя матрицы, над заполнением которой мы работали. В нашем случае это M. См. рисунок 4
Рис. 4. Синтаксис программы по заполнению матрицы-вектора случайными числами в mathcad 15
Теперь можно посмотреть на результат. Введем имя матрицы M и поставим знак равно » /static/images/mathcad/coding_5.JPG»>
Рис. 5. Результат работы программы в mathcad 15
Можно изменить программу таким образом, чтобы заполнить квадратную матрицу. Для этого нам нужно ввести еще один счетчик и еще один цикл for с индексом j. Таким образом один цикл будет выполняться внутри другого, формируя столбцы и строки матрицы
Рис. 6. Программа для заполнения квадратной матрицы в mathcad 15
Программы в mathcad могут использовать значения переменных, находящихся вне тела программы. Например, на рисунке ниже видно, как можно конечные значения счетчиков цикла связать со значениями переменных из вне
Рис. 7. Программа для заполнения квадратной матрицы в mathcad 15
Условные операторы «IF» в mathcad 15
Чтобы посмотреть, как работает условный оператор «if» в mathcad 15 рассмотрим простой пример. Заполним квадратную матрицу G размером 5 х 5 элементов случайными числами и затем обнулим все элементы, которые меньше 10
На рисунке 8 приведен уже знакомый код заполнения матрицы случайными числами
Рис. 8. Программа для заполнения квадратной матрицы случайными числами
Для обнуления элементов, значение которых меньше 10, запишем второй участок кода с использованием условного оператора «If». Для проверки каждого элемента на выполнение этого условия нам опять потребуется два вложенных цикла «for» с счетчиками i и j. См. рис. 9. Обратите внимание, в теле второго цикла оставлено два свободных маркера
Рис. 9. Заготовка для применения условного оператора
Результат работы программы для удобства будет записываться в матрицу P. Поместите курсор в первый свободный маркер и нажмите на кнопку с надписью «if» на панели Programming. Вы увидите заготовку для записи условного оператора
Рис. 10. Заготовка для условного оператора
В этой заготовке выполним обнуление элемента матрицы G если значение этого элемента менее 10. Присвоение элементу матрицы значение нуля осуществляется символом «←» . Буквально логика данной операции следующая: «присвоить элементу матрицы P с текущим индексом i и j значение 0 если елемент матрицы G с тем же индексом меньше 10»
Рис. 11. Ввод условного оператора в mathcad 15
Теперь запишем второе условие, по которому все элементы матрицы G, которые больше либо равны 10 попадают в матрицу P без изменеий на те же «мееста». Буквально логика данной операции следующая: «присвоить элементу матрицы P с текущим индексом i и j значение елемента матрицы G с тем же индексом если значение элемента больше либо равно 10». Сразу же после текста программы можно вывести результат. См. рис. 12.
Рис. 12. Ввод условного оператора в mathcad 15
Теперь можно наглядно увидеть, как изменилась матрица после ее обработки условными операторами
Рис. 13. Результат работы условного оператора
Цикл «WHILE» в mathcad 15
Цикл While является условным циклом. То есть повторение его тела осуществляется до тех пор пока верно условие.
Рассмотрим простой пример заполнения матрицы-столбца с использованием цикла while. В качестве условия работы цикла будем проверять верно ли равенство m < 7. Переменную m будем изменять в теле цикла, так что бы в какой то момент условие не выполнилось и цикл завершился. Также в тело цикла введем закон изменения значений элементов нашей матрицы-столбца. На рис. 14 приведен синтаксис цикла while.
Рис. 14. Цикл WHILE в mathcad
В теле цикла могут находиться абсолютно любые команды и операторы: арифметические вычисления, открытие, анализ, обработка и запись данных в файл, запуск скриптов и приложений и т.д. Одним словом программирование это очень полезный и весьма универсальный инструмент, который позволяет реализовать любую идею в инженерной деятельности
Обратите внимание на то, что если в процессе выполнения программы условие запуска цикла «while» всегда оказывается верным, то цикл не завершится. Произойдет так называемое «зацикливание» программы и придется прерывать процесс счета вручную и искать ошибку

Donec eget ex magna. Interdum et malesuada fames ac ante ipsum primis in faucibus. Pellentesque venenatis dolor imperdiet dolor mattis sagittis. Praesent rutrum sem diam, vitae egestas enim auctor sit amet. Pellentesque leo mauris, consectetur id ipsum sit amet, fergiat. Pellentesque in mi eu massa lacinia malesuada et a elit. Donec urna ex, lacinia in purus ac, pretium pulvinar mauris. Curabitur sapien risus, commodo eget turpis at, elementum convallis elit. Pellentesque enim turpis, hendrerit tristique.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis dapibus rutrum facilisis. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Etiam tristique libero eu nibh porttitor fermentum. Nullam venenatis erat id vehicula viverra. Nunc ultrices eros ut ultricies condimentum. Mauris risus lacus, blandit sit amet venenatis non, bibendum vitae dolor. Nunc lorem mauris, fringilla in aliquam at, euismod in lectus. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. In non lorem sit amet elit placerat maximus. Pellentesque aliquam maximus risus, vel venenatis mauris vehicula hendrerit.
Interdum et malesuada fames ac ante ipsum primis in faucibus. Pellentesque venenatis dolor imperdiet dolor mattis sagittis. Praesent rutrum sem diam, vitae egestas enim auctor sit amet. Pellentesque leo mauris, consectetur id ipsum sit amet, fersapien risus, commodo eget turpis at, elementum convallis elit. Pellentesque enim turpis, hendrerit tristique lorem ipsum dolor.
Как заполнить матрицу в маткаде
Матрицы в Mathcad
Векторы и матрицы рассматриваются в программе Mathcad как одномерные и двумерные массивы данных.
Матрица создается с помощью диалогового окна Вставить матрицу (рис. 1.6), которое открывают командой Вставка > Матрица (Insert > Matrix) или первой кнопкой на панели «Матрица» (рис. 1.7). Вектор задается как матрица, имеющая один столбец. В диалоговом окне задается число строк и столбцов, а после вставки на рабочий лист матрица содержит вместо элементов заполнители, вместо которых следует вставить число, переменную или выражение.


Для матриц определены сложение, умножение на число, перемножение и другие операции. Допустимо использование матриц вместо скалярных выражений: в этом случае предполагается, что указанные действия должны быть применены к каждому элементу матрицы, и результат также представляется в виде матрицы:

Для работы с элементами матрицы используют индексы элементов. Нумерация строк и столбцов матрицы начинается с нуля, что задается системной переменной ORIGIN, и может быть изменено пользователем (например, блок ORIGIN:=1 устанавливает начальный индекс равным единице). Индекс элемента задается числом, переменной или выражением и отображается как нижний индекс. Он вводится после щелчка на кнопке Индекс (Subscript, xn) на панели инструментов Mатрица (Matrix) или нажатием символа «[» после имени массива (см. приложение «Горячие клавиши»). Индексы двумерных матриц записываются через запятую.
Иногда (например, при построении графиков) требуется выделить вектор, представляющий собой столбец матрицы. Номер столбца матрицы отображается как верхний индекс, заключенный в угловые скобки: . Для его ввода используется кнопка Столбец (Matrix Column) на панели инструментов Матрица или соответствующая «горячая» клавиша.
Для задания некоторой последовательности элементов матрицы используют диапазоны. Диапазон фактически представляет собой вектор, содержащий арифметическую прогрессию, определенную первым, вторым и последним элементами. Чтобы задать диапазон, следует указать значение первого элемента, через запятую значение второго и через точку с запятой значение последнего элемента. Точка с запятой при задании диапазона отображается как две точки (..). Диапазон можно использовать как значение переменной, например х:=0,0.01..1 . Если разность прогрессии равна единице (то есть, элементы просто нумеруются), значение второго элемента и соответствующую запятую опускают.
На рис. 1.8 приведены примеры реализации некоторых операций с матрицами.
Векторы и матрицы в MathСad
Вы уже наверняка не раз сталкивались с такими понятиями как векторы и матрицы. Вектор – это обыкновенный столбец с числами. Матрица представляет собой сборный блок с объектами. Именно на работе с этими элементами построен принцип функционирования программы Excel. В этом уроке мы расскажем о том, как работать с такими вычислениями в программе Маткад и акцентируем внимание на том, почему процесс работы в данном ПО куда проще и удобнее.
Мы уже рассказывали в своих уроках о том, что все наши векторы начинались с элемента с нулевым значением. Сейчас же мы поставим номером первого элемента цифру один, ведь так нам гораздо проще будет сориентироваться в учебном материале.

Данное значение можно внести прямо в рабочее поле.

Посмотрите на матрицы на рисунке ниже.

Как вы можете заметить, в них входят и числа, и функции. Помимо этого, сюда можно внести и текст. Чтобы вывести элемент матрицы, воспользуйтесь подстрочным индексом.

Матрицы, описанные на скрине повыше, относятся к квадратному типу. Тем не менее, пользователь может самостоятельно устанавливать их размерные рамки.

Примите во внимание, что первое число обозначает общую нумерацию строчки, а второе – номер столбика.

Для векторного столбца второй индекс можно удалить. Для строки же он является обязательным.

Нужные команды, для всевозможного выделения строчек или столбиков вы всегда сможете отыскать во вкладке «Математика».


Большинство операций для векторных и матричных конструкций вполне соответствуют работе со стандартными числами и функциями. Для того, чтобы отыскать обратную матрицу, потребуется действовать по аналогии с операциями деления. Пользователь может записать операторы, задав им наименования матриц и векторов. Например, это может выглядеть так:

Более подробно мы рассмотрим данный опционал немного погодя. Стоит отметить, что такая функция нуждается в девяти операциях умножения и в таком же количестве деления. Согласитесь, что расписывать все эти процессы достаточно скучно. К тому же, с большими матрицами такой подход нерациональный.
Методика применения векторов отличается значительным разнообразием. Чтобы разработать вектор или матрицу, понадобится открыть вкладку «Вставить матрицу». На экране появится сетка с изображением маленьких квадратиков.

Перемещаем указатель на эту сетку. Настраиваем курсор на нужные габариты матрицы. Кликаем дважды ЛКМ.
На экране появляется новая матрица.

Матрица может быть переименована, после того, как пользователь дважды кликнет по левой скобке.

Чтобы быстро вставить или удалить строчки да столбцы, можно вызвать контекстное меню «Операторы с векторами\матрицами» на одноименной вкладке.

Работа с матрицами
Эффекты от матриц или вектором гораздо проще сообразить, пользуясь специально разработанными символами. Обратите внимание на скрин ниже.

Оператор транспортировки вызывается посредством выполнения операции Математика –> Операторы –> Векторы и матрицы:

Кликаем по правой стороне матрицы и применяем оператор. Он подходит как для символьных, так и численных матриц.

Операции в векторах часто выполняются по одному элементу. В этой ситуации можно воспользоваться очень удобным оператором, который отвечает за разработку вектора. Чтобы перемножить два вектора, понадобится выполнить простой пример.

Теперь нам нужно выбрать нужные параметры и активировать векторизацию.

Вычисляем заданные параметры и смотрим на результат. Первый элемент приумножился на второй, и так далее.

Еще примеры таких опций.

Операции поэлементного типа могут применяться исключительно к массивам одинакового размера.
Добавление и вычитание
Данные операции относятся к поэлементному типу.

Она также применяется к массивам одинакового размерного типа.
Пользуясь оператором, предназначенным для суммирования, можно отыскать сумму всех векторных частей.

Скалярное произведение работает по представленному ниже принципу.

При таком типе умножения матриц, программа занимается умножением данных элементов по столбцам. Данная операция может применяться исключительно к тем матрицам, которые характеризуются равным количеством строчек и столбцов.

Обратите внимание, что немалая роль отводится поочередности множителей.

Только в редких случаях скалярное произведение может стать коммутативным.

Скаляр двух векторов показывает результат как на фотографии ниже.

Данная опция может использоваться исключительно для двух векторных столбов из трех элементов.

Векторное произведение часто используется для механики, гидродинамики и огромного количества подобных сфер деятельности.
Обратная матрица может быть применима для квадратных матриц:

В результате у нас получится матрица единичного типа

Если произвести матрицу и единичную матрицу, мы получим первоначальный вариант.


Определитель может быть разработан исключительно для матрицы квадратного типа. Он может быть нулевым в любых условиях. Обратная матрица имеет в своей структуре дроби, в состав которых входит определитель.

В ситуациях, когда определитель установлен на ноль, к нему нереально подобрать обратную матрицу. Сама матрица автоматически становится сингулярной. О таких изменениях пользователь узнает из оповещения программы.

В ситуациях со скалярами, определитель соответствует их модулям

Команда «определитель» помогает отыскать длину вектора .

- Назад
- Вперед
Уважаемые пользователи, хотим Вас проинформировать о том, что некоторые антивирусные программы и браузеры ложно срабатывают на дистрибутив программы MediaGet, считая его зараженным. Данный софт не содержит никаких вредоносных программ и вирусов и многие из антивирусов просто Вас предупреждают, что это загрузчик (Downloader). Если хотите избежать подобных проблем, просто добавьте MediaGet в список доверенных программ Вашей антивирусной программы или браузера.

Выбрав нужную версию программы и кликнув ссылку, Вам на компьютер скачивается дистрибутив приложения MediaGet, который будет находиться в папке «Загрузки» для Вашего браузера. Находим этот файл с именем программы и запускаем его. И видим первый этап установки. Нажимаем унопку «Далее»

Далее Вам предлагается прочитать и одобрить лицензионное соглашение. Нажимаем кнопку «Принимаю»

В следующем окне Вам предлагается бесплатное полезное дополнительное программоное обеспечение, будь то антивирус или бразуер. Нажимаем кнопку «Принимаю». Также Вы можете отказаться от установки дополнительного ПО, нажав кнопку «Отклоняю»

Далее происходит процесс установки программы. Вам нужно выбрать папку, в которую будут скачиваться нужные Вам файлы.

Происходит завершение установки. Программа автоматически открывается и скачивает нужные Вам исходные файлы.
Обратите внимание, что предоставляемое программное обеспечение выкладывается исключительно для личного использования и ознакомления. Все файлы, доступные для скачивания, не содержат вирусов и вредоносных программ.