Как задать массив в маткаде
Матрицы в Mathcad
Векторы и матрицы рассматриваются в программе Mathcad как одномерные и двумерные массивы данных.
Матрица создается с помощью диалогового окна Вставить матрицу (рис. 1.6), которое открывают командой Вставка > Матрица (Insert > Matrix) или первой кнопкой на панели «Матрица» (рис. 1.7). Вектор задается как матрица, имеющая один столбец. В диалоговом окне задается число строк и столбцов, а после вставки на рабочий лист матрица содержит вместо элементов заполнители, вместо которых следует вставить число, переменную или выражение.

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

Для работы с элементами матрицы используют индексы элементов. Нумерация строк и столбцов матрицы начинается с нуля, что задается системной переменной ORIGIN, и может быть изменено пользователем (например, блок ORIGIN:=1 устанавливает начальный индекс равным единице). Индекс элемента задается числом, переменной или выражением и отображается как нижний индекс. Он вводится после щелчка на кнопке Индекс (Subscript, xn) на панели инструментов Mатрица (Matrix) или нажатием символа «[» после имени массива (см. приложение «Горячие клавиши»). Индексы двумерных матриц записываются через запятую.
Иногда (например, при построении графиков) требуется выделить вектор, представляющий собой столбец матрицы. Номер столбца матрицы отображается как верхний индекс, заключенный в угловые скобки: . Для его ввода используется кнопка Столбец (Matrix Column) на панели инструментов Матрица или соответствующая «горячая» клавиша.
Для задания некоторой последовательности элементов матрицы используют диапазоны. Диапазон фактически представляет собой вектор, содержащий арифметическую прогрессию, определенную первым, вторым и последним элементами. Чтобы задать диапазон, следует указать значение первого элемента, через запятую значение второго и через точку с запятой значение последнего элемента. Точка с запятой при задании диапазона отображается как две точки (..). Диапазон можно использовать как значение переменной, например х:=0,0.01..1 . Если разность прогрессии равна единице (то есть, элементы просто нумеруются), значение второго элемента и соответствующую запятую опускают.
На рис. 1.8 приведены примеры реализации некоторых операций с матрицами.
Создание массивов 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 (Опции отображения).
Знаете ли Вы, что «тёмная материя» — такая же фикция, как черная кошка в темной комнате. Это не физическая реальность, но фокус, подмена.
Реально идет речь о том, что релятивистские формулы не соответствуют астрономическим наблюдениям, давая на порядок и более меньшую массу и меньшую энергию. Отсюда сделан фокуснический вывод, что есть «темная материя» и «темная энергия», но не вывод, что релятивистские формулы не соответствуют реалиям. Подробнее читайте в FAQ по эфирной физике.
1.2.6. Ранжированные переменные и матрицы MathCAD 12 руководство
Массивами ( arrays ) называют упорядоченные последовательности чисел, или элементов массива. Доступ к любому элементу массива возможен по его индексу, т. е. номеру в последовательности чисел (в листинге 1.14 а — это массив, ai — его элемент). Применение массивов чрезвычайно эффективно в математических расчетах.
Листинг 1.14. Одномерный массив ( вектор )
В Mathcad условно выделяются два типа массивов:
- векторы (одноиндексные массивы, листинг 1.14), матрицы (двухиндексные, листинг 1.15) и тензоры (многоиндексные);
- ранжированные переменные (range variables) — векторы, элементы которых определенным образом зависят от их индекса.
Листинг 1.15. Двумерный массив ( матрица )
Доступ ко всему массиву осуществляется обычным поименованием векторной переменной. Над элементами массива можно совершать действия, как над обычными числами. Нужно только правильно задать соответствующий индекс или сочетание индексов массива. Например, чтобы получить доступ к нулевому элементу вектора а из листинга 1.14:
1. Введите имя переменной массива (а).
2. Нажмите кнопку Subscript (Нижний индекс) со значком х „ на панели Matrix (Матрица), либо введите [.
3. В появившийся справа снизу от имени массива местозаполнитель введите желаемый индекс ( 0 ).
Если после этого ввести знак численного вывода, то справа от него появится значение нулевого элемента вектора, как показано во второй строке листинга 1.14.
Чтобы получить доступ к элементу многоиндексного массива (например, элементу a 1,0 матрицы а из листинга 1.15):
1. Введите имя переменной массива (а).
2. Перейдите к вводу нижнего индекса, введя [ .
3. Введите в местозаполнитель индекса первый индекс (2), запятую (,) и в появившийся после запятой местозаполнитель введите второй индекс ( 0 ).
В результате будет получен доступ к элементу, как показано в последней строке листинга 1.15.
В рассмотренных листингах нумерация индексов массивов начинается с нуля, иными словами, первый элемент массива имеет индекс 0. Стартовый индекс массива задается системной переменной ORIGIN , которая по умолчанию равна нулю. Если вы привыкли нумеровать элементы векторов и матриц с единицы, присвойте этой переменной значение 1. Обратите внимание, что в этом случае попытка выяснить значение нулевого элемента вектора приводит к ошибке, поскольку его значение не определено.
Помимо доступа к отдельным элементам массива, имеется возможность совершать действия над его подмассивами (например, векторами-столбцами, образующими матрицу). Делается это с помощью оператора со значком х <> на панели Matrix (Матрица) (листинг 1.16). Символ «Т» во второй строке листинга 1.16 обозначает операцию транспонирования матрицы.
Листинг 1.16. Доступ к подмассиву ( продолжение листинга 1.15 )
Как задать массив в маткаде
Тема 3. Векторные и матричные операции.
Пример 1. Ввод массивов.
Нумерация элементов в массивах по умолчанию начинается с 0. Чтобы ее изменить нужно присвоить соответствующее значение системной переменной ORIGIN:
1.1 Присваивание значений отдельным элементам массива:
Для печати нижнего индекса (номера элемента) надо нажать клавишу [ (открытая квадратная скобка), или нажать кнопку «Subscript» на панели инструментов «Vector and Matrix ToolBar».
1.2 Присваивание всех значений массива (для ввода шаблона матрицы или вектора надо нажать кнопку «Matrix or Vector» и задать количество строк и столбцов):
1.3 Формирование массивов по формуле:
Вводим ранжированную переменную для обозначения номера элемента.
1.4 Формирование массива целыми случайными числами от 0 до 100:
Пример 2. Векторные и матричные операторы.
2.1 Сумма, разность векторов и матриц одинаковой размерности:
2.2 Операции вектора или матрицы со скалярной величиной:
2.3 Умножение матриц:
— Перемножить можно только смежные матрицы (кол-во строк 1-й равно кол-ву столбцов 2-й и наоборот) .
— Обратите внимание, что переместительный закон умножения для матриц не выполняется!
2.4 Умножение матрицы на вектор:
2.5 Скалярное произведение векторов:
2.6 Векторное произведение векторов (кнопка «Cross Product»):
2.7 Вычисление обратной квадратногй матрицы (кнопка «Inverse»):
2.8 Возведение квадратной матрицы в степень n:
2.9 Транспонирование матриц (кнопка «Matrix Transpose»):
2.10 Вычисление модуля вектора:
2.11 Вычисление определителя (детерминанта) квадратной матрицы (кнопка «Determinant»):
2.12 Вычисление суммы элементов вектора (кнопка «Vector Sum»):
2.13 Выделение столбца матрицы в вектор (кнопка «Matrix Column»):
Пример 3. Векторные и матричные функции.
— длина вектора (количество элементов).
— номер последнего элемента.
— сумма элементов, стоящих на главной диагонали квадратной матрицы.
— объединение двух матриц по горизонтали .
— объединение двух матриц по вертикали .
— формирование матрицы по функциональной зависимости (по формуле).
— сортировка вектора по возрастанию.
— поменять порядок следования элементов вектора на обратный.
— сортировка строк матрицы по возрастанию элементов, указанного столбца.
— сортировка столбцов матрицы по возрастанию элементов, указанной строки.
Примеры обработки массивов.
3.1 Даны результаты проведения N экспериментов (порядковый номер эксперимента и полученное в нем численное значение некоторого параметра). Вычислить среднее значение параметра, исключив из данных его максимальное и минимальное значение.
3.2 Даны матрица M. Вычислить сумму элементов ее k-й строки.
Пример 4. Построение графиков и диаграмм по данным из массивов.
4.1 Построить график зависимости вектора Y от X.
4.2 Отобразить на гистограмме данные из двух столбцов матрицы.
Пример 5. Программная обработка массивов.
5.1 Даны результаты проведения N экспериментов (значения задаваемого параметра X и полученные при этом значения некоторого исследуемого параметра Y). Определить значение параметра X, при котором было получено наиболее близкое значение к среднему арифметическому всех значений параметра Y.
5.2 В матрице M определить номер строки с максимальной суммой и значение этой суммы.
