Как создать вектор в mathcad

GeekBrains

MathCAD — это просто! Часть 10. Работа с векторами и матрицами

Снова здравствуйте. Мы с вами успели вполне успешно закончить со школьной алгеброй, и, значит, можем переходить к более сложным вещам — например, к тому разделу математики, который в университетах обычно называют линейной алгеброй. Конечно, раздел этот весьма и весьма обширен, и нечего даже думать о том, чтобы охватить хотя бы большую его часть. Тем не менее, нам с вами, я так думаю, кое-что из него научиться использовать практически вполне по силам — к примеру, мы можем научиться работать в MathCAD’е с векторами и матрицами. Эти два понятия — важнейшие математические абстракции, роль которых трудно переоценить в научно-техническом прогрессе. Ведь именно применение векторов и векторного анализа позволило в свое время Оливеру Хевисайду сократить количество уравнений Максвелла, описывающих электромагнитное поле, с двух десятков до всего лишь четырех. До векторного анализа, я так думаю, мы с вами в свое время еще доберемся, ну, а пока займемся более прозаическими вещами. Какими именно? Думаю, все станет ясно, если вы продолжите читать эту статью.

Немного об элементах матриц

Хотя дальше мы будем иметь дело и с векторами, и с матрицами, я краткости ради буду говорить просто "матрица", подразумевая, что под вектором мы будем иметь в виду частный случай матрицы, а именно ту ее разновидность, которая представляет собой одиночный столбец. Если же вектор будет представлять собой строку, то это будет специально оговорено. Впрочем, думаю, до этого дело вряд ли дойдет. С матрицами, вообще говоря, мы с вами работать уже немного умеем. Ну, не то чтобы прямо так вот работать — по крайней мере, вводить их в MathCAD’е мы уже вводили. Тем не менее, думаю, будет не лишним напомнить, что ввести в рабочую область матрицу можно с помощью кнопки Matrix or Vector, расположенной на панели Matrix, либо с помощью сочетания горячих клавиш Ctrl+M. Впрочем, мы с вами пока не затрагивали один небольшой, но крайне важный момент, а именно как обращаться в вычислениях не к матрице целиком, а к отдельным ее элементам. Сделать это, на самом деле, очень просто. Пусть у нас задана квадратная матрица X размером два на два элемента. Верхний левый элемент будет иметь индексы 0,0; нижний правый, соответственно, будет иметь индексы 1,1. То есть, как видите, элементы матрицы нумеруются с нуля. Это, в общем-то, довольно удобно, однако, если для вас привычнее нумеровать их с единицы, или, скажем, с 1024-х, то можно поменять значение встроенной переменной ORIGIN, введя в самом начале документа MatchCAD в строку (без кавычек). Или, соответственно, "ORIGIN := 1024". Можно поменять значение переменной и в окне опций MathCAD’а, выбрав в меню Tools пункт Worksheet options и на вкладке Built-In Variables поменяв значение переменной ORIGIN на нужное вам.

Так вот, вернемся к нашим элементам матрицы. Чтобы "вынуть" из нее первый элемент, нужно написать следующее: X0, 0. Для того, чтобы записать индексы внизу от имени переменной, которая обозначает матрицу, можно воспользоваться кнопкой Subscript со все той же панели инструментов для матричных и векторных вычислений или с клавиатуры перейти в нижний индекс клавишей "[" (русское "х"). Обратите внимание, что для разделения индексов, обозначающих строку и столбец, используется запятая. Элементы матрицы можно не только извлекать из матрицы, заданной таблично. Вы можете задать несколько элементов с соответствующими индексами по ходу вычисления, а после уже MathCAD самостоятельно сформирует из них матрицу (но только когда вы зададите уже все ее элементы — в противном случае незаданным элементам будут присвоены нулевые значения). Вы можете использовать ранжированные переменные для задания элементов матрицы. Временами это бывает не просто удобно, а очень удобно. Так, к примеру, можно задать для матрицы X следующую формулу, описывающую значения каждого ее элемента i-й строки и j-го столбца: Xi, j := i * j. Перед таким определением элементов матрицы остается только определить диапазон, в котором будут изменяться i и j. Я для примера взял значения i := 0..5 и j := 0..5, но вы, конечно же, можете установить любой другой нужный вам диапазон в зависимости от требований вашей задачи, решаемой с помощью матриц в среде MathCAD.

