Особенности применения программного пакета MathCAD

Основные элементы системы MathCAD, обзор ее возможностей. Интерфейс системы, концепция построения документа. Типы данных, входной язык системы. Классификация стандартных функций. Графические возможности системы MathCAD. Решение уравнений системы.

Рубрика Программирование, компьютеры и кибернетика
Вид курс лекций
Язык русский
Дата добавления 01.03.2015
Размер файла 2,1 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

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

Решение дифференциальных уравнений и систем

Основные функции

Для решения дифференциальных однородных дифференциальных уравнений (ОДУ) - с начальными условиями пакет Mathcad имеет ряд встроенных функций:

rkfixed - функция решения ОДУ и систем ОДУ методом Рунге-Кутта четвертого порядка с постоянным шагом;

Rkadapt - функция решения ОДУ и систем ОДУ методом Рунге-Кутта с переменным шагом;

Bulstoer - функция решения ОДУ и систем ОДУ методом - метод Булирша-Штёра если заранее известно, что решением является гладкая функция.

Рассмотрим подробнее каждую из этих функций:

rkfixed (y, x1, x2, p, D) - возвращает матрицу первый столбец которой содержит точки, в которых получено решение, а остальные столбцы - решения, первые n-1 производные. Функция возвращает матрицу, состоящую из 1+n строк. Аргументы функции: y - вектор начальных условий (k элементов); x1 и x2 - границы интервала, на котором ищется решение ОДУ; p - число точек внутри интервала (x1, x2), в которых ищется решение; D - вектор, состоящий из k элементов, который содержит первые производные искомой функции.

Rkadapt (y, x1, x2, p, D) - назначение параметров то же, что и для функции rkfixed. Существует несколько модифицированная функция rkadapt (y,x1,x2, acc,p,D,k,s) - где добавлены параметры k - максимальное число промежуточных точек решения; s - минимально допустимый интервал между точками; acc - погрешность решения (рекомендуется порядка 0.001).

Bulstoer (y, x1, x2, p, D) - назначение параметров то же, что и для функции rkfixed.

Рекомендации по использованию

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

Примеры решения дифференциальных уравнений

1. Решим ОДУ .

1.1. Задаем вектор начальных условий:

1.2. Задаем вектор - функцию первой производной неизвестной функции:

1.3. Для решения воспользуемся функцией rkfixed:

2. Решим дифференциальное уравнение второго порядка:

.

Преобразуем уравнение в систему ОДУ первого порядка, решенных относительно первой производной:

3. Решим систему линейных уравнений первого порядка:

.

4. Решим систему двух линейных уравнений второго порядка:

с начальными условиями .

5. Программирование в пакете Mathcad

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

Порядок описания программы-функции Mathcad:

1. ввести имя программы-функции и список формальных параметров.

имя_программы (формальные параметры: =);

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

3. в поле 1 (щелкнув на нем мышью или нажав клавишу [Tab]) ввести первый оператор тела программы-функции. Для вставки дополнительных полей ввода нажать на кнопке Add line;

4. в последнем поле (поле 2), определить возвращаемое через имя программы-функции значение (см. рис.).

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

В качестве примера определим функцию перевода из радиан в градусы:

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

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

Основные программные операторы

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

Название

Описание

Add Line

Создание и расширение программного модуля;

Внутреннее локальное присваивание.

if

Оператор условного выражения. Общий вид: выражение if условие. В случаи выполнения условия возвращается значение выражения. Совместно с этим оператором часто используются break и otherwise.

for

Циклов с заданным числом повторений. Общий вид: for Var Nmin. Nmax. Цикл можно задать диапазоном, множеством, вектором, возможна их комбинация. Переменную цикла Var можно использовать в программе.

while

Цикл с предусловием, действующий пока условие истинно. Общий вид: while условие. Тело цикла записывается на месте шаблона.

otherwise

Оператор "иначе", обычно используется совместно с if для выполнения действий в случаи не выполнения условия.

break

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

