- •Среднее профессиональное образование Методическое пособие по MathCad по учебной дисциплине «Математические пакеты программ»
- •Воронеж 2013
- •Пояснительная записка
- •1 Основы работы в среде MathCad
- •1.1 Запуск и выход из программы
- •1.2 Экран дисплея при работе в среде Mathcad
- •1 Строка меню Панель форматирования.2.1 Строка заголовка окна
- •1.2.2 Строка меню программы
- •1.2.3 Панель инструментов Стандартная
- •1.2.4 Панель инструментов Форматирование
- •1.2.5 Панель инструментов Математика
- •1.2.6 Панель инструментов Калькулятор
- •1.2.7 Строка состояния
- •1.3 Сохранение документа и завершение работы с программой
- •2 Вычисление математических выражений
- •2.1 Упражнения к теме 2
- •3 Решение уравнений
- •3.1 Упражнения к теме 3
- •4 Дифференцирование
- •4.1 Упражнения к теме 4
- •5 Интегрирование
- •5.1 Упражнения к теме 5
- •6 Системы уравнений и неравенства
- •6.1 Упражнения к теме 6
- •7 Работа с матрицами
- •7.1 Векторные и матричные операции
- •7.2 Функции, возвращающие специальные характеристики матриц
- •7.3 Упражнения к теме 7
- •8 Построение графиков функций
- •8.1 Построение двумерного графика функции
- •8.2 Упражнения к теме 8.1
- •8.3 Построение графиков поверхностей
- •8.4 Упражнения к теме 8.3
- •8.5 Построение параметрически заданных поверхностей
- •8.5.1 Построение сферы
- •8.5.2 Построение трехмерных фигур с вырезом
- •8.6 Построение поверхностей, полученных вращением кривых вокруг осей
- •8.7 Упражнения к теме 8.5 – 8.6
- •9 Анимация
- •9.1 Упражнения к теме 9
- •10 Математическое моделирование
- •10.1 Основные понятия моделирования
- •10.1.1 Назначение и цели моделирования
- •10.1.2 Основные виды моделей и их свойства
- •10.1.3 Основные принципы моделирования
- •10.1.4 Технология моделирования
- •10.2 Примеры моделирования
- •10.2.1 Имитация Броуновского движения частиц в плоскости
- •10.2.2 Имитация Броуновского движения частиц в пространстве
- •11 Программирование
- •11.1. Задание операторов пользователя
- •11.2 Задание программных модулей
- •11.2.1 Инструкция Add Line
- •Список литературы
- •MathCad
10.2.2 Имитация Броуновского движения частиц в пространстве
При моделировании броуновского движения частиц к пространстве приходится учитывать, что наличие молекул приводит к существованию различных допустимых направлений движения частиц. В представленном примере это учтено заданием матрицы Step возможных шагов.
Каждый новый пуск данного документа порождает новую картину диффузии.
11 Программирование
Когда системе недостает средств, желательных для решения тех или иных специфических задач, то необходимо заняться программированием.
11.1. Задание операторов пользователя
Оператор пользователя задается практически так же, как функция пользователя, но вместо имени выбирается какой-либо подходящий знак. Например, можно задать оператор деления в виде:
После этого новым оператором можно пользоваться:
—пример применения новой функции деления;
—пример применения нового оператора деления.
Встроенные в систему операторы нельзя переопределять, поэтому набор доступных знаков для обозначения новых операторов ограничен. К примеру, нельзя задать новый оператор деления знаком / (он уже использован), но можно взять знак , поскольку этот символ как знак деления системой не используется.
После того как оператор задан, его можно использовать и как функцию, и как оператор.
11.2 Задание программных модулей
Набор инструкций для создания программных модулей содержит следующие элементы:
Add Line — создает и при необходимости удлиняет жирную вертикальную линию, справа от которой в местах ввода производится запись программного блока;
← — символ локального (в теле модуля) присваивания;
if — условная инструкция;
otherwise — инструкция иного выбора (обычно применяется с if);
for — инструкция задания цикла с фиксированным числом повторений;
while — инструкция задания цикла, действующего до тех пор, пока выполняется некоторое условие;
break — инструкция прерывания;
continue — инструкция продолжения;
return — инструкция возврата;
on error — инструкция обработки ошибок.
11.2.1 Инструкция Add Line
Инструкция Add Line выполняет функции расширения программного блока. Расширение фиксируется удлинением вертикальной черты программных блоков или их древовидным расширением. Благодаря этому можно создавать сколь угодно большие программы.
11.2.2 Оператор внутреннего присваивания
Оператор ← выполняет функции внутреннего (локального) присваивания, например, выражение x ← 123 присваивает переменной х значение 123. Локальный характер присваивания означает, что такое значение переменной х хранится только в теле программного модуля. За пределами тела программы значение переменной х может быть неопределенным либо равным значению, которое задается вне программного блока операторами локального (:=) или глобального (≡) присваивания.
11.2.3 Условная инструкция if
Инструкция if позволяет строить условные выражения. Она задается в виде:
Выражение if Условие
Если условие выполняется, то возвращается значение Выражения. Совместно с этой инструкцией часто используются инструкции прерывания break и иного выбора otherwise.
11.2.4 Инструкция for
Инструкция for служит для организации циклов с заданным числом повторений. Она записывается в виде:
For Var € Nmin .. Nmax
Эта запись означает, что выражение, помещенное в расположенное ниже место ввода, будет выполняться для значений переменной Var, меняющихся от Nmin до Nmax с шагом +1. переменную счетчика Var можно использовать в исполняемом выражении.
11.2.5 Инструкция while
Инструкция while служит для организации циклов, действующих до тех пор, пока выполняется некоторое условие. Она записывается в виде:
While Условие
Выполняемое выражение записывается в расположенное ниже место ввода.
11.2.6 Инструкция otherwise
Инструкция иного выбора otherwise обычно используется совместно с инструкцией if. Это поясняет следующая программная конструкция:
Т.е. функция f(x) возвращает 1, если x>Θ, и -1 во всех остальных случаях.
11.2.7 Инструкция break
Инструкция break вызывает прерывание выполнения программы. Чаще всего эта инструкция используется совместно с условной инструкцией if и инструкциями циклов while и for, обеспечивая переход в конец тела цикла.
11.2.8 Инструкция continue
Инструкция continue используется для продолжения работы после прерывания программы. Она также чаще всего используется совместно с инструкциями циклов while и for, обеспечивая возвращение в точку прерывания и продолжение вычислений.
11.2.9 Инструкция return
Особая инструкция return прерывает выполнение программы и возвращает значение операнда, стоящего следом за ней. Например, в приведенном ниже случае будет возвращаться значение 0 при х<Θ:
Return Θ if x<0
11.2.10 Инструкция on error и функция error
Инструкция on error позволяет создавать процедуры обработки ошибок. Эта инструкция задается в виде:
Выражение_1 on error Выражение_2
Если при выполнении Выражения_1 возникает ошибка, то выполняется Выражение_2.
Для обработки ошибок полезна также функция error(S), которая, будучи помещенной в программный модуль, при возникновении ошибки выводит всплывающую подсказку с сообщением, хранящимся в символьной переменной S.
11.3 Упражнения к теме 11
Напишите программный код вычисления функции вида:
Напишите программный код вычисления функции вида:
Напишите программный код вычисления функции вида:
Напишите программный код для вычисления суммы последовательности целых чисел от 1 до N.
Напишите программный код для вычисления произведения последовательности целых чисел от 1 до N.
Напишите программный код для вычисления функции:
Напишите программный код для вычисления суммы последовательности целых чисел до тех пор, пока сумма не превысит 30.
Напишите программный код для нахождения корней квадратного уравнения.
Пример выполнения упражнения 1. Вызовем панель инструментов Программирование с помощью команды меню: Вид – Панели инструментов – Программирование. Введем имя функции, щелкнем по символу присваивания «:=» на панели инструментов Калькулятор. Щелкнем по функции Add Line на панели инструментов Программирование, в результате добавится вертикальная черта, которая обозначает блок программирования. В месте введения данных, помеченном верхней меткой, установим курсор и добавим функцию if с панели инструментов Программирование. В места меток справа и слева введем необходимую информацию. Щелкнем курсором по нижней метке ввода, напишем х и добавим функцию otherwise с панели инструментов Программирование. Далее введем значения для проверки, получим:
Пример выполнения упражнения 4. Вызовем панель инструментов Программирование с помощью команды меню: Вид — Панели инструментов — Программирование. Введем имя функции, щелкнем по символу присваивания «:=» на панели инструментов Калькулятор. Щелкнем по функции Add Line на панели инструментов Программирование, в результате добавится вертикальная черта, которая обозначает блок программирования.
В месте введения данных, помеченном верхней меткой, установим курсор и введем начальное значение для суммы s = 0. Щелкнем курсором по второй метке ввода и добавим функцию for с панели инструментов Программирование. В местах ввода добавим имя переменной цикла и диапазон изменения переменной цикла. Перейдем на нижнюю метку ввода и запишем функцию s = s + i. Попробуем воспользоваться записанной программой, получим:
Пример выполнения упражнения 7.
Вызовем панель инструментов Программирование с помощью команды меню: Вид — Панели инструментов — Программирование. Введем имя функции, щелкнем по символу присваивания «:=» на панели инструментов Калькулятор. Щелкнем по функции Add Line на панели инструментов Программирование, в результате добавится вертикальная черта, которая обозначает блок программирования. В месте введения данных, помеченном верхней меткой, установим курсор и введем начальное значение для суммы s = 0. Щелкнем курсором по второй метке ввода опять щелкнем по функции Add Line. Вертикальная линия удлинится. Щелкнем курсором по второй метке ввода и добавим x = n1 (нижняя граница, от которой начинается суммирование). Для проверки условия используем оператор while. Щелкнем по третьей метке ввода и щелкнем по оператору while на панели инструментов Программирование. После оператора while добавим условия s <= 30 and x <= n2 (верхняя граница, до которой осуществляется суммирование).
Щелкнем по метке ввода ниже и снова щелкнем по функции Add Line на панели инструментов Программирование, в результате добавится вертикальная черта. Щелкнем по верхней метке ввода и запишем функцию s = s + x. Щелкнем по нижней метке ввода и запишем функцию x = x + 1. Выделим весь блок while и щелкнем по функции Add Line на панели инструментов Программирование, в результате первая вертикальная черта удлинится. Установим курсор на метку ввода и напишем s, что означает: результатом выполнения программного кода является значение переменной s.
Пример выполнения упражнения 8. Вызовем панель инструментов Программирование с помощью команды меню: Вид — Панели инструментов — Программирование. Введем имя функции, аргументами функции являются значения а, b и с квадратного уравнения вида ах2 + bх + с = 0, переменная, хранящая 1, для нахождения 1 корня уравнения или -1 для нахождения 2 корня уравнения. Щелкнем по символу присваивания «:=» на панели инструментов Калькулятор. Щелкнем по функции Add Line на панели инструментов Программирование, в результате добавится вертикальная черта, которая обозначает блок программирования. В месте введения данных присвоим переменной d1 выражение, с помощью которого можно рассчитать дискриминант уравнения, щелкнем по второй метке ввода и присвоим переменной d2 значение знаменателя формулы для расчета корней уравнения. Установим курсор в виде большого правого угла и щелкнем по функции Add Line на панели инструментов Программирование, в результате вертикальная черта удлинится. Установим курсор на метке ввода и присвоим переменной d3 значение числителя формулы для расчета корней уравнения, при этом учтем переменную, отвечающую за номер рассчитываемого корня. Опять установим курсор в виде большого правого угла и щелкнем по функции Add Line на панели инструментов Программирование, в результате вертикальная черта удлинится. Установим курсор на метке ввода и запишем формулу для расчета итогового значения корня уравнения.