Как задать массив в маткаде
Перейти к содержимому

Как задать массив в маткаде

  • автор:

Как задать массив в маткаде

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

• Для ORIGIN=0 последний индекс вектора равен length(v) -1 .

• Переменная-диапазон, которая начинается со значения, большего ORIGIN , или заканчивается значением, меньшим длины массива, не охватывает все элементы массива.

• Значение переменной ORIGIN определяет, какие элементы массива могут существовать. Например, если используются настройки по умолчанию, не может существовать элемент массива с индексом –1. При вычислении выражения M -1 отобразится сообщение об ошибке.

Дополнительная информация

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

Следующие функции явным образом требуют указания индекса строки или столбца.
• Функции поиска — hlookup и vlookup .
• Функции сортировки — csort и rsort .
• Функции обработки изображений — subcolor , dilate, gray_dilate, erode и gray_erode .

Следующие функции не требуют указания индекса строки или столбца, но тем не менее зависят от значения ORIGIN .

• Антисимметричная тензорная функция ε .

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

Создание массивов 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 (Опции отображения).

Знаете ли Вы, в чем ложность понятия «физический вакуум»?

Физический вакуум — понятие релятивистской квантовой физики, под ним там понимают низшее (основное) энергетическое состояние квантованного поля, обладающее нулевыми импульсом, моментом импульса и другими квантовыми числами. Физическим вакуумом релятивистские теоретики называют полностью лишённое вещества пространство, заполненное неизмеряемым, а значит, лишь воображаемым полем. Такое состояние по мнению релятивистов не является абсолютной пустотой, но пространством, заполненным некими фантомными (виртуальными) частицами. Релятивистская квантовая теория поля утверждает, что, в согласии с принципом неопределённости Гейзенберга, в физическом вакууме постоянно рождаются и исчезают виртуальные, то есть кажущиеся (кому кажущиеся?), частицы: происходят так называемые нулевые колебания полей. Виртуальные частицы физического вакуума, а следовательно, он сам, по определению не имеют системы отсчета, так как в противном случае нарушался бы принцип относительности Эйнштейна, на котором основывается теория относительности (то есть стала бы возможной абсолютная система измерения с отсчетом от частиц физического вакуума, что в свою очередь однозначно опровергло бы принцип относительности, на котором постороена СТО). Таким образом, физический вакуум и его частицы не есть элементы физического мира, но лишь элементы теории относительности, которые существуют не в реальном мире, но лишь в релятивистских формулах, нарушая при этом принцип причинности (возникают и исчезают беспричинно), принцип объективности (виртуальные частицы можно считать в зависимсоти от желания теоретика либо существующими, либо не существующими), принцип фактической измеримости (не наблюдаемы, не имеют своей ИСО).

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

Понять абсурдность этого понятия легче всего обратившись к истокам его возникновения. Рождено оно было Полем Дираком в 1930-х, когда стало ясно, что отрицание эфира в чистом виде, как это делал великий математик, но посредственный физик Анри Пуанкаре, уже нельзя. Слишком много фактов противоречит этому.

Для защиты релятивизма Поль Дирак ввел афизическое и алогичное понятие отрицательной энергии, а затем и существование «моря» двух компенсирующих друг друга энергий в вакууме — положительной и отрицательной, а также «моря» компенсирующих друг друга частиц — виртуальных (то есть кажущихся) электронов и позитронов в вакууме.

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

Как задать массив в маткаде

Массив — имеющая уникальное имя совокупность конечного числа числовых или символьных элементов, упорядоченных определенным образом и имеющих определенные адреса. В системе 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 ) — возвращает медиану элементов массива М;

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 )

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

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