Как сделать функцию в маткаде

Добавил пользователь Alex
Обновлено: 04.10.2024

Скалярные операции над векторами и матрицами, если это не оговорено особо, производятся независимо над их каждым элементом, как над скаляром.

Таблица П3.2. Вычислительные операторы

Вычисление n-й производной

Сумма ранжированной переменной

Произведение ранжированной переменной

Таблица ПЗ.З. Встроенные функции по алфавиту

Обратная тригонометрическая или гиперболическая функция *

Функция Эйри первого рода

х,у — координаты точки

Угол между точкой и осью ОХ

file— строковое представление пути к файлу

Дозапись данных в существующий текстовый файл

z — аргумент функции

Аргумент комплексного числа

х,у — координаты точки

Угол, отсчитываемый от оси ОХ до точки (х,у)

А,В,С. — векторы или матрицы

Слияние матриц слева направо

n — порядок х — аргумент

Мнимая и действительная части функции Бесселя —Кельвина

Функция Эйри второго рода

х,у — векторы данных

и — вектор значений сшивок В-сплайнов

n — порядок полиномов

Вектор коэффициентов В-сплайна

Bulstoer (y0, t0, t1, M, D)

Возвращает матрицу с решением задачи Коши для системы ОДУ методом Булирша-Штера

bulstoer (y0, t0, t1, acc, D, k, s)

Возвращает матрицу с решением задачи Коши для системы ОДУ методом Булирша-Штера (для определения только последней точки интервала)

Bvalf it (z1, z2, x0, x1, xf, D, load1, load2, score)

zl,z2 — вектор начальных значений для недостающих левых и правых граничных условий

хО — левая граница xl — правая граница xf — внутренняя точка

D(x,y) — векторная функция, задающая систему ОДУ

Возвращает вектор недостающих граничных условий у краевой задачи для системы N ОДУ с дополнительным условием в промежуточной точке

loadl (xO , z ) , Ioad2 (xl , z ) -векторные функции, задающие левые и правые граничные условия

score (xf , у ) — векторная функция, задающая сшивку решений в xf

Наименьшее целое, не меньшее х

у — вектор данных

Вектор прямого комплексного преобразования Фурье (в разных нормировках)

А — квадратная, определенная матрица

А — матрица или вектор

Объединение строковых переменных

А — квадратная матрица

А — матрица i — индекс столбца

Сортировка строк матрицы по элементам 1-го столбца

CreateMesh (F, s0, s1, t0, t1, sgr, tgr, fmap)

F ( s , t ) — векторная функция из трех элементов

tO.tl — пределы! sO.sl — пределы s

tgr, sgr — число точек сетки по t и s

fmap— функция преобразования координат

Создание вложенного массива, представляющего х-, у- и z -координаты параметрической поверхности, заданной функцией F

Cre-ateSpace(F[, t0, t1, tgr, fmap])

F(t) — векторная функция из трех элементов

to.tl — пределы t

tgr — число точек сетки по t

fmap— функция преобразования координат

Создание вложенного массива, представляющего х-, у- и z -координаты параметрической пространственной кривой, заданной функцией F

Комплексный знак числа

х,у — векторы данных

Вектор коэффициентов кубического сплайна

r,6,z— цилиндрические координаты

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

х— значение случайной величины

par — список параметров распределения *

Плотность вероятности со статистикой распределения *

Диагональная матрица, на диагонали которой находятся элементы вектора

А — квадратная матрица

Собственные значения матрицы

А — квадратная матрица

А. — собственное значение

Собственный вектор матрицы, соответствующий заданному собственному значению

А — квадратная матрица

Собственные векторы матрицы

Обратная функция ошибок

Экспонента в степени z

x,y — векторы данных

g — вектор начальных значений а,Ь,с

у — вектор данных

Вектор прямого преобразования Фурье (в разных нормировках)

а,Ь,с — параметры х — аргумент, -1 0

Функция Бесселя второго рода нулевого, первого и m-го порядка

n — порядок х — аргумент

Сферическая функция Бесселя второго рода

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

