Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Untitled(2).doc
Скачиваний:
2
Добавлен:
01.05.2025
Размер:
1.19 Mб
Скачать

4.4. Вычисления

Переменные

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

Употребление русских букв в именах крайне неудобно и возможно только в современных версиях Mathcad. Поэтому в именах рекомендуем использовать только латинские и греческие буквы и цифры. Греческие буквы вводятся с палитры, вызываемой командой меню View / Tolbars / Greek. Есть и более простой способ ввода греческих букв. Надо на клавиатуре набрать латинский аналог греческой буквы (как правило, это первая буква в латинском названии греческой буквы). Введя аналог греческой буквы, нажмите сочетание клавиш [Ctrl][G] — на экране появится греческая буква в том же регистре, в котором набрана латинская буква. Ниже перечислены греческие буквы и их латинские аналоги.

Перед использованием переменной необходимо ее определить, т. е. указать, какое числовое значение соответствует данному имени. Это определение осуществляется операцией присваивания. Оператор присваивания задает значение переменной. Присваивание в системе MathCAD осуществляется с помощью знака :=. Знак присваивания появляется при нажатии клавиши [:]. Например, напечатав А:5, на экране получим А := 5. Это означает, что переменной с именем А присвоено числовое значение равное 5.

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

Иногда для наглядности лучше разместить оператор присваивания значений исходным данным в произвольном месте, например, ближе к концу документа, рядом с результатами вычислений. Тогда следует использовать оператор глобального присваивания, который вводится клавишами [Shift][~]. Например, набрав а[Shift][~]5, на экране получим .

Переменной можно присвоить не только единственное значение, но также последовательность числовых значений с постоянным шагом изменения. Такая переменная называется дискретная переменная или дискретный аргумент. Ее имя должно быть простым (без индексов). Приведем примеры:

Напечатав А:0;5 на экране получим А := 0 .. 5 Это означает, что переменной с именем А присвоено пять возрастающих значений с шагом 1: 0, 1, 2, 3, 4, 5.

Напечатав А:-2,-1.9;3 на экране получим А := -2, -1.9 .. 3. Это означает, что переменной с именем А присвоен следующий ряд возрастающих значений с шагом 0.1: -2, -1.9, -1.8, -1.7... 2.8, 2.9, 3 (всего 51 значение). Здесь первое число - начальная граница диапазона, второе число - следующее число после его изменения на один шаг, третье число вторая граница диапазона изменения. Если третье число в определении диапазона не равно целому числу приращений начального значения, дискретный аргумент все равно не выйдет за предел, указанный в третьем числе. Например, запись А := 10, 7 .. 0 означает, что переменной А присвоен следующий ряд убывающих значений 10, 7, 4, 1. Значение 0 отсутствует, хотя оно записано как граница диапазона.

Числовое значение (или совокупность значений) любой переменной или выражения можно вывести на экран (распечатать), введя символ = клавишей [=].

Введенная впервые в данном документе с клавиатуры латинская буква e внутри математического блока означает основание натурального логарифма e = 2.71. Часто используемое в выражениях число p можно ввести с математической панели Calculator или с панели греческих букв, если этот ввод осуществлен впервые в данном документе.

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

Функции

Функция состоит из имени и одного или нескольких аргументов. Имя функции должно строится по тем же правилам что и имя переменной. Аргументы записываются в круглых скобках и разделяются запятыми. Функция, в ответ на обращение к ней по имени с указанием значений аргументов (при ее использовании), возвращает (подставляет вместо себя) свое единственное значение. При использовании функция может записываться справа знака присваивания как одна, так и в составе выражения. В составе MathCAD имеется много ВСТРОЕННЫХ функций, т.е. функций заблаговременно введенных разработчиками.

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

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

Для того чтобы вставить встроенную функцию, используя диалоговое окно, следует (см. рис.1):

Рис. 1

  • Командой Insert / Funktion вызвать одноименное диалоговое окно. Пользуясь полосами прокрутки на левом окне указать мышью нужную категорию, а затем, пользуясь полосами прокрутки на правом окне, указать щелчком мыши встроенную функцию. На нижней панели появится ее краткое описание.

  • Нажать кнопку Insert (Вставить). Или дважды щелкнуть мышкой на имени выбранной функции. Функция появится внутри курсора ввода.

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