Операции над матрицами

Конечно, у применения матриц в реальных задачах существует множество интересных и не очень аспектов, однако все они рано или поздно упираются в необходимость проведения с матрицами простых алгебраических операций. Проводить их вручную — задача трудоемкая, и можно потратить время с гораздо большей пользой, переложив рутинную работу на MathCAD. Для начала познакомимся с теми функциями, которые собственно никаких математических операций не выполняют, но при этом являются весьма важными в действиях с матрицами. Эти функции позволяют объединять две матрицы в одну (не складывать матрицы, а просто объединять их элементы) и выделять из матрицы другую матрицу. Первая из функций — augment. Она объединяет две матрицы, имеющие одинаковое число строк, таким образом, что из них образуется одна, в которой элементы этих двух располагаются, что называется, "плечом к плечу". В качестве аргументов этой функции нужны только две объединяемые матрицы. Ее аналог для тех матриц, которые имеют одинаковое число столбцов, и должны быть объединены одна над другой, является функция stack. Ее аргументами тоже должны быть две объединяемые матрицы. Функция же, которая не объединяет, а, напротив, "разрезает" матрицы, имеет название submatrix. Для нее нужно указывать имя матрицы, из которой мы хотим выделить подматрицу, и координаты элементов новой матрицы в старой матрице. То есть для того, чтобы вырезать матрицу 4х4 из верхних левых элементов матрицы размером 5х5, нам нужно вызывать эту функцию со следующими параметрами: submatrix(Y, 0, 4, 0, 4). Здесь Y — это, конечно же, имя матрицы размером 5х5 элементов. Демонстрацию использования всех этих функций применительно к конкретным матрицам можно увидеть на соответствующей иллюстрации к статье.

Теперь, я так думаю, самое время перейти уже к арифметическим операциям над матрицами. Вы увидите, что их использование в MathCAD не потребует от вас никаких специальных знаний в области линейной алгебры — не считая, конечно, общих представлений о том, как работают матричные операции, для понимания того, что может получиться в их итоге. MathCAD хорош для пользователя тем, что позволяет ему работать с векторами и матрицами точно так же, как с обычными скалярами, сиречь переменными, содержащими исключительно и только действительные числа. Попробуйте задать две матрицы (я их назвал aa и bb), а затем применить к ним операцию сложения точно так же, как когда-то применяли ее к обыкновенным числам. Конечно, для того, чтобы матрицы можно было складывать, они должны иметь одинаковые размеры. Точно так же можете попробовать вычесть из одной матрицы другую или перемножить их. Вы увидите, что MathCAD успешно справляется с подобными задачами, не напрягая пользователя излишними вычислениями.

Транспонировать матрицы в MathCAD’е ничуть не сложнее, чем их складывать или перемножать. Вычислять обратные матрицы, впрочем, тоже. Во всех этих задачах помогут соответствующие операторы с Они обозначены на ней теми же значками, что и в учебниках по линейной алгебре, а потому пользователю, хотя бы минимально знакомому с матричным исчислением, все должно быть просто и понятно. Нужно только помнить, что нельзя вычислить обратную матрицу для той матрицы, которая является вырожденной (то есть имеет нулевые или пропорциональные друг другу строки или столбцы). Для того, чтобы не останавливаться излишне подробно на этих простых операциях, просто приведу иллюстрацию, демонстрирующую их практическое использование. Думаю, у читателей не возникнет никаких проблем ни с транспонированием, ни с вычислением обратной матрицы с помощью MathCAD.