continue

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

return

Прерывает выполнение программы и возвращает значение своего операнда.

on error

Оператор обработки ошибок. Общий вид: выражение1 on error выражение2. Если при выполнении выражения1 возникла ошибка, то выполняется выражение2. Для обработки ошибок полезна функция error (S), которая выдает текстовое сообщение (S) и прерывает работу программного блока.

Логические операции и выражения отношений

Логическим выражением называется конструкция, составленная из выражений отношений, знаков логических операций и круглых скобок. Значение логического выражения вычисляется слева направо с учетом приоритетов операций. Список приоритетов (по их убыванию):

1. круглые скобки;

2. логическая операция И;

3. логическая операция ИЛИ.

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

Допустимые знаки отношений представлены в таблице:

Знак отношения

Вводимые символы

=

Ctrl + =

<

<

>

>

Ctrl + 0

Ctrl + 9

Ctrl + 3

Логические операции ставятся между выражениями отношений. Определены две логические операции - логическое ИЛИ (+) и логическое И ()

Примеры программных модулей

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

Примеры цикла for.

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

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

Составим программу-функцию для зануления нечетных элементов вектора.

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

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

7) Составим программу-функцию для определения произведения элементов массива.

6. Апроксимация функций

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

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

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

Наиболее часто встречающим видом точечной аппроксимации является интерполяция (в широком смысле).

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

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

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

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

Регрессия функций

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

Линейная регрессия

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

.

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

В общем виде аппроксимирующею функцию можно представить как . Задачей линейной регрессии является вычисление параметров a и b. Для этого в MathCad существует ряд встроенных функций (где VX, VY - вектора узловых точек):

corr (VX, VY) - возврящает скаляр - коэффициент корреляции Пирсона. Чем ближе коэффициент к 1 тем точнее исходная зависимость приближается к линейной;

intercept (VX, VY) - возвращает значение параметра а (свободный член) рассчитанного методом наименьших квадратов;

slope (VX, VY) - определяет значение параметра b (угловой коэффициент) рассчитанного методом наименьших квадратов;

line (VX, VY) - [MathCAD 2000] возвращает вектор первый элемент которого параметр а, второй b рассчитанные по методу наименьших квадратов;

medfit (VX, VY) - [MathCAD 2000] возвращает вектор первый элемент которого параметр а, второй b рассчитанные по методу медиан.

Как видно из примера при аппроксимации линейной регрессией прямая проходит через "облако" точек.

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

Линейная регрессия общего вида

MathCAD позволяет проводить линейную регрессию общего вида, в которой аппроксимирующая функция задается линейной комбинацией функций, причем сами фикции fi (x) могут быть не линейными:

.

Линейная регрессия общего вида реализуется с помощью функции linfit (VX, VY,F) - возвращающей вектор коэффициентов К, при котором среднеквадратичная погрешность приближения "облака" исходных точек с координатами VX, VY, минимальна. Вектор F содержит функции fi (x) записанные в символьном виде. Вектор VX должен быть возрастающим.

Полиномиальная регрессия

Полиномиальная регрессия позволяет аппроксимировать зависимость полиномом произвольной степени. Вычисление коэффициентов полинома осуществляется с помощью встроенной функции regress (VX, VY,n), где VX, VY - вектора с координатами исходных данных, n - порядок полинома (первые три возвращаемые коэффициенты служебные, а далее искомые значения расположенные по возрастанию степени полинома). Для построения аппроксимирующей зависимости можно воспользоваться либо встроенной функцией interp (VK,VX, VY,x), либо функцией , где VK - вектор коэффициентов расчитанных функцией regress; x - рассчитываемая точка. Для проведения регрессии необходимо что бы вектор VX был возрастающим и его количество его элементов было больше степени полинома на 1.