Определение функции пользователя аналогично определению переменной: Имя функции с формальными именами аргументов в скобках должно стоять слева, знак присваивания := должен стоять посередине, а выражение, которое показывает какие действия нужно совершить над аргументами в скобках, должно стоять справа. Не имеет значения, были ли ранее определены или использованы в документе формальные имена из списка аргументов. Если в выражении (справа от знака присваивания) имеются имена переменных, отсутствующие в списке формальных аргументов в скобках (слева от знака присваивания), то этим переменным в документе предварительно должны быть присвоены числовые значения.

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

П риведем пример определения и использования функции пользователя.

При использовании функции пользователя вместо имен фактических аргументов можно записывать их числовые значения.

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

Продолжим рассмотрение предыдущего примера. Пусть возникла необходимость исследовать зависимость результата вычислений V от параметра А, Требуется, многократно меняя параметр A, добиться подходящих значений переменной V. Такая процедура часто используется в многовариантных расчетах при проектировании. Если документ большой, то параметр A и переменная V на одном экране не умещаются. Подбор параметра А будет сильно затруднен. В таких случаях следует оператор присваивания параметра A, расположенный перед определением функции пользователя удалить, а на свободном месте рядом с выводом переменной V клавишами [Shift][~] ввести оператор глобального присваивании значения параметру А.. Например, . Глобальное присваивание действует по всему документу.

Массивы

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

Числа в массиве имеют номера (индексы). Вектор имеет индексы возрастающие сверху вниз. Матрица имеет индексы строк, возрастающие сверху вниз и индексы столбцов, возрастающие слева направо. Номера индексов начинаются по умолчанию с нуля или с любого целого числа, вводимого в документе путем присваивания значения переменной ORIGIN или ввода числового значения в поле Array Origin в окне Math Options, вызываемого командой Math / Options...

Создание массива

Имеются четыре способа создания массива:

  • Заполнение шаблона массива пустых полей. С помощью шаблона можно ввести матрицу, содержащую не более 100 элементов.

  • Использование встроенных функций создания массива.

  • Используя циклические вычисления. Эта методика подходит, когда имеется явная формула для вычисления значений элементов массива в зависимости от значений его индексов.

  • Путем применения функции чтения файла, содержащего массив.

Рассмотрим первый способ. Для создания массива путем заполнения пустых полей шаблона следует:

  • Щелкнуть в нужном пустом месте экрана и внести имя массива и знак определения (присваивания);

  • Нажать клавиши ввести команду Insert / Matrix или нажать клавиши [Ctrl][M]. Появится диалоговое окно, показанное на рис. 2.

  • Указать число строк (Rows) и столбцов (Columns) и нажать кнопку OK. Появится трафарет, содержащий пустые поля.

  • Заполнить с клавиатуры пустые поля в трафарете числами или определенными ранее именами переменных.

Р ассмотрим второй способ создания массива.

Для создания массива следует ввести с клавиатуры его имя, знак присваивания, а затем имя встроенной функции создания массива с указанием аргументов в круглых скобках: Например:

A := identity(5)

Рис.2

В результате будет создана квадратная матрица с именем А, с диагональными элементами равными единицам и с остальными элементами, равными нулям.

Приведем назначение и синтаксис наиболее употребительных функций создания векторов со случайными значениями элементов.

rnorm(m, m, s) — создает вектор m случайных чисел, с нормальным распределением (m — среднее значение, s — стандартное отклонение).

runif(m, a, b) — создает вектор m случайных чисел, имеющих равномерное распределение (b и a — границы интервала, a < b)

MathCAD содержит также встроенные функции создания вектора, значения элементов которого соответствуют другим законам распределения (Стьюдента, Вейбулла, Фишера, биномиальное, логистическое, логарифмическое нормальное, геометрическое, гипергеометрическое, экспоненциальное и др.).

Действия с массивами (векторные и матричные операции)