Еще одной часто выполняемой операцией является вычисление детерминанта, или определителя матрицы. Думаю, что совсем не огорчу вас известием о том, что в MathCAD и с определителями работать так же просто, как и со всем остальным, связанным с матрицами. За его вычисление отвечает кнопка Determinant, расположенная, конечно же, на панели Matrix. Поскольку детерминант в MathCAD’е, как и вообще в линейной алгебре, обозначается с помощью символов прямых черт, ограничивающих матрицу (или имя переменной, ее обозначающей), то вполне логично, что вставить эти самые прямые черты в текст выражения можно с помощью соответствующей клавиши на клавиатуре: Shift + \. Думаю, этой несложной комбинацией будет пользоваться все же удобнее, чем искать каждый раз нужную кнопку на панели инструментов MathCAD’а.

Внешний вид матриц

Мы с вами, конечно же, далеко еще не закончили свое знакомство с матрицами в MathCAD’е, однако, думаю, на сегодня уже непосредственной математики хватит. В конце статьи я лучше расскажу о том, как можно изменить способ отображения матриц в среде MathCAD — возможно, кому-то из читателей этой статьи эта информация будет полезной и небезынтересной.

Дело в том, что MathCAD может отображать матрицы не только в привычном всем виде чисел, заключенных в скобки, но и в виде таблиц. Если вы используете этот математический пакет для каких-либо статистических расчетов и при этом работаете с большими массивами данных, то, безусловно, такое отображение матриц будет более предпочтительным для вас, чем традиционное. Для изменения способа отображения матриц дважды кликните по нужной матрице и в появившемся окне перейдите на вкладку Display Options. Далее в поле Matrix display style выберите значение Table. Матрица приобретет вид точно такой, как на соответствующей иллюстрации к этой статье.

Внешний вид таблицы можно также настроить далее, кликнув по ней правой кнопкой мыши и выбрав пункт Properties. В появившемся окне можно снять птичку с пункта Show column/row labels, чтобы убрать отображение нумерации строк и столбцов в матрице, представляемой в виде таблицы. На вкладке Data Range можно выбрать диапазон отображаемых строк и столбцов матрицы, что также полезно для матриц, содержащих большое количество элементов.

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

SF, spaceflyer@tut.by

Компьютерная газета. Статья была опубликована в номере 23 за 2008 год в рубрике soft

Переменные и константы

Вектор — массив или матрица, содержащая один столбец. Чтобы создать вектор в Mathcad, выполните следующее:

Щёлкните в свободном месте или на поле.

Выберите Матрицы из меню Математика или нажмите [Ctrl]M . Появляетс я диалоговое окно, как на рисунке справа.

Укажите число строк, равное числу элементов вектора, в поле “Строк”. Например, чтобы создать вектор с тремя элементами, напечатайте 3.

Напечатайте 1 в поле “Столбцов”, затем нажмите “Создать”. Mathcad создает вектор с пустыми полями для заполнения.

На следующем этапе нужно заполнить эти поля скалярными выражениями. Для этого выполните следующее:

Щёлкните на верхнем поле и напечатайте 2.

Переместите выделяющую рамку в следующее поле. Можно сделать это или клавишей [Tab], или щёлкнув непосредственно на втором поле.

Напечатайте 3 во втором поле. Затем переместите выделяющую рамку в третье поле, и напечатайте 4 .

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

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

Нажмите [­] несколько раз или щёлкните на любой из скобок вектора. Выделяющая рамка теперь заключает весь вектор. Это означает, что знак плюс, который будет напечатан, относится к вектору целиком, а не к какому-либо из элементов.

Нажмите клавишу плюс ( + ). Mathcad показывает поле для второго вектора.

Используйте диалоговое окно “Матрицы”, чтобы создать другой вектор с тремя элементами.

Заполните этот вектор, щелкая в каждом поле и печатая числа, показанные справа. Можно также использовать [Tab], чтобы двигаться от одного элемента к другому.

Нажмите знак = , чтобы увидеть результат.

Сложение — только одна из операций Mathcad, определенных для векторов и матриц. В Mathcad также есть вычитание матриц, умножение матриц, скалярное произведение, целочисленные степени, детерминанты и много других операторов и функций для векторов и матриц. Полные списки появляются в разделах “Векторные и матричные операторы” и “Векторные и матричные функции” ниже в этой главе.