Функция regress определяет единственный приближающий полином, элементы которого вычисляются по всей совокупности точек. Для проведения локальной регрессии используется функция loess (VX, VY,span) - дающая приближение отрезками полиномов второй степени, где span - величина задающая длину отрезков. Чем больше величина span>0, тем сильнее сглаживаются данные. Чем меньше шаг между точками VX, тем меньше должно быть span. При больших значениях span функция приближается к regress (VX, VY,2). Рекомендуемое значение 0.75, однако оно подходит далеко не всегда и требует уточнения.

Нелинейная регрессия общего вида

Для выполнения нелинейной регрессии общего вида необходимо определить параметры произвольной аппроксимирующей функции , при которой обеспечивается минимальная среднеквадратичная ошибка. Для этого используется встроенная функция genfit (VX,VY,VS,F) - которая возвращает вектор K параметров функции . Вектор VS - задает начальные приближения элементов вектора K рассчитываемых итерационным способом, вектор F содержит искомую функцию и ее частные производные по параметрам Ki в аналитическом виде:

.

Интерполирование функций

Интерполирование - способ приближенного или точного нахождения, какой либо величины по известным отдельным значениям, её или других величин, связанных с ней. Задача интерполирования состоит в том, чтобы подобрать многочлен f (x) с действительными коэффициентами проходящий через все узлы интерполяции yi. Критерием близости функции является . Дискретный набор значений - называют узлами интерполяции, а многочлен f (x) интерполяционным полиномом. Для выполнения интерполяции средствами MathCAD необходимо, что бы точки xi были возрастающими и не совпадающими, а также были заданы значения yi для всех точек.

Кусочная линейная интерполяция

Кусочная линейная интерполяция является простейшим случаем локальной. Интерполяционной функцией является полином первой степени, то есть узловые точки соединяются прямой. Линейная интерполяция осуществляется с помощью встроенной функции linterp (VX,VY,x), где VX, VY - вектора узловых точек; x - рассчитываемая точка.

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

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

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

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

В таблице, приведенной ниже, используются следующие обозначения: X и Y - переменные или выражения любого типа; x и y - вещественные числа; z и w - вещественные или комплексные числа; m и n - целые числа; A и B - массивы (векторы или матрицы); i - дискретный аргумент; t - любая переменная; f - любая функция.

Оператор

Клавиши

Назначение оператора

X: = Y

X: Y

Локальное присваивание X значения Y

X Y

X Y

Глобальное присваивание X значения Y

X =

X =

Вывод значения X

X + Y

X + Y

Сложение X с Y

X

+ Y

X [Ctrl] [] Y

То же, что и сложение. Перенос чисто косметический.

X - Y

X - Y

Вычитание из X значения Y

X Y

X * Y

Умножение X на Y

X / z

Деление X на z

zw

z ^ w

Возведение z в степень w

z \

Вычисление квадратного корня из z

n [Ctrl] \ z

Вычисление корня n-ой степени из z

n!

n!

Вычисление факториала

Bn

B [n

Ввод нижнего индекса n

An,m

A [n, m

Ввод двойного индекса

A<n>

A [Ctrl] 6 n

Ввод верхнего индекса

[Ctrl] [Shift] 4

Суммирование Х по i = m, m + 1,. n

$

Суммирование Х по дискретному аргументу i

[Ctrl] [Shift] 3

Перемножение Х по i = m, m + 1,. n

#

Перемножение Х по дискретному аргументу i

$

Суммирование Х по дискретному аргументу i

&

Вычисление определенного интеграла f (t) на интервале [a, b]

Вычисление производной f (t) по t

[Ctrl]

Вычисление производной n-го порядка функции f (t) по t

()

`

Ввод пары круглых скобок с шаблоном

x > y

x > y

Больше чем

x < y

x < y

Меньше чем

x y

x [Ctrl] 0 y

Больше либо равно

x y

x [Ctrl] 9 y

Меньше либо равно

z = w

z [Ctrl] = w

Булево равенство возвращает 1, если операнды равны, иначе 0

z w

z [Ctrl] 3 w

Не равно

z

z

Вычисление модуля комплексного z

Литература

1. Дьяконов В.П. Справочник по MathCAD PLUS 6.0 PRO. - М.: "СК Пресс”, 1997. - 336 с.: ил.

2. Дьяконов В.П., Абраменкова И.В. MathCAD 8 PRO в"Нолидж”, 2000. - 512 с.: ил.

3. Кудрявцев математике, физике и Internet. - М.: Е.М. MathCAD 2000 Pro. - М.: ДМК Пресс, 2001. - 576 с.: ил.

4. Очков В.Ф. Mathcad 7 Pro для студентов и инженеров. - М.: КомпьютерПресс, 1998. - 384 с.: ил.

5. Плис А.И., Сливина Н.А. Mathcad 2000. Лабораторный практикум по высшей математике. - М.: Высш. шк., 2000. - 716 с.: ил.

6. Новиков А.А. Практическое пособие к лабораторным и контрольным работам по теме "Решение инженерно-экономических задач в среде MathCad for Windows" курса "Информатика" для студентов заочного отделения. - Гомель.: ГГТУ, 2000. - 45с. (м. ук № 2774)

7. Токочаков В.И. Практическое пособие по теме " Решение систем алгебраических и дифференциальных уравнений в среде MathCad for Windows" для студентов всех специальностей дневного и заочного отделений. - Гомель.: ГГТУ, 2000. - 25с. (м. ук № 2453)

8. Трохова Т.А. Практическое пособие по теме " Основные приемы работы в системе MathCad, версия 6.0" курса "Вт и программирование" для студентов всех специальностей дневного и заочного отделений. - Гомель.: ГГТУ, 1998. - 42с. (м. ук № 2286)

Размещено на Allbest.ru


Подобные документы

  • Краткая историческая справка и описание современной версии системы. Основные возможности современной версии MathCad, ее интерфейс. Ввод и редактирование выражений, функции, решение уравнений. Использование Mathcad для решения инженерно-технических задач.

    курсовая работа [2,8 M], добавлен 04.04.2014

  • Назначение и состав системы MathCAD. Основные объекты входного языка и языка реализации. Характеристика элементов интерфейса пользователя, настройка состава панелей инструментов. Задачи линейной алгебры и решение дифференциальных уравнений в MathCAD.

    курс лекций [1,6 M], добавлен 13.11.2010

  • Возможности математического пакета MathCad в среде Windows 98 для использования матричной алгебры и решения системы линейных алгебраических уравнений. Методы решения систем линейных алгебраических уравнений. Сравнение метода Гаусса с методом MathCad.

    практическая работа [62,6 K], добавлен 05.12.2009

  • Применение комплексного математического моделирования в проектировании. Обзор численных методов в моделировании. Решение дифференциальных уравнений в MathCAD. Анализ исходных и результирующих данных. Описание реализации базовой модели в MathCAD.

    курсовая работа [240,5 K], добавлен 18.12.2011

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

    курс лекций [2,5 M], добавлен 10.11.2010

  • Решение системы дифференциальных уравнений, заданной в нормальной форме Коши. Определение аналитических зависимостей изменения переменных состояния системы с использованием преобразования Лапласа. Численный метод решения системы c помощью Mathcad.

    практическая работа [657,1 K], добавлен 05.12.2009

  • Краткая историческая справка и описание современной версии системы. Основные возможности современной версии MathCad, ее интерфейс. Ввод и редактирование выражений. Средства повышения эффективности вычислений и их оптимизация. Обзор программных операторов.

    курсовая работа [1,1 M], добавлен 13.05.2016

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

    презентация [639,2 K], добавлен 07.03.2013

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

    отчет по практике [1,5 M], добавлен 11.09.2014

  • Общие сведения о системе Mathcad. Окно программы Mathcad и панели инструментов. Вычисление алгебраических функций. Интерполирование функций кубическими сплайнами. Вычисление квадратного корня. Анализ численного дифференцирования и интегрирования.

    курсовая работа [522,7 K], добавлен 25.12.2014

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.