MathCAD позволяет вычислять выражения, в которых операндами являются имена массивов без индексов. В таблице 2 приведены векторные и матричные операции. В этой таблице буквами A и В обозначены матрицы, буквами u и v — векторы, буквой z — скаляры. Действия с матрицами можно осуществлять как с помощью клавиш, указанных в табл. 1, так и с помощью панели Matrix, вызываемой командой меню View / Toolbars / Matrix.

Таблица 1

Операция

Обозна-чение

Кла-

виши

Описание

Умножение массива на скаляр

Az

*

Умножает каждый элемент массива А на скаляр z.

Скалярное произведение векторов

u v

*

Возвращает скаляр: åui vi Векторы u и v должны иметь одинаковое количество элементов.

Умножение матриц

А В

*

Возвращает матрицу - произведение матриц А и В. Число столбцов матрицы А должно быть равно числу строк матрицы В.

Умножение матрицы на вектор

A v

*

Возвращает вектор - произведение матрицы A на вектор v. Число столбцов матрицы А должно быть равно числу строк вектора v.

Деление массива на скаляр

A / z

/

Делит каждый элемент массива А на скаляр z.

Сложение и вычитание массивов

A + B

A - B

+

-

Складывает (вычитает) соответствующие элементы массивов A и B. Массивы А и В должны иметь одинаковое число строк и столбцов.

Скалярная сумма

А + z

+

Добавляет z к каждому элементу А.

Изменение знака

- А

-

Умножает все элементы массива А на -1.

Длина вектора

| v |

|

Возвращает скаляр - корень квадратный из суммы квадратов элементов вектора v.

Детерминант

| A |

|

Возвращает скаляр - детерминант (определитель) квадратной матрицы А.

Степени матрицы

An

^

n -я степень квадратной матрицы А (n - кратное умножение матрицы саму на себя). A-1 - возвращает матрицу, обратную матрице А.

Транспонирование

АT

[Ctrl][1]

Возвращает матрицу, в которой строки заменены столбцами.

Векторное произведение

u x v

[Ctrl][8]

Возвращает векторное произведение для векторов u и v с тремя элементами.

Суммирование элементов

åv

[Ctrl][4]

Суммирует элементы вектора v

Векторизация

®

А

[Ctrl][-]

В выражении с массивом А операции проводятся поэлементно.

Рассмотрим смысл операции векторизации. Например, если v - вектор, то sin(v) недопустимое выражение, но если используется оператор векторизации, то вычисляет синус каждого элемента v:

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

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

Из последнего примера видно, что нумерация строк и столбцов начинается с нуля. Чтобы нумерация строк и столбцов начиналась с единицы следует вначале документа ввести ORIGIN := 1 или командой меню Math / Options в одноименном окне установить опцию Array Orign (ORIGIN) равной единице.

Функции доступа к файлам, содержащим массивы

Функция APPENDPRN(“file”) — добавляет числовые данные в существующий файл. Здесь “file” — имя файла, если он в текущем каталоге, или полное имя файла, если он находится в другом каталоге;

Функция READPRN(“file”) — считывает в массив документа MatCAD числовые данные из файла с указанным именем текущего каталога.

Функция WRITEPRN(“file”) — создает в текущем каталоге файл и записывает в него числовые данные из массива документа MathCAD.

Файлы file при записи файлы автоматически получают расширение .prn. Однако они имеют текстовый формат и могут быть прочитаны и отредактированы в редакторе «Блокнот», если в окне Открытие файла в выпадающем списке Тип файлов установить опцию Все файлы *.*.

Документ, показанный на рис. 3, следует сначала сохранить, в каком-либо каталоге. При открытии файла с документом этот каталог станет текущим и в нем будет создан файл primer.prn. Файл документа и файл primer.prn окажутся в одном каталоге. В файл primer.prn будет записана матрицы AT и добавлена матрица BT. Далее произойдет считывание данных в матрицу К из файла primer.prn, находящегося в текущем каталоге.

Изменения, внесенные в матрицы А и В, будут отображены в матрице К только после выхода из Mathcad с сохранением документа и последующего его открытия.

Рис. 3

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]