Если Вы используете Mathcad PLUS, Вы сможете выполнить много символьных операций с матрицами. Подробнее об этом см.в Главе “Символьные вычисления”.

Чтобы создать матрицу, сначала щёлкните в свободном месте или на поле. Затем:

Выберите Матрицы из меню Математика , или нажмите [Ctrl]M. Появится диалоговое окно.

Введите число строк и столбцов в нужные поля. В этом примере матрица имеет две строки и три столбца. Затем нажмите на “Создать”. Mathcad создаст матрицу с пустыми полями.

В завершение заполните поля, как описано в предыдущем разделе для векторов.

Можно использовать эту матрицу в формулах в точности так же, как и число или вектор.

Везде в настоящем руководстве термин вектор относится к вектору-столбцу. Вектор-столбец идентичен матрице с одним столбцом. Можно также создать вектор-строку, создав матрицу с одной строкой и многими столбцами. Операторы и функции, которые берут векторный аргумент, всегда ожидают вектор-столбец. Они не применимы к векторам-строкам. Чтобы превратить вектор-строку в вектор-столбец, используйте оператор транспонирования[Ctrl]1.

Изменение размера матрицы

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

Щёлкните на одном из элементов матрицы, чтобы заключить его в выделяющую рамку. Mathcad будет начинать вставку или удаление с этого элемента.

Выберите Матрицы из меню Математика . Появляется диалоговое окно.

Напечатайте число строк и-или столбцов, которые нужно вставить или удалить. Затем нажмите на “Вставить” или на “Удалить”. Например, чтобы удалить столбец, который содержит выбранный элемент, напечайте 1 в поле “Столбцов”, 0 в поле “Строк”, и нажмите на “Удалить”.

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

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

Чтобы вставить строку выше верхней строки или столбец слева от первого столбца, сначала заключите матрицу целиком в выделяющую рамку, щёлкнув внутри и нажав [­] несколько раз. Затем выберите Матрицы и продолжите, как обычно.

Когда строки или столбцы удаляются, Mathcad начинает со строки или столбца, занятых выбранным элементом. Mathcad удаляет строки вниз от этого элемента и столбцы — направо от этого элемента.

Если напечатать 0 в поле “Строк”, Mathcad ни вставит, ни удалит строки. Если напечатать 0 в поле “Столбцов”, Mathcad ни вставит, ни удалит столбцы.

Обратите внимание, что при удалении строк или столбцов Mathcad выбрасывает содержащуюся в них информацию.

Чтобы удалить всю матрицу или вектор, заключите их в выделяющую рамку и выберите Вырезать из меню Правка .

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

Например, чтобы определить вектор v , необходимо выполнить следующее:

Щёлкните в свободном месте и напечатайте букву v , сопровождаемую двоеточием ( : ).

Выберите Матрицы из меню Математика , чтобы открыть диалоговое окно. Напечатайте 3 в поле Строк и 1 в поле Столбцов.

Нажмите “Создать” и внесите элементы.

Можно теперь использовать имя v вместо самого вектора в любом выражении. Рисунок 1 показывает, что имя v и сам вектор взаимозаменимы. Как только вектор определён, можно определять через него другие векторы точно так же, как на бумаге.

Не используйте одно имя для скалярной переменной и векторной переменной. Это будет просто переопределение переменной.

Рисунок 1: Определение и использование векторной переменной.

Рисунок 2: Определение элементов вектора.