Знаете ли Вы, почему "черные дыры" - фикция?
Согласно релятивистской мифологии, "чёрная дыра - это область в пространстве-времени, гравитационное притяжение которой настолько велико, что покинуть её не могут даже объекты, движущиеся со скоростью света (в том числе и кванты самого света). Граница этой области называется горизонтом событий, а её характерный размер - гравитационным радиусом. В простейшем случае сферически симметричной чёрной дыры он равен радиусу Шварцшильда".
На самом деле миф о черных дырах есть порождение мифа о фотоне - пушечном ядре. Этот миф родился еще в античные времена. Математическое развитие он получил в трудах Исаака Ньютона в виде корпускулярной теории света. Корпускуле света приписывалась масса. Из этого следовало, что при высоких ускорениях свободного падения возможен поворот траектории луча света вспять, по параболе, как это происходит с пушечным ядром в гравитационном поле Земли.
Отсюда родились сказки о "радиусе Шварцшильда", "черных дырах Хокинга" и прочих безудержных фантазиях пропагандистов релятивизма.
Впрочем, эти сказки несколько древнее. В 1795 году математик Пьер Симон Лаплас писал:
"Если бы диаметр светящейся звезды с той же плотностью, что и Земля, в 250 раз превосходил бы диаметр Солнца, то вследствие притяжения звезды ни один из испущенных ею лучей не смог бы дойти до нас; следовательно, не исключено, что самые большие из светящихся тел по этой причине являются невидимыми." [цитата по Брагинский В.Б., Полнарёв А. Г. Удивительная гравитация. - М., Наука, 1985]
Однако, как выяснилось в 20-м веке, фотон не обладает массой и не может взаимодействовать с гравитационным полем как весомое вещество. Фотон - это квантованная электромагнитная волна, то есть даже не объект, а процесс. А процессы не могут иметь веса, так как они не являются вещественными объектами. Это всего-лишь движение некоторой среды. (сравните с аналогами: движение воды, движение воздуха, колебания почвы). Подробнее читайте в FAQ по эфирной физике.

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

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

4.1. Спецификации функций

Спецификация функции состоит из ее заголовка и описания назначения – выходного значения или результата работы функции. Для примера можно обратиться к мастеру функций и более внимательно посмотреть на предоставляемые им для его функций описания. На рис. 4.1 открыта страница со спецификацией функции rnorm.



Рис. 4.1. Спецификация функции, предоставляемая мастером функций

При описании назначения функции необходимо сказать, что возвращает функция в качестве своего результата (в описываемой функции rnorm возвращает вектор нормально распределенных случайных значений). При этомобязательно нужно пояснить роль каждого из формальных параметров, перечисленных в заголовке (m – количество значений, mu – среднее значение, sigma – стандартное отклонение). Желательно сказать об ограничениях, т.е. невозможность расчета при … каких-либо условиях.

Для написания программ-функций в системе MathCAD предусмотрена специальная панель программироваия –Programming (Программирование), содержащая все операторы и элементы языка. Общий вид панели Programmingпредставлен на рис. 4.2. Операторы в программу вставляются только с помощью кнопок этой панели.

Назначение основных команд, представленных на панели:


Add Line – добавление новой строки в программу или создание заготовки программы из двух строк, если программы еще не существует;

← – присвоение значения локальной переменной;

if – условный оператор. Позволяет в зависимости от условия выполнять или не выполнять те или иные действия;

otherwise – используется сразу после оператора if и позволяет выполнить определенные действия при невыполнении условия в операторе if ;

for – оператор создания цикла со счетчиком;

while – оператор создания цикла, выполнение которого продолжается до тех пор, пока выполняется указанное условие.

continue – продолжить вычисления в цикле;

break – прервать вычисления в цикле;

return – оператор возврата;

on error – оператор перехода при возникновении ошибки.

Рис.4.2. Вид панели инструментов Programming ( Программирование)

Чтобы написать программу, прежде всего для нее должен быть создан специальный, обособленный от остального документа, программный блок-тело функции. Выглядит он как черная вертикальная линия с маркерами, в которые заносятся те или иные выражения и операторы алгоритма. Чтобы построить единичный элемент программного блока, нажмите кнопку команды Add Line (Добавить линию) панели Programming (Программирование).

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

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

Все программы составляемые в пакете MathCAD с точки зрения любого языуа программирования (например, Turbo Pascal) представляют собой подпрограммы – функции, которые могут возвращать в качестве результата число, вектор или матрицу.

Заметим, что если программа используется для вычисления одного значения, то в своем заголовке она не содержит списка формальных параметров и называется программой-скаляром.

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

Технология создания программы-функции в рабочем документе MathCAD состоит из следующих шагов:

Ввести заголовок функции.

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

Вписать операторы в шаблон-заготовку. Тело программы-функции может включать любое число операторов: локальных операторов присваивания, условных операторов и операторов цикла, а также вызов других программ-функций.

Самое нижнее поле всегда предназначено для определения возвращаемого программой значения.


Пример 1. Требуется подготовить описание функции и вычислить значения этой функции приx = 4.15 и g = 1.854.





Рис.4.3. Пошаговое создание и выполнение программы-функции

В данном примере введена вспомогательная локальная переменная t для вычисления значения функции. И эта переменная расположена в последней строчке программного блока. В пункте (6) приведена операция вычисления функции для фактических значений. На рис. 4.4, b, c приведены другие варианты решения поставленной задачи.




Рис. 4.4. Демонстрация элементов программирования простых выражений


В примере, представленном на рис. 4.4, в первой колонке a для вычисления значения используется базовый набор средств без элементов программирования. Во второйb и третьей c колонках производятся точно такие же вычисления, но с использованием элементов программирования. Обе программы (b и c) можно считать эквивалентными, так как возвращают они одно и то же значение, которое располагается в последней строчке программируемой части. В (bи c) мы имеем дело с программой – скаляром, так как они используются для вычисления одного значения и не имеют формальных параметров.

Внутри программ (b и c) используются глобальные переменные g и x из документа. Значения этих переменных определены заранее. Обе программы из примера, представленного на рис. 4.4, в своей программируемой части содержат операторы присваивания с использованием локальных переменных. Переменные, созданные внутри программы с таким видом присваивания, являются внутренними, и доступ к ним может осуществляться только в самой программе.


Впрограммной части используются глобальные переменные обычнотолько как операнды в выражениях.

Последняя строка программы не должна содержать управляющих операторов. Эта строка задает значение, возвращаемое программой, т.е. получает результат вычислений и может содержать имя локальной переменной результата (рис. 4.4, c) или выражение, вычисляющее результат (рис. 4.4, b).

Обычно программа содержит больше чем две строки, поэтому рекомендуется сразу задавать блок из 5-6 маркеров.

Добавление недостающих полей для ввода дополнительных операторов производится с помощью кнопки Add lineпанели программирования. При этом поле ввода добавляется внизу выделенного к этому моменту оператора.

Для удаления того или иного оператора или поля ввода из тела программы-функции, нужно заключить его выделить и нажать клавишу .

Программный блок можно создать и внутри уже заданного блока (вложенный блок). Для этого следует использовать один из стандартных способов: поставить курсор в маркер соответствующего оператора программирования и выполнить Add line.

Иногда при написании программы бывает нужным добавить строку к уже созданному блоку. Чтобы это сделать, поставьте курсор в ту строку блока, выше или ниже которой должна быть введена строка, и нажмите клавишу . При этом строка будет выделена и можно будет произвести добавление одним из стандартных способов.

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

Чтобы развернуть курсор в нужную сторону, нажмите клавишу .

Чтобы добавить строку к целому блоку, его следует выделить, дважды нажав клавишу .

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

Пример 2. Требуется найти действительные корни квадратного уравнения , гдеa, b, c – любые действительные числа и . Известно, что в зависимости от знака дискриминантадействительные корни уравнения могут быть получены по формуле:


Решение . Опишем вычисление корней в виде программы-функции.


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

Здесь a , b , с – коэффициенты уравнения.

Очевидно, что в данном случае мы имеем дело с ветвящимся процессом.

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


При включении оператора if в блок программирования появляется шаблон с двумя полями ввода – справа и слева от оператора:

 if .

