Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
ЗАДАНИЕ
Для осуществления операций дифференциального и интегрального исчисления в Mathcad предусмотрен ряд операторов, вызываемый при помощи панели инструментов «Исчисление» (), которая, в свою очередь, вызывается кнопкой панели инструментов «Математика». Операторы данной панели перечислены в .
Рис. . Панель инструментов дифференциального и интегрального счисления
Табл. .
Оператор |
Кнопка |
Сочетание клавиш |
Производная |
Shift+/ (на основной клавиатуре) |
|
Производная n-го порядка (n≤5) |
Ctrl+Shift+/ (на основной клавиатуре) |
|
Определенный интеграл |
Shift+7 |
|
Неопределенный интеграл |
Ctrl+I |
|
Суммирование |
Ctrl+Shift+4 |
|
Суммирование по дискретной переменной |
Ctrl+4 |
|
Вычисление произведения |
Ctrl+Shift+3 |
|
Вычисление произведения по дискретной переменной |
Ctrl+3 |
|
Вычисление предела |
Ctrl+L |
|
Вычисление предела слева |
Ctrl+A |
|
Вычисление предела справа |
Ctrl+B |
Неопределенный интеграл не может быть вычислен численно, поэтому данный оператор применяется только в символьных вычислениях (см. следующую лаб. работу).
Операторы суммирования или вычисления произведения вставляет в рабочий лист шаблон вида или , где заполнитель справа от знака суммы (произведения) предназначен для выражения, подлежащего суммированию (перемножению), заполнитель внизу слева для ввода переменной суммирования (от нее должно зависеть суммируемое выражение), а заполнители внизу справа и вверху служат для ввода границ интервала суммирования (перемножения). При этом переменная суммирования последовательно получает все значения из заданного интервала.
Операторы суммирования и перемножения по дискретной переменной вставляют в рабочий лист шаблоны вида или , не имеющие заполнителей для границ интервала. В заполнитель внизу необходимо вставить переменную суммирования, которая предварительно должна быть определена как дискретная переменная (см. Лабораторную работу №21). Интервалы суммирования, таким образом, задаются еще на этапе определения дискретной переменной. Все сказанное относится и к вычислению произведения.
После ввода оператора вычисления производной при щелчке правой кнопкой мыши по его шаблону в контекстном меню появляется пункт Показать производную как, позволяющий выбрать, будет ли производная отображаться как общая или частная (буква d изменится на ∂ и наоборот).
Часто при вычислении сумм, произведений, пределов, определенных интегралов одной из границ интервала выступает бесконечность. Для ввода соответствующего символа служит кнопка на панели инструментов «Исчисление» или комбинация клавиш Ctrl+Shift+Z.
Оператор вычисления градиента, для ввода которого используется кнопка этой же панели инструментов, рассматриваться в данной работе не будет.
Операторы дифференциального и интегрального счисления можно комбинировать друг с другом. Таким образом, в частности, можно задавать вычисления двойных и тройных интегралов. Эти операторы также можно использовать при определении переменных и функций это точно такие же математические операторы, как сложение или умножение. Примером может служить выражение (для его вычисления должны быть определены функция f(x,y) и переменная r).
Рис. . Пример использования операторов исчисления
При вычислении интегралов из контекстного меню (щелчком правой кнопкой мыши по знаку интеграла) можно выбрать один из четырех доступных в Mathcad численных методов интегрирования. Подробнее о численных методах интегрирования можно узнать в специализированной литературе. По умолчанию в Mathcad используется автовыбор метода интегрирования.
В Mathcad реализовано несколько функций и методов решения алгебраических уравнений и их систем.
Одним из способов является графический: строится график левой части уравнения (если правая часть равняется нулю) или графики обоих частей, и затем при помощи инструментов масштабирования и трассировки определяются координаты точки пересечения графика с осью абсцисс либо пересечения двух графиков друг с другом. Ниже будут рассмотрены другие способы решения уравнений.
Перед решением уравнения с использованием данной функции уравнение следует преобразовать таким образом, чтобы правая часть равнялась нулю, т.е. привести уравнение к виду , где x неизвестная переменная, может иметь любое название; f(x) некое математическое выражение, содержащее x. В этом выражении могут быть использованы переменные, встроенные и пользовательские функции Mathcad.
Функция поиска решения уравнения называется root и имеет синтаксис
root(f(x),x,a,b),
где f(x) левая часть уравнения, которая приравнивается к нулю, x неизвестное, a и b необязательные параметры, при помощи которых можно задать интервал, в котором производится поиск корней уравнения. При этом f(x) может быть выражением, зависящим от нескольких переменных, однако все переменные, кроме одной (второй аргумент функции root, в нашей записи x) должны быть определены заранее и в решении уравнения ведут себя как константы.
Если параметры a и b не заданы, для работы функции необходимо перед ее вызовом присвоить неизвестной (x в нашей записи) некоторое предварительное значение (так называемое значение угадывания). «Правильность» угадывания этого значения не влияет на точность нахождения корня, однако функция root определит корень, ближайший к данному значению. В некоторых случаях приблизительную величину значения угадывания можно предварительно определить графическим методом.
Следует помнить, что функция возвращает только один корень, так что если на заданном интервале (от a до b в нашей записи) у уравнения имеется несколько корней, будет возвращен какой-то один из них, какой заранее неизвестно. Рекомендуется выбирать такие значения a и b, чтобы f(a) и f(b) были разного знака.
Пример решения уравнения данным способом (с указанием интервала и с предварительным угадыванием) показан на .
Рис. . Использование функции root для решения уравнения
Еще одной типичной задачей, решаемой в Mathcad, является поиск всех корней многочлена определенной степени. Функция для поиска корней многочлена имеет свою особенность: ее аргумент и возвращаемое ей значение представляются в форме вектора.
Например, найдем все корни многочлена , что аналогично решению уравнения . Для использования функции поиска корней многочлена следует определить предварительно вектор, элементы которого являются коэффициентами многочлена, начиная со свободного члена. В нашем случае элементами вектора будут числа (2; -10; 0; 1). Следует обратить внимание, что нулевые коэффициенты записывать обязательно. Напомним, что вектором является массив с одним столбцом и несколькими строками, а не наоборот. В качестве элементов вектора могут быть использованы не только цифры, но и любые математические выражения. В Лабораторной работе №24 будет показан способ автоматического создания вектора коэффициентов.
Для поиска корней многочлена используется функция polyroots, синтаксис которой
polyroots(v),
где v вектор, составленный из коэффициентов многочлена. Функция вернет вектор, составленный из корней данного многочлена. Часто для более удобной записи найденных корней (в строчку) вектор имеет смысл транспонировать.
Для вычисления функция использует один из двух численных методов поиска решения. Для изменения текущего метода следует щелкнуть правой кнопкой мыши по названию функции и выбрать другой метод из контекстного меню. Сведения об области применения и особенностях конкретных методов можно найти в специализированной математической литературе.
Пример использования функции polyroots показан на .
Для решения систем из n линейных уравнений с n неизвестными в Mathcad предусмотрена функция lsolve. Особенность функции заключается в том, что исходная система уравнений и найденное решение функция представляет в матричном виде.
Рис. . Использование функции polyroots
Перед решением систему уравнений необходимо привести к виду:
.
Синтаксис функции:
lsolve(M,V),
где M матрица коэффициентов при неизвестных в системе уравнений, V вектор правых частей уравнений. В нашем случае
; .
Функция возвращает ответ в форме вектора вида:
.
Пример использования функции для решения системы из трех уравнений
показан на .
Рис. . Пример использования функции lsolve
Для решения системы произвольных уравнений (включая линейные уравнения, а также неравенства) можно использовать функцию find. Синтаксис функции:
find(x1,x2,…,xn),
где x1, x2 и т.д. имена неизвестных. Функция возвращает решения уравнений в виде вектора, где значения неизвестных располагаются в том же порядке, в котором перечислялись аргументы при вызове функции. Если решается одиночное уравнение, функция имеет один аргумент и возвращает скалярную величину.
В отличие от функций root, polyroots, lsolve, в аргументах функции find не содержатся решаемые уравнения. Данные уравнения должны быть описаны в рабочем документе непосредственно перед функцией find внутри так называемого блока решения уравнений.
Данный блок необходим для работы функции find и еще некоторых функций и начинается записью в рабочем листе ключевого слова given (англ.: дано). Ниже этого слова записываются уравнения и неравенства, образующие систему. При описании уравнений в блоке решения не допускается использование оператора присваивания и дискретных переменных, вместо этого используются булевские (логические) операторы. В частности, для обозначения равенства друг другу правой и левой частей уравнения используется жирный знак равенства.
Для вставки логических операторов служит панель инструментов «Логический» (). Логические операторы перечислены в .
Рис. . Панель инструментов вставки логических операторов
Табл. .
Оператор |
Кнопка |
Сочетание клавиш |
Оператор |
Кнопка |
Сочетание клавиш |
Равно |
Ctrl+= |
Не равно |
Ctrl+3 |
||
Меньше |
Shift+, |
Не |
Ctrl+Shift+1 |
||
Больше |
Shift+. |
И |
Ctrl+Shift+7 |
||
Меньше или равно |
Ctrl+9 |
Или |
Ctrl+Shift+6 |
||
Больше или равно |
Ctrl+0 |
Исключающее или |
Ctrl+Shift+5 |
Логические операторы Mathcad могут использоваться не только в пределах блока решения уравнений. Операторы И, Или, Исключающее или и Не наиболее часто применяются для выполнения логических операций над булевскими величинами. Булевская величина имеет одно из двух значений: «ИСТИНА» или «ЛОЖЬ». Для большей универсальности Mathcad не делает различия между обыкновенными (числовыми) и булевскими величинами: ноль считается «ЛОЖЬЮ», а любое ненулевое число «ИСТИНОЙ». И наоборот: «ЛОЖЬ» может быть преобразована в ноль, а «ИСТИНА» в единицу.
Использование логического оператора «Не равно» в блоке решения уравнений не допускается.
Блок решения уравнений может включать до 200 выражений. Этот блок всегда заканчивается одной из решающих функций (в нашем случае функцией find). Блок решения не допускает вложения в него другого блока решения. Однако в документе Mathcad можно через оператор присваивания определить для решающей функции новое имя. Тогда данная функций под этим именем может войти в выражение, приводимое в другом блоке решения уравнений.
Для корректной работы функции find перед началом блока решения уравнений всем неизвестным переменным должны быть присвоены значения угадывания.
Пример поиска решения системы уравнений при помощи функции find показан на .
Часто бывает, что точного решения системы уравнений не существует. В этом случае функция find выдаст ошибку. Однако в Mathcad существует функция поиска приблизительного решения системы minerr. В отличие от функции find, функция minerr возвращает решение, наиболее точно (с наименьшей погрешностью) удовлетворяющее всем уравнениям и неравенствам системы. Синтаксис функции minerr и способ ее использования такие же, как и у функции find.
Рис. . Пример решения системы уравнений функцией find
Еще одним удобным инструментом Mathcad являются функции maximize и minimize. Если задать некоторую пользовательскую функцию от одной или нескольких переменных, функции maximize и minimize определят соответственно максимум и минимум функции, удовлетворяющий заданным пользователем условиям.
Метод использования и синтаксис функций одинаков и будет показан на примере функции maximize. синтаксис функции:
maximize(f,x1,x2,…,xn),
где f имя анализируемой функции (без перечисления аргументов в скобках), x1, x2, …, xn аргументы функции, относительно которых проводится анализ. Функция возвращает вектор из значений x1, x2, …, xn.
Процесс поиска максимального (или минимального) значения функции производится в следующей последовательности:
Если никаких дополнительных условий не предполагается, пункты 3 и 4 можно пропустить.
Следует помнить, что если в пределах ограничений функция имеет несколько локальных минимумов или максимумов, будет найден только один из них, ближайший к значениям угадывания.
Пример использования функции (определяются и аргументы, обеспечивающие максимум функции, и ее значение) показан на .
Функция может использовать различные численные методы, для выбора которых служит контекстное меню при щелчке по ней правой кнопкой мыши. Для нелинейных методов пункт «Дополнительные параметры» открывает диалоговое окно для тонкой настройки численного метода. Вопросы выбора и настройки численных методов не рассматриваются в данном пособии.
Рис. . Пример использования функции Maximize
Решение дифференциальных уравнений представляет собой достаточно серьезную математическую проблему, с которой вынуждены сталкиваться ученые и инженеры. Mathcad успешно решает некоторые типы дифференциальных уравнений. Для решения разных типов уравнений в программе приходится использовать различные методы и функции.
Для решения таких уравнений используется функция odesolve(x,b,step), где x переменная интегрирования, b верхняя граница интервала интегрирования, необязательный параметр step количество шагов, используемых решателем при поиске решения. Чем выше величина step, тем точнее решение, но тем больше времени потребуется на его поиск.
При использовании функции Odesolve само уравнение, а также его начальные условия задаются в блоке решения уравнений, который начинается со слова given. Начальные условия можно записывать только в виде равенств, их количество должно равняться степени уравнения. В случае, если для решения уравнения используются не начальные, а граничные условия, их следует записывать также в виде равенств и определять в точке, соответствующей значению аргумента b. Следует помнить, что начальные или граничные условия вида не поддерживаются Mathcad.
Пример решения дифференциального уравнения указанным методом показан на , а). Функция возвращает результат в виде функции A6(t), в дальнейшем можно построить ее график и график ее производной.
В показанном примере вместо записи можно применить запись . Для ввода символа «штрих» применяется комбинация клавиш Ctrl+F7.
Функция может решать уравнение одним из трех численных методов. Для переключения между ними следует воспользоваться контекстным меню при щелчке правой кнопкой мыши по названию функции.
Функция odesolve(vector,x,b,[step]) также может использоваться для решения систем обыкновенных дифференциальных уравнений первого порядка. В этом случае у функции появляется дополнительный аргумент vector, представляющий собой вектор, состоящий из названий функций, образующих систему (без скобок с указанием аргументов). В результате своей работы функция также возвратит вектор, состоящий из функций от переменной интегрирования, причем именно аргумент vector определяет порядок следования функций в возвращаемом векторе. В остальном использование функции аналогично случаю решения одиночного дифференциального уравнения. Пример (в результате будут созданы функции A7(t), B7(t) и C7(t)) показан на , б).
Для решения таких уравнений в Mathcad используется ряд специальных функций, каждая из которых реализует свой численный метод дифференцирования: rkfixed (метод Рунге-Кутты четвертого порядка с фиксированным шагом интегрирования), Rkadapt (метод Рунге-Кутты четвертого порядка с автоматически изменяющимся шагом интегрирования), Adams (метод Адамса), Bulstoer (метод Булирша-Штоера), Stiffb (также метод Булирша-Штоера для решения жестких систем уравнений, дополнительно требуется матрица Якоби системы исходных уравнений), Stiffr (метод Розенброка для решения жестких систем уравнений, дополнительно требуется матрица Якоби системы исходных уравнений), BDF (метод, основанный на обратных формулах дифференцирования для решения жестких систем, матрица Якоби не требуется, но может быть использована), Radau (метод RADAU5 для решения жестких систем уравнений). Жесткими уравнениями принято считать такие, для которых классические методы не в состоянии найти решение, или это решение оказывается неустойчивым либо неточным. Также имеется гибридная функция AdamsBDF, которая сама определяет жесткость системы и выбирает либо метод Адамса, либо метод обратных формул дифференцирования.
а) б)
Рис. . Пример решения дифференциального уравнения и системы дифференциальных уравнений функцией Odesolve
Следует обратить внимание, что все функции, кроме rkfixed, пишутся с заглавной буквы (т.к. имеют место аналогичные функции с малой буквы, с другим синтаксисом и другими задачами). Синтаксис этих функций рассмотрим на примере функции Rkadapt.
Для решения системы уравнений с использованием данных функций не используется блок решения уравнений. Вместо этого функция работает с матричным представлением системы дифференциальных уравнений. Рассмотрим приведение системы к матричному представлению на примере системы, показанной на , б). Для приведения системы уравнений к данному виду следует выполнить следующие действия:
Записать систему таким образом, чтобы у каждого уравнений была левая и правая часть. Левая часть каждого уравнения должна представлять собой производную соответствующей функции. Коэффициенты и иные математические выражения при данной производной недопустимы. В нашем примере достаточно преобразовать первое уравнение;
Задаются именем вектора, элементы которого будет представлять собой функции, присутствующие в системе дифференциальных уравнений. На этом же этапе определяются с порядком следования функций в векторе имен. Однако ничего присваивать элементам вектора не нужно (никаких записей в рабочем листе Mathcad на этом этапе не требуется);
из пункта 2. Каждому элементу вектор-функции присваивают правую часть уравнения системы. Порядок следования уравнений также важен и определяется левыми частями уравнений: их порядок должен соответствовать порядку следования элементов вектора из пункта 2. В элементах создаваемой вектор-функции имена функций системы (с аргументами в скобках) заменяют на элементы вектора из пункта 2. Данное преобразование называется приведением системы уравнений к стандартному виду Mathcad;
Определяют вектор начальных условий, каждый элемент которого равен значению соответствующей функции в некой начальной точке;
;
Результатом работы функции является матрица, первый столбец которой содержит значения переменной интегрирования, а каждый последующий значение соответствующей функции (в том порядке, который был определен в векторе пункта 2). Количество строк матрицы равно величине npoints. В дальнейшем найденные решения можно отобразить на графике, в частности, построив графики второго и последующего столбцов результирующей матрицы относительно ее первого столбца. Результат решения рассмотренного выше примера показан на .
Рис. . Пример решения системы дифференциальных уравнений, полученный при помощи функции Rkadapt путем записи системы в матричном виде
Функции могут также использоваться для решения одиночных уравнений, в этом случае аргументы Y и D будут не векторами, а скалярными величинами.
В Mathcad не предусмотрено функций для решения систем дифференциальных уравнений порядка выше двух. Однако это ограничение легко обходится методом замены переменных. Например, необходимо решить следующее дифференциальное уравнение:
.
В этом случае достаточно ввести новую функцию, например,
.
Если записать это определение наоборот, получится первое из двух уравнений новой системы ОДУ первого порядка. Подстановкой этой функции в основное уравнение и переносом остальных членов в правую часть создадим второе уравнение системы. Итоговая система ОДУ первого порядка будет иметь вид:
,
которую, по описанной выше методике, приводят к стандартному виду Mathcad. Если имеет место система нескольких уравнений высоких порядков, такая методика позволяет привести ее к системе уравнений первого порядка, но с большим количеством уравнений.
Иногда поиск решения на всем интервале квантования с достаточной точностью может занять слишком много времени, а для анализа поведения системы необходимо знать лишь поведение ее решения вблизи конца интегрирования. Для этого в Mathcad предусмотрены аналоги функций решения дифференциальных уравнений: rkadapt, bulstoer, stiffb, stiffr и radau (пишутся с малой буквы). Синтаксис функций практически одинаков (кроме матрицы Якоби в функциях stiffb и stiffr): rkadapt(Y,x1,x2,acc,D,kmax,s), где Y,x1,x2,D аналогичны одноименным функциям полного интегрирования; acc характеристика точности (чем меньше acc, тем точнее, но дольше расчет, 0,001 даст очень высокую точность); kmax длина интервала, в точках, на которой производится интегрирование (конец интервала совпадет с x2); s шаг между точками интервала интегрирования.
Также бывают ситуации, когда постановка задачи не дает пользователю всех необходимых начальных значений, но вместо этого имеется достаточное количество граничных или промежуточных значений (значений функций и их производных на конце интервала интегрирования или в его промежуточных точках). В этом случае можно использовать функции sbval (вычисляет недостающие начальные значения при известных граничных) и bvalfit (вычисляет недостающие начальные значения при известных промежуточных). Синтаксис и работу этих функций студентам рекомендуется изучить самостоятельно по электронным книгам Mathcad или специализированной литературе.
В Mathcad присутствует несколько функций для решения дифференциальных уравнений двух неизвестных. Основной является функция pdesolve(u,x1,
range1,x2,range2,[pts1],[pts2]), где u вектор, содержащий имена неизвестных функций (скалярная переменная для одиночного уравнения); x1 и x2 имена переменных интегрирования; range1 и range2 векторы, содержащие начальное и конечное значение каждой из переменных интегрирования, pts1 и pts2 необязательные аргументы, определяющие количество точек интегрирования по первой и второй переменной.
Уравнения и их начальные условия для функции pdesolve, как и для функции odesolve, записываются в блоке решения уравнения после служебного слова given. При этом для корректного решения уравнения необходимо при записи уравнений писать частные производные в следующей форме: не , а , не , а , в противном случае Mathcad не распознает производные как частные.
Функция numol обладает еще более широкими возможностями и более сложным синтаксисом. Позволяет решать системы из дифференциальных и алгебраических уравнений нескольких переменных, записанные в матричной форме.
Для облегчения решения конкретных задач в Mathcad присутствует еще несколько функций для решения конкретных физико-математических задач. Функция multigrid служит для решения уравнения Пуассона в частных производных для случая строго нулевых граничных условий. Функция relax позволяет решать то же уравнения Пуассона в частных производных, но при произвольных граничных условиях. При необходимости студентам следует изучить данные функции и методы работы с ними самостоятельно по специализированной литературе, посвященной решению дифференциальных уравнений в Mathcad.
Mathcad поддерживает вычисления с комплексными числами. Согласно математического определения, любое комплексное число можно записать в виде a+bi, где a действительная часть, b мнимая часть, i мнимая единица. В некоторых случаях мнимую единицу принято обозначать как j, для Mathcad это равнозначные понятия.
Некоторые операции над действительными числами, например, квадратный корень из отрицательного числа, по умолчанию возвращают результат в виде комплексного числа. Поскольку действительные числа есть подмножество комплексных, никаких переключений в Mathcad не требуется.
Поскольку во многих расчетах часто фигурируют переменные i или j (например, при организации суммирования по i), которые не являются мнимой единицей, для ее записи используются специальные сочетания. В частности, отдельно стоящая мнимая единица вводится как 1i или 1j (без пробела и каких-либо разделительных символов). Если мнимая единица вводится со своим числовым множителем в составе мнимой части комплексного числа, следует вводить число и букву i или j подряд, без пробела и знака «умножить». Однако, если в качестве множителя мнимой части выступает переменная, после ее имени необходимо ввести знак умножить и мнимую единицу в виде 1i или 1j. Если же нужно ввести произведение числа на переменную i или j, знак умножения ставить обязательно!
Другим способом ввода мнимой единицы (только в виде i) является кнопка на панели инструментов «Калькулятор».
Комплексные числа, наравне с действительными, могут входить в состав массивов (векторов и матриц), быть аргументами функций, участвовать в других вычислениях.
Специально для работы с комплексными числами в Mathcad предусмотрен ряд специальных функций: Re(z) возвращает действительную часть комплексного числа z; Im(z) возвращает мнимую часть числа z; arg(z) возвращает расстояние на комплексной плоскости от начала координат до числа z; csgn(z) возвращает знак комплексного числа (0, если z=0; 1, если Re(z)>0 или Im(z)>0 при Re(z)=0 и -1 во всех остальных случаях).
Если комплексное число записано в форме a+bi, то у него имеется так называемое сопряженное комплексное число вида a-bi. Для быстрого нахождения комплексного сопряженного числа служит оператор, вводимый при помощи сочетания клавиш Shift+ (рядом с клавишей Enter). В рабочем листе оператор отображается в виде черты над комплексным числом.
Весьма распространенной задачей ученых и инженеров является анализ экспериментальных данных. Например, в результате эксперимента получено ряд значений функции для разных значений ее аргумента, и требуется найти математическое описание функции так называемую эмпирическую формулу.
В Mathcad имеется множество функций, направленных на решение задачи обработки данных. Основные функции представлены в . В этой же таблице представлен ряд других функций, в частности функции теории вероятности и математической статистики.
Прежде чем Mathcad при помощи функций или выражений, заданных пользователем, начнет обрабатывать данные, их следует ввести. Можно сделать это вручную, создав массив и последовательно напечатав значения его элементов. Однако если объем данных большой, этот способ окажется неэффективным.
Более простым способом ввести данные в Mathcad является вставка таблицы, осуществляемая через меню Добавить Данные Таблицу или кнопкой стандартной панели инструментов. В рабочий документ будет вставлено небольшое окошко, под которым помещается таблица практически бесконечного размера. Около левого верхнего угла таблицы располагается заполнитель, в который необходимо ввести имя табличной переменной. После вставки таблицы можно набирать данные в ней, прокручивая ее полосы прокрутки, можно вставить данные в нее через буфер обмена. Поскольку таблица в Mathcad является способом отображения матрицы, для использования ее данных в выражениях следует записывать присвоенное таблице имя с нижними индексами. Часто удобнее использовать оператор выделения столбца таблицы (кнопка панели инструментов «Матрица»). Выделенный при помощи этого оператора столбец таблицы является вектором, большинство же функций обработки данных предполагают использовать в качестве аргументов именно векторы. Если функция требует в качестве аргумента матрицу, число столбцов которой не совпадает с числом столбцов таблицы, помогут функции augment и submatrix (см. Лабораторную работу №22).
Меню Добавить Данные Файл для ввода… вставляет в документ конструкцию, которая служит для импортирования данных напрямую из файла. Поддерживаются файлы разных типов, включая таблицу Microsoft Excel и простой текст. После вставки конструкции присваивается имя, и, в дальнейшем, с точки зрения Mathcad, она ведет себя как матрица со значениями. Изменения, вносимые в файл, приводят к автоматическому обновлению элементов матрицы, и, как следствие, к пересчету листа.
Через меню Добавить Данные Файл для вывода… в рабочий лист можно вставить такую же конструкцию, служащую для вывода данных вовне. Если присвоить элементам этой конструкции (для нее также требуется имя) какие-либо значения, они автоматически будут записаны в файл.
Имя и тип входных и выходных файлов, а также некоторые параметры их использования указываются в специальном диалоговом окне () в момент вставки конструкции в документ.
Рис. . Диалоговое окно для работы с данными из файлов
Функции теории вероятности, преимущественно, позволяют создавать и анализировать те или иные формы распределения случайных чисел (более 15 распределений, в таблице перечислены только некоторые из них). Для каждого распределения существует функция, собственно создающая данное распределение, генерируя случайные числа, а также функции, вычисляющие плотность вероятности, а также прямую и обратную функцию распределения.
Функции математической статистики служат для разбиения набора данных по интервалом (квантования) и быстрого вычисления типичных статистических параметров, характеризующих набор данных.
Табл. .
Функция |
Описание |
|
Интерполяция, экстраполяция и сглаживание экспериментальных данных, поиск уравнений регрессии |
||
slope(vx,vy) |
Возвращает величину наклона (коэффициент k) линии егресссии |
Вектор vx содержит x-координаты точек, vy соответствующие им y-координаты |
intercept(vx,vy) |
Возвращает величину смещения (коэффициент b) линии регрессии |
|
line(vx, vy) |
Возвращает вектор, содержащий коэффициенты (b;k) для линии регрессии в форме b+kx. Коэффициенты по отдельности вычисляет предыдущие функции |
|
medfit(vx, vy) |
Возвращает вектор, содержащий коэффициенты (b;k) для линии медианной регрессии в форме b+kx. Коэффициенты по отдельности вычисляет предыдущие функции |
|
linterp(vx,vy,x) |
Интерполирует данные из векторов vx (x-координаты точек, обязательно в порядке возрастания) и vy (y-координаты точек) ломаной, состоящей из отрезков прямой. Возвращает координату y точки, имеющей координату x и принадлежащей отрезку ломаной |
|
interp(vs,vx,vy,x) |
Создает функцию, основываясь на векторе vs, вычисленном одной из функций регрессии. Векторы vx и vy являются вводными данными для функции. x является именем аргумента результирующей функции |
|
regress(vx,vy,k) |
Возвращает вектор коэффициентов регрессии полинома k-й степени, интерполирующих точки с координатами из векторов vx и vy. Именно этот вектор является аргументом vs функции interp |
|
loess(vx,vy,span) |
Возвращает вектор коэффициентов регрессии полиномов 2-й степени, интерполирующих точки с координатами из векторов vx и vy. Именно этот вектор является аргументом vs функции interp. Чем меньше величина span, тем больше различных полиномов объединит в себе итоговый вектор и тем сложнее будет итоговая функция |
|
cspline(vx,vy) |
Возвращает вектор коэффициентов регрессии для построения сплайна, интерполирующего точки с координатами из векторов vx и vy. Именно этот вектор является аргументом vs функции interp |
Кубический сплайн |
pspline(vx,vy) |
Параболический сплайн |
|
lspline(vx,vy) |
Линейный сплайн |
|
expfit(vx,vy,vg) |
Возвращает вектор коэффициентов (a;b;c)регрессии для построения функции определенного вида, интерполирующих точки с координатами из векторов vx и vy. Итоговую функцию можно восстановить вручную, умножив вычисленные коэффициенты регрессии на соответствующие функциональные множители. Вектор vg содержит значения угадывания для коэффициентов (a;b;c) |
; vg необязательный |
lgsfit(vx,vy,vg) |
||
sinfit(vx,vy,vg) |
||
logfit(vx,vy,vg) |
||
lnfit(vx,vy) |
||
pwrfit(vx,vy,vg) |
||
linfit(vx,vy,F) |
Возвращает вектор коэффициентов регрессии для построения линейной комбинации функций произвольного вида, интерполирующих точки с координатами из векторов vx и vy. Итоговую функцию можно восстановить вручную, умножив вычисленные коэффициенты регрессии на соответствующие множители-функции. F содержит одну или несколько (в виде вектора) функций, из которых составляется итоговая |
|
interp(vs, Mxy,Mz,v) |
Создает функцию, основываясь на векторе vs, вычисленном одной из функций регрессии. Массив Mxy и вектор Mz являются вводными данными для функции. м является вектором из имен аргументов результирующей функции |
|
regress(Mxy, |
Аналогично функциям regress и loess для одной переменной. Матрица Mxy размером mx2 содержит координаты x и y точек, а вектор vz размером m содержит соответствующие координаты z |
|
loess(Mxy, |
||
cspline(Mxy,Mz) |
Аналогично функциям cspline, pspline, lspline для одной переменной. Матрица Mxy размером mx2 содержит координаты x и y точек, а матрица Mz размером mxm содержит соответствующие координаты z |
|
pspline(Mxy,Mz) |
||
lspline(Mxy,Mz) |
||
medsmooth(vy,n) |
Возвращает вектор такого же размера, что и vy, полученный путем сглаживания вектора vy методом скользящей медианы. n нечетное целое число. Чем оно больше, тем сильнее сглаживание |
|
ksmooth(vx,vy,b) |
Возвращает вектор такого же размера, что и vx и vy, полученный путем сглаживания кривой, заданной векторами vx и vy с использованием формулы Гаусса. b должно быть соизмеримо с интервалом между точками. Чем оно больше, тем сильнее сглаживание |
|
supsmooth(vx, |
Возвращает вектор такого же размера, что vx и и vy, полученный путем кусочно-линейного сглаживания методом наименьших квадратов кривой, заданной векторами vx и vy. |
|
predict(v,m,n) |
Возвращает вектор из n предсказанных значений основанных на m последовательных элементах в векторе v |
|
Функции теории вероятности |
||
Бета-распределение, характер задается параметрами s1 и s2 |
||
rbeta(m,s1,s2) |
Возвращает вектор m случайно распределенных величин |
|
dbeta(x,s1,s2) |
Возвращает плотность вероятности распределения в точке x |
|
pbeta(x,s1,s2) |
Возвращает значение функции распределения в точке x |
|
qbeta(p,s1,s2) |
Возвращает значение обратной функции распределения для вероятности p |
|
Распределение Коши, характер задается коэффициентом сдвига l и масштаба s |
||
rcauchy(m,l,s) |
Возвращает вектор m случайно распределенных величин |
|
dcauchy(x,l,s) |
Возвращает плотность вероятности распределения в точке x |
|
pcauchy(x,l,s) |
Возвращает значение функции распределения в точке x |
|
qcauchy(pl,s) |
Возвращает значение обратной функции распределения для вероятности p |
|
Гамма-Распределение, характер задается коэффициентом масштаба s |
||
rgamma(m,s) |
Возвращает вектор m случайно распределенных величин |
|
dgamma(x,s) |
Возвращает плотность вероятности распределения в точке x |
|
pgamma(x,s) |
Возвращает значение функции распределения в точке x |
|
qcauchy(p,l,s) |
Возвращает значение обратной функции распределения для вероятности p |
|
Нормальное распределение, характер задается коэффициентами m иs |
||
rnorm(m,m ,s) |
Возвращает вектор m случайно распределенных величин |
|
dnorm(x,m ,s) |
Возвращает плотность вероятности распределения в точке x |
|
pnorm(x,m ,s) |
Возвращает значение функции распределения в точке x |
|
cnorm(x) |
Возвращает значение функции распределения в точке x для случая стандартного распределения |
|
qnorm(p,m ,s) |
Возвращает значение обратной функции распределения для вероятности p |
|
Распределение Стьюдента, характер задается числом степеней свободы d |
||
rt(m,d) |
Возвращает вектор m случайно распределенных величин |
|
dt(x,d) |
Возвращает плотность вероятности распределения в точке x |
|
pt(x,d) |
Возвращает значение функции распределения в точке x |
|
qt(p,d) |
Возвращает значение обратной функции распределения для вероятности p |
|
Распределение Вейбулла, характер задается параметром s |
||
rweibull(m,s) |
Возвращает вектор m случайно распределенных величин |
|
dweibull(x,s) |
Возвращает плотность вероятности распределения в точке x |
|
pweibull(x,s) |
Возвращает значение функции распределения в точке x |
|
qweibull(p,s) |
Возвращает значение обратной функции распределения для вероятности p |
|
Функции математической статистики |
||
hist(intvls,data) |
Возвращает вектор, представляющий частоту, с которой значения в матрице data попадают в интервалы intvls. intvls может быть вектором границ интервалов, либо целым числом, показывающим количество интервалов равной длины, на которые делится область data |
|
histogram(intvls,data) |
Возвращает матрицу с двумя колонками. Первая колонка содержит средние точки интервалов. Вторая колонка идентична результату функции hist(intvls, data) |
|
cvar(A,B) |
Возвращает ковариацию элементов массивов A и B. Массивы должны иметь одинаковый размер |
|
corr(A,B) |
Возвращает коэффициент корреляции Пирсона для элементов массивов A и B. Массивы должны иметь одинаковый размер |
|
mode(A,B,C,...) |
Возвращает элементы массивов A, B, C, ... которые встречаются наиболее часто, где A, B, C, ... массивы или скалярные величины. Если значение в A, B, C, ... которое появляется чаще других, выявить невозможно, появится сообщение об ошибке |
|
skew(A,B,C, ...) |
Возвращает коэффициент асимметрии элементов A, B, C, ... где A, B, C, ... массивы или скалярные величины. Возвращает скаляр. Определена для данных, у которых стандартное отклонение не равно 0 |
|
mean(A,B,C,…) |
Вычисляет среднее арифметическое величин A, B, C (аргументы неотрицательные безразмерные скалярные числа или массивы из таких чисел) |
|
gmean(A,B,C,…) |
Вычисляет среднее геометрическое величин A, B, C (аргументы неотрицательные безразмерные скалярные числа или массивы из таких чисел) |
|
hmean(A,B,C,…) |
Вычисляет среднее гармоническое величин A, B, C (аргументы неотрицательные безразмерные скалярные числа или массивы из таких чисел) |
|
median(A,B,C,...) |
Вычисляет медиану величин A, B, C (аргументы скалярные числа или массивы из таких чисел) |
|
var(A,B,C,...) |
Возвращает смещенную дисперсию элементов A, B, C, ... где A, B, C, ... массивы или скаляры. Возвращает скаляр |
|
Var(A,B,C,...) |
Возвращает дисперсию элементов A, B, C, ... где A, B, C, ... массивы или скаляры. Возвращает скаляр. |
|
stdev(A,B,C,...) |
Возвращает смещенное среднеквадратическое отклонение элементов A, B, C, ... где A, B, C, ... массивы или скаляры. Возвращает скаляр |
|
Stdev(A,B,C,...) |
Возвращает стандартное (несмещенное) отклонение элементов A, B, C ... где A, B, C, ... массивы или скаляры. Возвращает скаляр |
|
kurt(A,B,C,...) |
Возвращает коэффициент эксцесса элементов A, B, C, ... где A, B, C, ... являются массивами или скалярами. Возвращает скаляр. Все значения A, B, C, ... должны быть больше нуля |
17