Можно обращаться к отдельным элементам массива, используя нижние индексы. Можно также обращаться к отдельному столбцу массива, используя верхний индекс. Чтобы напечатать нижний индекс, используйте клавишу левой скобки [ и поместите в поле целое число или пару целых чисел. Чтобы вставить оператор верхнего индекса, нажмите [Ctrl]6 и поместите в поле целое число.

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

Нижние индексы и элементы вектора

Верхнее уравнение на Рисунке 1 определяет вектор v . Чтобы увидеть нулевой элемент вектора v :

Можно также определять отдельные элементы вектора, используя нижний индекс слева от определения. Чтобы заменить значение на 6:

Рисунок 2 показывает, как это выглядит.

Когда определяются элементы вектора, часть из них можно оставлять неопределенными. Например, если v не был определен, и определяется равным 10, то v 0, v 1, и v 2 все окажутся неопределенными. Mathcad заполняет эти элементы нулями, пока в них не будут внесены необходимые значения. Иллюстрация этого приведена на Рисунке 3. Будьте внимательны: так можно нечаянно создать очень большие векторы и матрицы.

Рисунок 3: Mathcad заполняет нулями все элементы, которые явно не определены.

Нижние индексы и элементы матрицы

Чтобы просматривать или определить элемент матрицы, используйте два нижних индекса, отделяемые запятой. Вообще, чтобы обратиться к элементу в i -той строке и j -том столбце матрицы M , напечатайте:

Обратите внимание, что нижние индексы, подобно делению и возведению в степень удерживают ввод. Что бы ни печаталось после [, всё остается в нижнем индексе, пока не будет нажат [Space], чтобы выйти оттуда.

Если нужно что-то добавить в выражение, нажмите[Space], чтобы заключить все имя элемента матрицы, M i,j , в выделяющую рамку.

GeekBrains

Рисунок 4 показывает некоторые примеры того, как определить отдельные элементы матрицы и как просмотреть их. Обратите внимание, что, как и в случае с векторами, Mathcad заполняет неопределенные элементы матрицы нулями.

Можно также определять элементы вектора или матрицы формулой типа v i :=i , где i — дискретный аргумент . См. следующую главу “Дискретные аргументы”.

Рисунок 4: Определение и просмотр элементов матрицы.

Рисунок 5: Использование оператора верхнего индекса для извлечения столбца из матрицы.

Верхние индексы и столбцы матрицы

Чтобы обратиться ко всему столбцу массива, нажмите [Ctrl]6 и поместите номер столбца в появившееся поле. Рисунок 5 ниже показывает, как присвоить вектору v значение третьего столбца матрицы M .

Можно также извлекать отдельную строку из матрицы, извлекая столбец из транспонированной матрицы. Иллюстрация этого приведена на Рисунке 5.

Изменение значения ORIGIN

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

Предположим, что нужно, например, чтобы все массивы начинались с первого элемента. Заменить значение ORIGIN во всем документе можно двумя способами:

Выбрав команду Встроенные переменные из меню Математика и заменив значение ORIGIN.

Введя глобальное определение для ORIGIN в любом месте рабочего документа. Например, чтобы установить значение ORIGIN равное 1, напечатайте: ORIGIN

Рисунок 6: Массивы, нумерующиеся с первого элемента вместо нулевого.

Если изменить ORIGIN на 1, Mathcad больше не будет воспринимать нулевой элемент для векторов или нулевые строки и столбцы для матриц. Рисунок 6 показывает рабочий документ с ORIGIN, равным 1. Заметьте, что при попытке обращения к Mathcad теперь сообщает об ошибке “ индекс вне границ ”.

При переопределении ORIGIN в рабочем документе имейте в виду следующее:

Если ORIGIN определяется в рабочем документе, а не с помощью команды Встроенные переменные , используйте одно глобальное определение. Хотя можно переопределять ORIGIN с помощью := , это приведет к путанице. Если изменить ORIGIN в середине рабочего документа, Mathcad будет показывать, что массивы имеют n элементов, где n — разница между старым и новым значением ORIGIN.

Не забудьте, что ORIGIN нужно напечатать заглавными буквами. Хотя ORIGIN — встроенная переменная, и она не чувствительна к шрифту, все имена переменных Mathcad, в том числе и встроенных, чувствительны к регистру.

Когда определяется массив, Mathcad присваивает нулевое значение любым неопределенным элементам. Иллюстрацию этого см. на Рисунке 3 в этой главе.

Если неосторожно определить массив, начиная с первого элемента, когда ORIGIN установлен на своё значение по умолчанию, равное нулю, будут получаться неожиданные ответы от функций массива подобных mean и fft . Дело в том, что Mathcad будет автоматически определять x 0 = 0 для всех этих массивов. Этот дополнительный элемент искажает значения, возвращаемые функциями массива. Чтобы избежать этой проблемы, выберите Встроенные переменные из меню Математика и установите ORIGIN равным 1 в диалоговом окне “Встроенные переменные”.

Когда ORIGIN устанавливается в диалоговом окне “Встроенные переменные”, его значение применяется ко всем массивам. Невозможно сделать так, чтобы одни массивы использовали один ORIGIN, а другие — другой.

Можно использовать ORIGIN, чтобы определить переменные с отрицательными нижними индексами. Если ORIGIN устанавливается равным -10, все массивы будут нумероваться с -10.

Если сослаться на элемент массива с нижним индексом меньшим, чем ORIGIN, Mathcad отмечает обращение к массиву сообщением об ошибке “ индекс вне границ ” .

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

Рисунок 7: Отображение большого массива в виде таблицы вывода с полосами прокрутки.

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

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

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

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

Нажмите и удерживайте левую кнопку мыши. Удерживая кнопку, переместите мышь через таблицу вывода. Выделяющий прямоугольник вытянется из закреплённой точки.

Как только выделяющий прямоугольник охватит область уравнения, отпустите кнопку мыши.

Подведите указатель мыши к правому или нижнему краю выделяющего прямоугольника. Указатель превратится в двойную стрелку.

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

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

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

Изменение способа отображения массивов

Хотя матрицы и векторы, имеющие более чем девять строк или столбцов, автоматически отображаются в виде таблиц вывода с полосами прокрутки, Mathcad может отображать их как матрицы. Чтобы добиться этого:

Щёлкните на таблице вывода с полосами прокрутки.

Выберите Числовой формат из меню Математика .

Щёлкните на квадратике у надписи “Вывести как матрицу” — квадратик пометится.

Нажмите кнопку “OK”.

Чтобы отображать все матрицы и векторы результатов в рабочем документе в виде матриц независимо от их размера:

Щёлкните в свободном месте вашего рабочего документа.

Выберите Числовой формат из меню Математика .

Щёлкните на квадратике у надписи “Вывести как матрицу”.

Убедитесь, что переключатель “Глобальный” отмечен, и нажмите “OK”.

Графическое представление матриц

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

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

Для массивов целых чисел между 0 и 255, можно рассматривать полутоновые изображения, выбрав Изображение из меню Графика и введя имя массива в поле.

Можно увидеть цветное изображение, соответствующее трём массивам целых чисел между 0 и 255, представляющих красные, зеленые и синие компоненты изображения, выбрав Изображение из меню Графика и введя в поле имена массивов, отделяемые запятыми.

Многочисленные примеры трехмерных графиков матриц приводятся, начиная с Главы “Графики поверхностей”. Пример просмотра матрицы в полутоновых изображениях показан на последнем рисунке Главы “Программирование”.

Mathcad имеет следующие ограничения размеров массивов, которые нужно вводить, определять или отображать:

Ограничение входных массивов

Нельзя использовать команду Матрицы из меню Математика , чтобы создать массив, имеющий более чем 100 элементов. Это ограничение применяется при создании нового массива или увеличении существующего. Можно, однако, создать большие массивы либо использованием функций augment или stack , чтобы соединить массивы вместе, либо используя дискретный аргумент, либо считывая числа непосредственно из файла на диске. Пример того, как использовать функцию augment , показан на Рисунке 8. Использование дискретного аргумента для создания массивов обсуждено в Главе “Дискретные аргументы”. Чтение файлов непосредственно с диска обсуждено в Главе “Файлы данных”.

Ограничение отображаемых массивов

Если массив имеет более чем девять строк или столбцов, Mathcad автоматически отображает его в виде таблицы вывода с полосами прокрутки. Можно увеличивать таблицу или использовать полосы прокрутки, чтобы просмотреть весь массив. Но если изменить формат отображения результата, чтобы Mathcad отображал его как массив, а не как таблицу вывода с полосами прокрутки, Mathcad отобразит только первые две сотни строк или столбцов. Mathcad использует многоточия, чтобы указать, что строки и столбцы присутствуют, но не отображаются. Хотя Mathcad не отображает эти строки или столбцы, он продолжает следить за ними внутренне.

Ограничение размеров массива

Ограничение размера массива зависит от памяти, доступной Вашей системе. Для большинства систем это будет по крайней мере 1 миллион элементов. Размер никогда не может превышать 8 миллионов элементов. Если попытаться определить массив больший, чем допускает Ваша система, появится сообщение об ошибке “ недостаточно памяти ”. Элементы могут быть распределены среди любой комбинации строк и столбцов. Когда объём доступной памяти ограничен, и определяются несколько очень больших массивов, допустимый размер массива может уменьшаться.

Рисунок 8: Использование функции augment для объединения двух матриц.

Некоторые из операторов Mathcad имеют особые значения в применении к векторам и матрицам. Например, символ умножения означает просто умножение, когда применяется к двум числам, но он же означает скалярное произведение, когда применяется к векторам, и умножение матриц — когда применяется к матрицам.

Таблица описывает векторные и матричные операторы Mathcad. Многие из этих операторов доступны из палитры символов. Обратите внимание, что операторы, которые ожидают в качестве аргумента вектор, всегда ожидают вектор-столбец, а не вектор-строку.

Чтобы заменить вектор-строку на вектор-столбец, используйте оператор транспонирования [Ctrl]1 .

Операторы, не перечисленные в этой таблице, не будут работать для векторов и матриц. При попытке использовать такой оператор с вектором или матрицей Mathcad будет отмечать это сообщением об ошибке “ неверная операция с массивом ”, или “ нескалярная величина ”. Можно, однако, использовать оператор векторизации, чтобы выполнить любую скалярную операцию или функцию поэлементно на векторе или матрице. См. раздел “Выполнение параллельных вычислений” ниже в этой главе. Рисунок 9 показывает использование некоторых векторных и матричных операций.

Как создать вектор в mathcad

БлогNot. Mathcad: получаем вектор значений функции

Mathcad: получаем вектор значений функции

Часто задаваемый вопрос — как получить из значений функции, посчитанной в заданных пределах с заданным шагом именно вектор значений (а не ранжированную переменную, она же переменная-диапазон, она же дискретный аргумент).

Допустим, нам нужно табулировать функцию f(x) в интервале изменения значений x от a до b включительно с известным шагом по x , равным h .

Решить задачу с помощью дискретного аргумента очень просто, достаточно задать нужный дискретный аргумент и взять от него функцию:

табулирование функции в Mathcad с помощью ранжированной переменной (нижняя часть списка значений отрезана)
табулирование функции в Mathcad с помощью ранжированной переменной (нижняя часть списка значений отрезана)

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

Чтобы получить вектор значений функции, рассчитаем требуемое количество узлов сетки по формуле n = (b-a)/h + 1 , затем сформируем вектор t из требуемых значений аргумента (не будем переопределять уже занятое ранжированной переменной наименование " x ", хотя это и возможно), а затем вычислим значения функции по формуле yi = f(ti) , все эти действия показаны на втором рисунке:

табулирование функции в Mathcad с сохранением вектора значений (показаны только первые элементы вектора)
табулирование функции в Mathcad с сохранением вектора значений (показаны только первые элементы вектора)

1. Предполагаем, что количество узлов сетки n = (b-a)/h + 1 получается целым, если это не так, всегда можно взять вместо n величину ceil(n) (значение, округлённое вверх), как и сделано на скрине, правда, мы рискуем при этом "прихватить" лишнюю область определения, например, при a = 1 , b = 3 , h = 0.3 , имеем n = 7.667 , ceil(n) = 8 , а последнее вычисленное значение x будет равно a + h * (ceil(n)-1) = 3.1 .

2. Также предполагается, что системная переменная ORIGIN (начало нумерации элементов для векторов и матриц) не менялась и равна нулю.

GeekBrains

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *