Создание массивов MathCAD
Рассмотрим основные способы создания массива, учитывая, что две последних возможности будут разобраны в последней части книги Применяйте способ, который оптимален в смысле простоты и читаемости конкретного документа, либо ставший наиболее для Вас привычным.
Создание матрицы командой Insert Matrix
Самый простой и наглядный способ создания вектора или матрицы заключается в следующем:
- Нажмите кнопку Matrix or Vector (Матрица или вектор) на панели Matrix (Матрица) (рис. 4.12) либо клавиши +, либо выберите пункт меню Insert / Matrix (Вставка / Матрица).
- В диалоговом окне Insert Matrix (Вставка матрицы) задайте целое число столбцов и строк матрицы, которую хотите создать. Например, для создания вектора 3×1 введите показанные на рис. 4.12 значения.
- Нажмите кнопку ОК или Insert (Вставить) — в результате в документ будет вставлена заготовка матрицы с определенным числом строк и столбцов (рис. 4.13).
- Введите значения в местозаполнители элементов матрицы. Переходить от одного элемента матрицы к другому можно с помощью указателя мыши либо клавиш со стрелками.
Добавление в уже созданную матрицу строк или столбцов производится точно так же:
- Выделите линиями ввода элемент матрицы, правее и ниже которого будет осуществлена всгавка столбцов и (или) строк.
- Вставьте в него матрицу, как было описано выше. При этом допускается задание числа столбцов или строк равным нулю (рис. 4.14).
- Заполните местозаполнители недостающих элементов матрицы.
Рис. 4.12. Вставка матрицы
Рис. 4.13. Заполнение матрицы элементами
На рис. 4.14 и 4.15 показаны результаты последовательной вставки в матрицу столбца и строки после определения соответствующего числа столбцов и строк в диалоге Insert Matrix и нажатия в нем кнопки Insert (Вставить).
Рис. 4.14. Добавление одного столбца к матрице
Рис. 4.15. Добавление одной строки к матрице
В местозаполнители элементов матрицы можно вставлять не только числа (действительные или комплексные), но и любые математические выражения, состоящие из переменных, операторов, встроенных и пользовательских функций (листинг 4.16, вторая строка).
Листинг 4.16. Использование переменных и функций при определении матрицы
Создание массива определением его отдельных элементов
Массив можно определить следующим образом:
- присваивая значения непосредственно отдельным элементам массива;
- применяя ранжированные переменные (см. листинг 4.15).
Любой из этих способов позволяет присвоить нужное значение как всем элементам массива (см. листинг 4.15), так и части из них, либо даже одно-му-единственному элементу. В последнем случае создается массив, размерность которого задается индексами введенного элемента (листинг 4.17), а неопределенным элементам по умолчанию присваиваются нулевые значения.
Листинг 4.17. Создание матрицы определением одного ее элемента.
В любом месте документа допускается как переопределение любого из элементов массива (листинг 4.18, первая строка), так и изменение его размерности. Чтобы поменять размерность всего массива, просто присвойте любое значение новому элементу, индексы которого выходят за границы прежней размерности (вторая строка листинга 4.18).
В местозаполнители элементов матрицы допускается вставка любых функций, подобно применению обычного оператора присваивания,
Листинг 4.18. Изменение матрицы (продолжение листинге 4.17)
Определение отдельных элементов — удобный способ создания тензоров (многоиндексных массивов). В Mathcad имеется непосредственная возможность работы только с векторами и матрицами. Тем не менее, можно создать тензор путем определения вложенного массива (nested array). Для этого необходимо присвоить каждому элементу матрицы значение в виде другого вектора или матрицы (листинг 4.19). Пользователь должен лишь позаботиться о корректности задания индексов тензора и не запутаться в индексировании вложенных матриц (последняя строка листинга).
Листинг 4.19. Создание тензора и доступ к его элементам
Процесс создания тензора автоматизирует применение ранжированных переменных.
Обратите внимание, что Mathcad по умолчанию не отображает трехмерную структуру тензора (предпоследняя строка листинга 4.19), а вместо этого показывает информацию о размерах каждого элемента матрицы s. Развернуть вложенные массивы можно с помощью команды Format / Result / Display Options (Формат / Результат / Опции отображения), устанавливая флажок Expand Nested Arrays (Разворачивать вложенные массивы) на вкладке Display Options (Опции отображения).
Знаете ли Вы, что такое «Большой Взрыв»?
Согласно рупору релятивистской идеологии Википедии «Большой взрыв (англ. Big Bang) — это космологическая модель, описывающая раннее развитие Вселенной, а именно — начало расширения Вселенной, перед которым Вселенная находилась в сингулярном состоянии. Обычно сейчас автоматически сочетают теорию Большого взрыва и модель горячей Вселенной, но эти концепции независимы и исторически существовало также представление о холодной начальной Вселенной вблизи Большого взрыва. Именно сочетание теории Большого взрыва с теорией горячей Вселенной, подкрепляемое существованием реликтового излучения. «
В этой тираде количество нонсенсов (бессмыслиц) больше, чем количество предложений, иначе просто трудно запутать сознание обывателя до такой степени, чтобы он поверил в эту ахинею.
На самом деле взорваться что-либо может только в уже имеющемся пространстве.
Без этого никакого взрыва в принципе быть не может, так как «взрыв» — понятие, применимое только внутри уже имеющегося пространства. А раз так, то есть, если пространство вселенной уже было до БВ, то БВ не может быть началом Вселенной в принципе. Это во-первых.
Во-вторых, Вселенная — это не обычный конечный объект с границами, это сама бесконечность во времени и пространстве. У нее нет начала и конца, а также пространственных границ уже по ее определению: она есть всё (потому и называется Вселенной).
В третьих, фраза «представление о холодной начальной Вселенной вблизи Большого взрыва» тоже есть сплошной нонсенс.
Что могло быть «вблизи Большого взрыва», если самой Вселенной там еще не было? Подробнее читайте в FAQ по эфирной физике.
Какие способы отображения массивов существуют в mathcad
Массив — имеющая уникальное имя совокупность конечного числа числовых или символьных элементов, упорядоченных определенным образом и имеющих определенные адреса. В системе MathCAD используются массивы: одномерные (векторы) и двумерные (матрицы). Порядковый номер элемента называете индексом. Нижняя граница индексации задается значением системной переменной ORIGIN , которая может принимать значение 0 или другое некоторое число.
Векторы могут быть двух типов: векторы-строки и векторы-столбцы. Например:
20 вектор-столбец [10 20 30]—вектор-строка
Несмотря на то что два этих вектора имеют одни и те же числовые значения элементов, они различны по типу и дадут разные результаты при векторных и матричных операциях.
Матрица может рассматриваться как совокупность ряда векторов одинаковой длины, например:
Создание массивов
Имеется три способа создать массив:
1) Воспользоваться командой Matrices . (Матрицы. ) пункта меню Math (Математика) , нажатием клавиш Ctrl — M или вводом пиктограммы с изображением шаблона матрицы. Это вызывает вначале появление диалогового окна, в котором надо указать размерность матрицы, т. е. количество ее строк т и столбцов п. Для векторов один из этих параметров должен быть равен 1. При т = 1 получим вектор-столбец, а при п = 1— вектор-строку. Матрица является двумерным массивом с числом элементов тхп . Элементы векторов и матриц помещаются между большими квадратными скобками. На месте визира появится шаблон
В знакоместа шаблона ввести значения элементов вектора (матрицы). Переход к следующему знакоместу производится нажатием клавиши Tab .
Обращаться к отдельным элементам вектора или матрицы можно используя нижний индекс. Для элемента матрицы указываются два индекса, один для номера строки, другой для номера столбца. Чтобы ввести нижний индекс нужно нажать клавишу [ после имени вектора или матрицы . Н апример :
Нажмем клавиши V [2 получим : V2
Нажмем клавиши M [3,4 получим : M3,4
Индексы могут иметь только целочисленные значения. Они могут начинаться с нуля или с целого числа, например единицы, в соответствии со значением системной переменной ORIGIN . В отношении индексированных переменных действуют те же правила присваивания и вывода, что и для обычных переменных. В частности, с помощью операций присваивания можно создать вектор или матрицу заданной размерности и заданного типа без ручного вывода их шаблоном и без их заполнения.
2) Использование ранжированной переменной. Этот способ применяется тогда, когда имеется явная формула для вычисления значений элементов массива и их индексов. Ранжированная переменная, используемая для определения индекса массива должна быть целочисленной. Например: ORIGIN := 1
3) Создать массив можно считывая его из файла данных.
Операторы для работы с векторами и матрицами
Обозначения: для векторов — V, для матриц — М и для скалярных величин — z . Приводим некоторые операторы работы с векторами и матрицами:
Оператор Ввод Назначение оператора
VI + V 2 VI + V 2 Сложение двух векторов VI и V 2
VI — V 2 VI — V 2 Вычитание двух векторов VI и V2
-V -V Смена знака у элементов вектора V
-М -М Смена знака у элементов матрицы
V — z V — z Вычитание из вектора V скаляра z
z * V , V * z z * V , V * z Умножение вектора V на скаляр Z
z * M , M * z z * M , M * z Умножение матрицы М на скаляр Z
VI * V 2 VI * V 2 Умножение двух векторов VI и V2
M * V M * V Умножение матрицы М на вектор V
М 1 *М2 М1*М2 Умножение двух матриц М1 и М2
V / z Деление вектора V на скаляр z
M / z Деление матрицы М на скаляр z
М’ М^-1 Обращение матрицы М
М » М^n Возведение матрицы М в степень п
M [ im Вычисление определителя матрицы
A T A Ctrl 1 Транспонирование вектора или матрицы А
A — A Ctrl — Векторизация вектора или матрицы А
Приведенные операторы известны из математического аппарата матричных вычислений. Поясним смысл оператора «векторизация». Оператор «векторизация» подразумевается одновременное проведение математических операций в их скалярном значении над всеми элементами вектора или матрицы, помеченными знаками векторизации. Например, если V — вектор, то выражение cos ( V ) будет недопустимым, поскольку аргументом функции cos может быть только скалярная величина или переменная. Однако со знаком векторизации функция cos ( V ) возвращает вектор, каждый элемент которого есть косинус значения соответствующего исходного вектора V.
Векторные функции для работы с векторами и матрицами.
Некоторые из них:
lcngth ( V ) — возвращает длину вектора:
last ( V ) — возвращает индекс последнего элемента;
max ( V ) — возвращает максимальный по значению элемент:
min ( V ) — возвращает минимальный по значению элемент;
Матричные функции
Для работы с матрицами также существует ряд встроенных функций. Они перечислены ниже.
augment ( MI , М2) — объединяет в одну матрицы М1 и М2, имеющие одинаковое число строк
identity ( n ) — создает единичную квадратную матрицу размером пхп ,
stack ( MI , Ì2) — объединяет две матрицы М1 и M 2, имеющие одинаковое число столбцов, сажая M1 над M2:
diag ( V ) — создает диагональную матрицу, элемент главной диагонали которой — вектор V;
cols ( M ) — возвращает число столбцов матрицы М;
rows ( M ) — возвращает число строк матрицы М;
rank ( M ) — возвращает ранг матрицы М;
tr ( M ) — возвращает след (сумму диагональных элементов) квадратной матрицы М;
mean ( M ) — возвращает среднее значение элементов массива М;
median ( M ) — возвращает медиану элементов массива М;