В поле ввода справа от оператора записывается условие. Для ввода условий следует использовать панельBoolean (Логические), где есть кнопки для проверки условий ( = > Рис. 4.6. Демонстрация элементов программирования ветвящихся процессов


Рис. 4.7. Демонстрация элементов программирования ветвящихся процессов

На рис. 4.8 представлены примеры программ-функций, реализующих вычисления, содержащие ветвящиеся процессы.







Рис. 4.8. Примеры программирования функций с проверкой условий. Здесь x – глобальная переменная

Пример 4. Требуется найти максимальный и минимальный элементы в заданном массиве.

Решение. Задача поиска наибольшего/наименьшего значений в заданном массиве относится к типовым циклическим алгоритмам .

Спецификацию для этой функции можно записать следующим образом:

Функция Fun(P) возвращает наибольшее и наименьшее значение в массиве Р.

Для создания циклов в MathCAD предусмотрено два оператора: for и while. Поскольку количество повторений цикла заранее известно и связано с числом элементов заданного массива, в данном решении целесообразно использовать оператор for.


После вставки оператораfor в строку программы его сопровождают три поля ввода, как это показано на рис. 4.9.


Рис. 4.9. Шаблон оператора цикла for

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

В поле ввода после знака € следует указать диапазон значений, которые будет принимать переменная-счетчик. Вместо диапазона в данном поле ввода можно указать имя некоторого массива (вектора или матрицы). В таком случае переменная-счетчик будет последовательно принимать значения всех элементов этого массива. Количество повторов цикла будет равно количеству элементов массива.

В поле ввода под словом for следует ввести тело цикла

Обозначим имя переменной-счетчика, которая используется в операторе for – буквой t. Для описания алгоритма воспользуемся тем, что в операторе цикла для переменной-счетчика можно указать в качестве диапазона имя массива. Как сказано выше, в таком случае переменная t будет последовательно принимать значения всех элементов указанного вfor массива (в нашем случае – это массив Р). Для обозначения максимального и минимального значений в программу введем две вспомогательные переменные Pmax и PMin. Тогда описание функции может быть представлено в виде, как это показано на рис. 4.10.

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

Справа от программы-функции, представленной на рис. 4.10, написаны операторы, предназначенные для создания вектора с именем U из шести элементов. Для этого введена вспомогательная переменная i, задающая диапазон изменения индекса массива, а значения элементов массива U формируются с помощью функции rnd – датчика случайных чисел. Параметр 20 в ней определяет диапазон принимаемых значений.

На рис. 4.11, a представлен второй вариант программы-функции, в котором в качестве диапазона значений для переменной-счетчика цикла for берется диапазон изменения индекса массива. Поэтому в список формальных параметров в заголовок функции вносится еще один параметр n, который указывает верхнюю границу изменения индекса.

Описание подпрограммы-функции ( П-Ф ) и локальный оператор присваивания

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


Рис. 1. Палитра ПРОГРАММИРОВАНИЕ

В качестве формальных параметров могут использоваться имена простых переменных, массивов и функций. Формальные параметры отделяются друг от друга запятой.

Замечание 1. П-Ф может не иметь формальных параметров, и тогда данные передаются через имена переменных, определенных выше описания П-Ф.

Тело подпрограммы-функции включает любое число операторов: локальных операторов присваивания, условных операторов и операторов цикла, а также вызов других П-Ф и функций пользователя.

Порядок описания подпрограммы-функции Math cad .

Для ввода в рабочий документ описания П-Ф необходимо выполнить следующие действия:

· ввести имя П-Ф и список формальных параметров, заключенный в круглые скобки

· ввести символ “:” – на экране отображается как “: =”;

· открыть палитру Программирования и щелкнуть кнопкой Add line (см. рис. 1). На экране появится вертикальная черта и вертикальный столбец с двумя полями для ввода операторов, образующих тело П-Ф (см. рис. 2);


Рис. 2. Структура подпрограммы-функции

· перейти в поле 1 (щелкнув на нем мышью или нажав клавишу [Tab]) и ввести первый оператор тела П-Ф.

· затем ввести второй, третий и т.д. операторы, добавляя пустые поля с помощью щелчка на кнопке Add line палитры программирование .

· заполнить самое нижнее поле ввода, введя туда выражение, определяющее возвращаемое через имя П-Ф (см. рис. 3).


Рис. 3. Окончательная структура подпрограммы-функции

Замечание 2. Если результатом работы П-Ф являются несколько величин, то из них в теле П-Ф необходимо сформировать массив и его имя поместить в последней строке тела П-Ф.

Локальный оператор присваивания

Для задания внутри программы значения какой-либо переменной используется так называемый локальный оператор присваивания, имеющий вид:

Обращение к подпрограмме-функции Math cad

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

Фактические параметры отделяются друг от друга запятой.

· Очевидно, что между фактическими и формальными параметрами должно быть соответствие по количеству, порядку следования и типу.

Замечание 3. Обращение к П-Ф должно находиться после ее описания, и к моменту обращения фактические параметры должны быть определены.

Пример 4. Обращение к программе f ( x ), приведенной на рис. 4.1.4, может иметь следующий вид:

Замечание 4. Передать данные внутрь П-Ф можно, используя внутри подпрограммы переменные, определенные до описания П-Ф (см. пример на рис. 4.2.1).


Рис. 4. Подпрограмма-функция без формальных параметров

Программирование линейных алгоритмов в подпрограмме-функции

Операторы, реализующие этот алгоритм, в теле П-Ф также размещаются последовательно и выполняются все, начиная с первого и заканчивая последним .

Пример 6 . Оформим в виде П-Ф вычисление корней квадратного уравнения ax 2 + bx +c = 0 по формуле

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

Пример программирования линейного алгоритма

Программирование разветвляющихся алгоритмов в подпрограмме-функции

Для программирования разветвляющихся алгоритмов в подпрограмме-функции Math cad можно использовать:

§ условную функции

§ условный оператор if .

Условный оператор. Этот оператор используется только в теле П-Ф и для его ввода необходимо щелкнуть на кнопке if палитры программирование . На экране появляется конструкция с двумя полями ввода, изображенная на рисунке .


Структура условного оператора if

В поле 2 вводится логическое выражение УСЛ (в простейшем случае это выражение отношений). В поле 1 вводится конструкция ВЫР1, которая выполняется, если проверяемое логическое выражение принимает значение 1. Если УСЛ = 0, то ВЫР1 не выполняется. Это соответствует условной структуре, называемой ЕСЛИ – ТО .

Для получения условной структуры ЕСЛИ – ТО – ИНАЧЕ используется оператор otherwise , вводимый с палитры ПРОГРАММИРОВАНИЕ, в поле которого размещается конструкция ВЫР2, которая выполняется, если проверяемое логическое выражение принимает значение 0 (см. рисунок). Оператор otherwise непосредственно следует после условного оператора if .


Реализация структуры ЕСЛИ – ТО – ИНАЧЕ

Для ввода ВЫР2 в поле оператора otherwise необходимо:

· выделить поле, стоящее после оператора if ;

· щелкнуть на кнопке otherwise палитры программированиЕ ;

· в появившееся поле оператора otherwise ввести необходимую конструкцию ВЫР2.

Пример 6. Составим описание П-Ф, вычисляющей функцию y(x), заданную выражением

Описание и вызов П-Ф приведены на рисунке

Реализация разветвляющегося алгоритма

Пример 7. Составим описание П-Ф для вычисления переменной z ( t ) по формуле

Описание П-Ф и ее вызов приведены на рисунке

Реализация разветвляющегося алгоритма

Из описания видно, что функция z (t) получит значение ln(t) только тогда, когда не выполняются условия, записанные в двух вышестоящих строках тела П-Ф.

Внимание! Если в строке 3 ввести просто ln ( t ), то это выражение будет вычисляться всегда вне зависимости от выполнения заданных выше условных операторов.

Задание 2 . Составьте описания П-Ф, реализующих следующие разветвляющиеся алгоритмы:

Вариант 1. При выполнении заданного условия УСЛ необходимо выполнить несколько конструкций MathCAD .


Вариант 2. При невыполнении заданного условия УСЛ необходимо выполнить несколько конструкций MathCAD .

В этом случае необходимо выделить поле оператора otherwise , щелкнуть на кнопке Add line палитры ПРОГРАММИРОВАНИЕ нужное число раз и заполнить появившиеся поля.


Пример 8. Составьте описание П-Ф, вычисляющей значения двух полиномов x ( t ), y ( t ) нулевой или первой степени. Порядок полиномов задается переменной n . Если n или n > 1, то значения полиномов равны 0. Описание П-Ф приведено на рисунке.

Реализация алгоритма примера

Пример 9. Даны два числа x , y . Составить описание П-Ф, которая переменной x присваивает максимальное значение из этих двух чисел, а y – минимальное. Описание приведено на рисунке.

Реализация разветвляющегося алгоритма

Вызов подпрограммы-функции arrangement

Задание 3. Даны три числа a , b , c . Составить П-Ф, реализующую следующий алгоритм. Если , то все числа заменить их квадратами, если , то каждое число заменить максимальным значением из этих трех чисел, в противном случае — сменить знаки у чисел.

Задание 4. Координаты точки на плоскости задаются двумя числами x , y . Составить П-Ф, вычисляющую номер четверти на плоскости, в которую попала точка.

Задание 5 . Длина сторон треугольника задается числами a , b , c . Составить П-Ф, вычисляющую значение целой переменной n по следующему правилу: n = 3, если три стороны равны; n = 2, если любые две стороны равны; n = 1, если все три стороны имеют разную длину.

Программирование циклических алгоритмов в подпрограмме-функции

Циклы можно условно разделить на две группы:

· циклы типа арифметической прогрессии;

· итерационные циклы.

Программирование цикла типа арифметической прогрессии

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

· щелкнуть на кнопке for палитры ПрограммированиЕ . На экране появятся поля ввода, изображенные на рисунке


Поля оператора цикла for

· в поле ввода 1 ввести имя переменной, являющейся параметром цикла;

· в поле 2 — закон изменения параметра цикла, используя для этого описание дискретной переменной или описание массива ;

· в поле 3 — операторы, составляющие тело цикла. Если одной строки недостаточно, то дополнительные поля ввода (дополнительные строки) создаются щелчком на кнопке Add line палитры программированиЕ, и тогда слева от тела цикла появляется вертикальная черта, охватывающая тело цикла.

Пример 9. Составить описание П-Ф, реализующей алгоритм формирование вектора.

Заметим, что значение системной переменной ORIGIN (начальное значение индексного выражения) задается равным 1.

Подпрограмма-функция формирования вектора

Пример 9. Для x меняющегося от -2 до 2 с шагом 0.5 вычислить значение f(x) = e -x. Cos (2 x ) и сформировать из этих значений вектор y, т.е. y1 = f(-2), y2 = f(-1.5) и т.д.

В этом примере количество повторений тела цикла определяется по формуле

где xk, x0 – конечное и начальное значения параметра цикла, d – шаг его изменения. Подставив значения, получаем (2 –(–2)) /0.5+1=9.

Следовательно, сформированный вектор y будет содержать 9 элементов.

Описание П-Ф и ее вызов приведены на рисунке. Видно, что в теле цикла выполняется два оператора. Первый оператор формирует элемент массива y , а второй изменяет на 1 значение индекса. ¨

Формирование вектора примера 9

Пример 10. Составить описание П-Ф, где значения параметра цикла задаются вектором.

На рисунке приведено описание такой П-Ф.


Задание 5. Составьте описание П-Ф формирования вектора y примера 9, приняв в качестве параметра цикла переменную i .

Программирование итерационных циклов

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

· щелкнуть на кнопке while палитры ПрограммированиЕ . На экране появляются элементы, показанные на рисунке


Структура оператора цикла while

· в поле 1 ввести условие выполнения цикла;

· в поле 2 ввести операторы тела цикла. В теле цикла должны присутствовать операторы, которые могут изменить значение условия цикла, иначе цикл будет продолжаться бесконечно.

Оператор цикла while выполняется следующим образом : обнаружив оператор while, Math cad проверяет указанное в операторе условие. Если оно равно 1 (т.е. выполняется), то выполняется тело цикла, и снова проверяется условие. Если условие принимает значение 0, то цикл заканчивается.

Пример 11 . Составим П-Ф, реализующую итерационную процедуру приближенного вычисления корня квадратного , используя итерационную процедуру:

В качестве приближенного значения принимается , удовлетворяющее условию:

где – заданная точность вычисления корня квадратного.

Поэтому в Math cad имеется специальный оператор break , который позволяет выйти из цикла или приостановить исполнение программы при выполнении заданного в операторе break условия.


Пример 12.2 Составить П-Ф, осуществляющую суммирование ряда с бесконечным числом слагаемых. Накопление суммы прекращается, как только очередное слагаемое по абсолютной величине становится меньше заданной погрешности .

Описание П-Ф и ее вызов показаны на рисунке. Заметим, что вторым формальным параметром является имя функции пользователя, определяющей зависимость величины члена ряда от его номера. При вызове этот формальный параметр заменяется фактическим – именем функции пользователя, описанной до обращения к П-Ф.


Вызовы подпрограммы-функции

Программирование двойных циклов

Варианты вложений операторов цикла

Составить описание П-Ф формирующей матрицу по следующему правилу:

Описание и вызов П-Ф приведены на рисунке. В этой П-Ф параметром внешнего цикла является переменная i , а параметром внутреннего — переменная j .


Реализация двойного цикла

Дополнительные операторы, используемые при программировании циклов

Оператор continue . Обычно используется для продолжения выполнения цикла путем возврата в начало тела цикла. Следующий пример поясняет работу этого оператора.

Пример 12.3 Составить описание П-Ф, формирующей новый вектор из положительных проекций исходного вектора.

Описание приведено на рисунке


Оператор return . Прерывает выполнение П-Ф и возвращает значение операнда, стоящего в поле 1 (см. рисунок).


Структура оператора return



Вариант B

Оператор on error . Этот оператор является обработчиком возникающих при выполнении тех или иных вычислений ошибок и записывается в виде:

конструкция 1 > on error .

Оператор выполняется следующим образом. Если при выполнении конструкция 2 > возникает ошибка, то выполняется 1>. Если ошибка не возникает, то выполняется 2>.


Имя функции вводится с клавиатуры . Функция используется в левом поле условного оператора if , как показано в следующем примере.

Конструирование выражений в MathCAD осуществляется с помощью математических панелей. Ввод заканчивается клавишей Enter или щелчком мыши вне определения. Синий уголок показывает текущий операнд выражения, он может быть расширен клавишей " Пробел ". В качестве разделителя целой и дробной части числа используется точка.

Арифметические операции , простейшие функции, знаки присваивания переменным (символ :=) можно вводить, используя панель Calculator (Калькулятор). Численные ответы выражений определяются нажатием клавиши [=] на клавиатуре. В качестве элементов выражения могут использоваться функции определенных интегралов, сумм и произведений с панели Calculus.

Для ввода математической функции различной категории используется команда Insert /Function (Вставить функцию).

Для ввода текстового комментария необходимо ввести знак двойной кавычки ", затем вводить текст. Текстовая область, как и любая другая, может быть перемещена на рабочем листе или скопирована в буфер . Маркеры текстовой области позволяют менять её размеры

1.4.1. Переменные и функции.

Переменная в MathCAD – это идентификатор, который используется в выражениях и которому можно присвоить числовое значение. Идентификатор – набор букв и цифр, первым из которых должна быть буква; буквы могут быть латинскими или греческими с соответствующей панели; малые и большие буквы различаются; в качестве цифры может использоваться символ подчеркивания. При выполнении цепочки выражений последовательность вычислений в документе определяется слева - направо и сверху - вниз. Чтобы цепочка выражений была вычислена, надо всем переменным присвоить числовые значения. Присваивания бывают двух видов: локальные и глобальные. Локальное присваивание осуществляется нажатием символа := на панели Калькулятор. Присвоенное значение в документе начинает действовать с момента его записи (слева-напрво и сверху-вниз).

Глобальное присваивание действует в пределах всего документа независимо от места его определения. Глобальное присваивание определяется символом === с панели Evaluation. Ниже (Рис.1.10) приведен пример цепочки выражений с использованием локального (для х) и глобального (для а) присваивания:

a\equiv3

, " />
,

, +e^x" />

, ,

Встроенные константы

Символьный процессор распознает и способен выдавать математические константы в качестве результата.

Вычислительный процессор воспринимает как числа

\infty

-бесконечность ( клавиши + + );

е

- основание натурального логарифма (клавиша );

\pi

; - число "пи" (вводится клавишами + +

j

- мнимая единица (вводится клавишами , или , );

\%

- символ процента, , эквивалентный 0,01.

Основные типы переменных
Действительные числа

Любое выражение, начинающееся с цифры, MathCAD интерпретирует как число. Числа набираются на клавиатуры в нужном формате (Рис.1.11). Форматы представлены в окне Format/Result (Рис.1.7.).

a\equiv1000

b:=1.3474

c:=3124.1

d:=45.21\cdot10^<-5></p>
<p>

Комплексные числа

Комплексное число является суммой действительного и мнимого числа, получающегося путем умножения любого действительного числа на мнимую единицу (imaginary unit) i. По определению полагается, i2=-1. Для ввода мнимой единицы надо нажать клавиши , (Рис.1.12). Если просто ввести символ "i", то MathCAD интерпретирует его как переменную i.

t:=1i+1

t^2\equiv2i

2t=2+2i

Размерные значения

В MathCAD числовые переменные и функции могут обладать размерностью. Используется команда Insert / Unit (Вставка / Единицы). "Горячая" клавиша + . В программе встроено большое количество единиц измерения, с помощью которых и создаются размерные переменные. Для ввода размерного значения - сразу после ввода переменной ввести символ умножения, в окне Insert / Unit списке Unit (Единицы) выбрать нужную единицу измерения

Pедактирование формул

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



  1. Набираемая формула всегда заключена в рамку. Не выходите из рамки, пока не закончили набор формулы!
  2. Для набора формул пользуйтесь "Калькулятором" из "Математической палитры"


При наборе формул возможно появление ошибок набора. Кнопка на стандартной панели инструментов позволяет отменить последнее действие, выполненное при редактировании, т.е. вернуться к тексту, набранному ранее.

Встроенные функции MathCAD

Стандартные математические функции и численные методы, запрограммированные в MathCAD, реализованы в виде встроенных функций. Для вставки функции команда меню Insert /Function (Вставить функцию)(Рис.1.17).

 Окно стандартных функций

Собственные функции пользователя

Помимо широкого набора стандартных функций в MathCAD возможно определение собственных функций пользователя (Рис.1.14). В простейшем случае функция может быть определена выражением пользователя. Функция определяется следующим образом:

где имя_функции – любой идентификатор; аргументы – список аргументов функции через запятую; выражение – любое выражение с использованием стандартных функций и функций пользователя, определенных в документе перед этим. Выражение должно содержать идентификаторы аргументов. Пример цепочки выражений с использованием функций пользователя приведен ниже:

y:=x+\cos<x></p>
<p>

f(x,y):=x^2+y^2

s(x,y):=x+y+f(x,y)

z(x,y):=s(x,y)+x

x:=2

z(x,y):=12.092

1.4.2. Массивы

Массивами (arrays) называют упорядоченные последовательности чисел или элементов. Доступ к любому элементу массива возможен по его индексу, т. е. номеру в последовательности чисел В MathCAD условно выделяются два типа массивов: векторы (одноиндексные массивы), матрицы (двухиндексные массивы), и тензоры (многоиндексные массивы); ранжированные переменные (range variables) - векторы, элементы которых определенным образом зависят от их индекса.

Векторы и матрицы

Матрицей размером mxn называется совокупность m•n чисел, расположенных в виде прямоугольной таблицы из m строк и n столбцов. Эту таблицу обычно заключают в круглые скобки. Для краткости матрицу можно обозначать одной заглавной буквой, например, А или В.

В общем виде матрицу размером m x n записывают так

\mathbf= \left( \begin</p>
<p> a_ & a_ & \ldots & a_ \\ a_ & a_ & \ldots & a_\\ \ldots & \ldots & \ldots & \ldots \\ a_ & a_ & \ldots & a_\\ \end \right)

Числа, составляющие матрицу, называются элементами матрицы. Элементы матрицы имеют два индекса aij: первый указывает номер строки, а второй – номер столбца. Например, a23 – элемент стоит во 2-ой строке, 3-м столбце. Если в матрице число строк равно числу столбцов, то матрица называется квадратной, причём число ее строк или столбцов называется порядком матрицы. Матрица, в которой число строк не равно числу столбцов, называется прямоугольной. Матрицу с одним столбцом называют вектор-столбец, с одной строкой - вектор-строка.

Сложение матриц производится поэлементно, но размеры матриц должны совпадать Умножение матриц. осуществляется по своеобразному закону. Прежде всего, размеры матриц–сомножителей должны быть согласованы. Перемножать можно только те матрицы, у которых число столбцов первой матрицы совпадает с числом строк второй матрицы (т.е. длина строки первой равна высоте столбца второй). Произведением матрицы A не матрицу B называется новая матрица C=AB, элементы которой составляются следующим образом:

 \left( \begin</p>
<p> a_ & a_ \\ a_ & a_ \\ \end \right) \left( \begin b_ & b_ & b_ \\ b_ & b_ & b_ \\ \end \right) = \left( \begin a_b_+a_b_ & a_b_+a_b_ & a_b_+a_b_ \\ a_b_+a_b_ & a_b_+a_b_ & a_b_+a_b_ \\ \end \right)

Например, в произведении - матрице C, элемент стоящий в 1-ой строке и 1-м столбце c11, равен сумме произведений элементов 1-ой строки матрицы A и 1 столбца матрицы B,


Создаются матрицы при помощи кнопки палитры инструментов Matrix или команды Insert/Matrix (Рис.1.18, Рис.1.19, Рис.1.20). Появляется окно Insert matrix, где указывается количество строк, столбцов Rows и Columns.

Читайте также: