Определение новой размерности
Чтобы определить новую (пользовательскую) единицу измерения, достаточно присвоить ее выражение через используемые размерности переменной с соответствующим именем. Пример создания новой единицы измерения "наноампер" приведен в листинге 4.9.
Листинг 4.9. Определение новой единицы измерения
Созданные пользователем единицы измерения недоступны в диалоговом окне Insert Unit (Вставка единицы измерений), поэтому их приходится вводить вручную с клавиатуры (как это сделано для новой единицы ПА во второй строке листинга 4.9).
Массивы Массивами (arrays) называют упорядоченные последовательности чисел или элементов массива. Доступ к любому элементу массива возможен по его индексу, т. е. номеру в последовательности чисел (в листинге 4.10 а — это массив, ах — его элемент). Применение массивов чрезвычайно эффективно в математических расчетах. Листинг 4.10. Одномерный массив (вектор)
В Mathcad условно выделяются два типа массивов: · векторы (одноиндексные массивы, листинг 4.10), матрицы (двухиндексные, листинг 4.11) и тензоры (многоиндексные); · ранжированные переменные (range variables) — векторы, элементы которых определенным образом зависят от их индекса. Листинг 4.11. Двумерный массив (матрица)
Доступ к элементам массива Доступ ко всему массиву осуществляется по имени векторной переменной. Например, последовательность символов "а", "=" в листингах 4.10 и 4.11 приведет к выводу соответствующего вектора или матрицы. В Mathcad имеются и операторы, и встроенные функции, которые действуют на векторы и матрицы целиком (они рассматриваются в гл. 9), например, транспонирование, матричное умножение и т. д.
Над элементами массива можно совершать действия как над обычными числами. Нужно только правильно задать соответствующий индекс или сочетание индексов массива. Например, чтобы получить доступ к нулевому элементу вектора а из листинга 4.10: · Введите имя переменной массива (а). · Нажмите кнопку Subscript (Нижний индекс) со значком хn на панели Matrix (Матрица) либо введите [. · В появившийся справа снизу от имени массива местозаполнитель введите желаемый индекс (0). Если после этого ввести знак численного вывода, то справа от него появится значение нулевого элемента вектора, как показано во второй строке листинга 4.10. Чтобы получить доступ к элементу многоиндексного массива (например элементу а1,0 матрицы а из листинга 4.11): · Введите имя переменной массива (а). · Перейдите к вводу нижнего индекса, введя [. · Введите в местозаполнитель индекса первый индекс (1), запятую "," и в появившийся после запятой местозаполнитель введите второй индекс (0). В результате будет получен доступ к элементу, как показано в предпоследней строке листинга 4.11. В рассмотренных листингах нумерация индексов массивов начинается с нуля, иными словами, первый элемент массива имеет индекс о. Стартовый индекс массива задается системной переменной ORIGIN, которая по умолчанию равна нулю. Если Вы привыкли нумеровать элементы векторов и матриц с единицы, присвойте этой переменной значение 1 (листинг 4.12). Обратите внимание, что в этом случае попытка выяснить значение нулевого элемента вектора приводит к ошибке, поскольку его значение не определено. Помимо доступа к отдельным элементам массива, имеется возможность совершать действия над его подмассивами (например векторами-столбцами, образующими матрицу). Делается это с помощью оператора со значком х<> на панели Matrix (Матрица).
Листинг 4.12. Изменение нумерации индексов массивов
Ранжированные переменные
Ранжированные переменные в Mathcad являются разновидностью векторов и предназначены, главным образом, для создания циклов или итерационных вычислений. Простейший пример ранжированной переменной — это массив с числами, лежащими в некотором диапазоне с некоторым шагом. Например, для создания ранжированной переменной s с элементами 0,1,2,3,4,5: · Поместите курсор ввода в нужное место документа. · Введите имя переменной (s) и оператор присваивания ":". · Нажмите кнопку Range Variable (Ранжированная переменная) на панели Matrix (Матрица), показанную на рис. 4.9, либо введите символ точки с запятой с клавиатуры. · В появившиеся местозаполнители (рис. 4.9) введите левую и правую границы диапазона изменения ранжированной переменной 0 и 5.
Рис. 4.9. Создание ранжированной переменной
Результат создания ранжированной переменной показан на рис. 4.10. Чтобы создать ранжированную переменную с шагом, не равным 1, например, 0,2,4,6,8: · Создайте ранжированную переменную в диапазоне от о до 8 (см. рис. 4.9). · Поместите линии ввода на значение начала диапазона (о). · Введите запятую. · В появившийся местозаполнитель (рис. 4.11) введите значение шага изменения ранжированной переменной (2). Созданная ранжированная переменная будет иметь значения от о до 8 включительно, с шагом, равным 2. Рис. 4.10. Вывод ранжированной переменной
Рис. 4.11. Создание ранжированной переменной с шагом, не равным 1
Чаще всего ранжированные переменные используются: · при параллельных вычислениях (листинги 4.13 и 4.14); · для присвоения значений элементам других массивов (листинги 4.14 и 4.15). Обратите внимание на типичный пример использования ранжированной переменной из листингов 4.13 и 4.14. Большинство математических действий, реализованных в Mathcad, совершаются над ранжированными переменными точно так же, как над обычными числами. В этом случае одно и то же действие осуществляется параллельно над всеми элементами ранжированной переменной.
Листинг 4.13. Ранжированная переменная при параллельных вычислениях
Параллельные вычисления производятся точно так же и над произвольными векторами, не обязательно являющимися ранжированными переменными. Например, можно определить в листинге 4.14 вектор i, подобно вектору из листинга 4.10, и провести те же параллельные вычисления над его элементами.
Листинг 4.14. Ранжированная переменная при параллельных вычислениях
Листинг 4.15. Использование ранжированной переменной для определения матрицы Определяя массив с помощью ранжированных переменных (листинги 4.14 и 4.15), позаботьтесь о том, чтобы их значения пробегали все необходимые индексы массива. Например, если задать шаг изменения ранжированной переменной, равный 2, то половина элементов вектора будет не определена. Помните о том, что ранжированные переменные — просто разновидности векторов с упрощенной формой задания элементов. Часто необходимо провести одни и те же вычисления циклически, большое количество раз, например, вычисление некоторой функции f (х) в некотором диапазоне х для построения подробного графика. Задание вручную всех значений аргумента (наподобие вектора из листинга 4.10) очень трудоемко, а с помощью задания ранжированной переменной х это делается в одну строку.
Создание массивов Существует несколько способов создания массива: · ввод всех элементов вручную с помощью команды Insert Matrix; · определение отдельных элементов массива; · создание таблицы данных и ввод в нее чисел; · применение встроенных функций создания массива (см. гл. 9); · создание связи с другим приложением, например Excel или MATLAB; · чтение из внешнего файла данных; · импорт из внешнего файла данных. Рассмотрим основные способы создания массива, учитывая, что две последних возможности будут разобраны в последней части книги Применяйте способ, который оптимален в смысле простоты и читаемости конкретного документа, либо ставший наиболее для Вас привычным. Создание матрицы командой Insert Matrix Самый простой и наглядный способ создания вектора или матрицы заключается в следующем: · Нажмите кнопку Matrix or Vector (Матрица или вектор) на панели Matrix (Матрица) (рис. 4.12) либо клавиши <Ctrl>+<M>, либо выберите пункт меню Insert / Matrix (Вставка / Матрица).
· В диалоговом окне Insert Matrix (Вставка матрицы) задайте целое число столбцов и строк матрицы, которую хотите создать. Например, для создания вектора 3x1 введите показанные на рис. 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 (Опции отображения).
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|