Решение задач в пакете MathCad Лабораторный практикум Костанай, 2017
Скачать 1.93 Mb.
|
, а потом обратиться к символьному процессору Symbolic/Evaluate (Символика/Вычислить в символах) (рис. 14). Рисунок 14 Меню символьного процессора Symbolic для вычисления в символах При символьном дифференцировании можно оперировать с функциями нескольких переменных. Оператор дифференцирования может соединяться с любым вычислительным или символьным оператором. Особенно полезным есть оператор Sіmplіfy, так как выражение производной выдается в неупрощенном виде. Для упрощения ответа следует использовать операторы Collect (Приводить подобные, Factor (Раскладывает выражение на множители) и Expand (Раскрывать скобки. Чтобы получить численное значение производной в нужной точке исходя из результатов символьного расчета, нужно сделать следующее 1. Найти функцию производной, используя оператор символьного вывода ( ). 2. Присвоить переменной соответствующее числовое значение. 3. Скопировать полученное выражение для производной и вычислить его символьно. Панель Calculus (Вычисление) содержит два оператора интегрирования. Первый, Іndefіnіte І (Неопределенный интеграл, позволяет определить вид функции, которая интегрируется (рис. 15). Оператор неопределенного интеграла содержит два маркера, которые заполняются соответственно 23 принятому в математике представлению в левый вводится функция (или имя функции, под знак дифференциала - переменная интегрирования. Чаще всего результат интегрирования представляет собой громоздкое выражение. В этом случае его следует упрощать. Наиболее универсальный инструмент, который для этого используется - оператор Sіmplіfy (Упростить. Однако иногда выражение можно упростить (оператор Collect), разложив по степеням (оператор Expand) или приведя дробь к общему знаменателю оператор Factor). Чтобы задействовать нужный символьный оператор, следует выделить выражение интеграла и нажать соответствующую кнопку на панели і (Символьные. Применить к результату интегрирования можно и сразу несколько символьных операторов. Нахождение определенного интегралу выполняется подобно тому как вычисляется неопределенный интеграл. Для интегрирования необходимо обратиться на панели Символьные к функции sіmplіfy. Ввести оператор интегрирования. В соответствующих местах заполнить имя первой переменной и границы интегрирования. Если необходимо вычислить кратные интегралы, тона месте введения функции под интегралом ввести еще один оператор интегрирования, границы интегрирования и подынтегральную функцию. Аналогично выполняется интегрирование по нескольким переменным. Можно определить интеграл в символьном виде, например, 2 2 2 1 2 Для числового интегрирования MathCad предлагает воспользоваться встроенными программами вычисления интегралов (рис. 15). Для того, чтобы обратиться к приближенному расчету, необходимо в контекстном меню выбрать один из методов интегрирования. Рисунок 15 Меню со встроенными программами для числового интегрирования Вычисление обычных дифференциальных уравнений Дифференциальные уравнения - это уравнения, в которых неизвестными есть функции одной или нескольких переменных. Эти уравнения имеют соотношение между функциями, которые необходимо найти, и их 24 производными. Если в уравнении присутствуют производные по одной переменной, то это есть обычные дифференциальные уравнения (ОДУ. Найти решение дифференциального уравнения (или проинтегрировать его) - это значит определить неизвестную функцию на заданном интервале изменения ее переменную. Дифференциальное уравнение имеет одно решение, вместе с уравнением заданы начальные условия. С помощью MathCad можно найти решение задач Коши, для которых заданы начальные условия, и функции, которые необходимо отыскать, те. заданные значения этой функции в начальной точке интервала интегрирования уравнения. В большинстве случаев дифференциальное уравнение первого порядка можно записать в стандартной форме (форме Коши ) ), ( ( ) ( / t t y f t y , (1) и только с такой формою уравнения может работать вычислительный процессор MathCad. Вместе с уравнением (1) необходимо задать начальные условия – значение функции у в некоторой точке t 0 . Таким образом, необходимо найти функцию у на интервале [t 0 , t]. Для числового интегрирования весть возможность использовать блок Given/Odesolve или встроенные функции. Вычислительный блок Given/Odesolve, который реализовывает решение одного обычного дифференциального уравнения методом Рунге –Кутта, состоит из трех частей ключевое слово Given; дифференциальное уравнение и начальное условие, которые записаны с помощью логических операторов, причем начальное условие должно записываться в форме у Odesolve(t,t 1 ) – встроенная функция для решения ОДУ относительно переменной t на интервале [t 0 , t]. Для решения ОДУ можно использовать также встроенные функции rkfixed, Pkadapt, Bestoer. 9 Программирование в М Для написания программ в среде MathCad [4,6] существует специальная панель і (Программирование) (риса, она относится к панели Math (Математические) (рис, б. Язык программирования MathCad имеет предельно малое количество операторов (риса. Чтобы написать программу, прежде всего для нее должен быть создан блок. Выглядит он как черная вертикальная линия с маркерами, в которые записывают те или иные выражения алгоритма. 25 а) б) Рисунок Панель программирования Чтобы построить единичный элемент программного блока, используется кнопка команды Add Line (Добавить линию) панели Programming Программирование. При этом в области курсора появится следующий объект , в который можно занести две строки программы. Для создания большего числа строк программы необходимо последовательно нажимать несколько раз соответствующую кнопку на панели Programming. Программный блок можно создать и внутри уже заданного блока. Для присвоения значений переменными функциям в MathCad используется специальный оператор (Local Defіnіtіon - Локальное присваивание, расположенный на панели і (Программирование. Использовать оператор обычного присваивания := в программах нельзя. Локальные переменные и функции имеют приоритет над глобальными в рамках родной программы. Несколько переменных можно объявлять водной строке через запятую. Практически любая программа создается с использованием специальных управляющих операторов, таких как оператор цикла for или оператора условия і. Чтобы задать нужный оператор, используются соответствующие кнопки панели і (Программирование. Просто набрать оператор из клавиатуры нельзя - он будет воспринят системой MathCad как неизвестная функция. Такие операторы как і, for, і активируют код, расположенный в левом верхнем маркере, в том случае, если выполняется условие в правом. Для задачи условия используются также операторы панели Boolean Логические. Можно задать и комплекс условий. С помощью оператора простого цикла for можно организовать выполнение операции или проверку условия для ряда конкретных значений переменной. Оператор for имеет три маркера в двух верхних маркерах, соединенных символом принадлежности, задается имя переменной, по которой организуется цикли ряд принятых ею значений. В нижнем маркере определяется операция или комплекс операций, которые должны быть выполнены для каждого значения переменной. С помощью второго оператора цикла і (Пока) можно организовать цикл, который будет работать до тех пор, пока некоторое условие будет выполняться. Оператор і имеет два маркера, в которые вводятся 26 соответственно условия работы цикла и выражение для операций, которые будут выполняться на каждом шаге цикла і. Количество шагов выполнения цикла ненужно определять явным образом. Если в некоторых ситуациях при работе программы необходимо прервать работу цикла, для этого надо использовать оператор break (Прервать. Этот оператор почти всегда работает с оператором і (Если) или on error (Перехват ошибок. Программный оператор условия і (Если) используется практически во всех создаваемых алгоритмах. Условный оператор і имеет два маркера і. В правый маркер вводится условие, в левый - операция, которая выполняется в случае, если условие выполняется (если же оно не выполняется, то программа, пропускает данный фрагмент. В маркер оператора может быть внесено несколько условий. Если алгоритм имеет несколько условий, при этом выполнение одного из них может привести к невыполнению или ошибке в других операторах условий, то можно использовать специальный оператор і (Продолжить. Его применение аналогично применению оператору break (Прервать. Оператор і (Иначе) предназначен для определения действия, которое должно быть выполнено, если условие оператора і (Если) окажется ошибочным. Одновременно может быть использовано несколько условных операторов і (Если. Оператор і (Иначе) в таком случае будет задействован, если не выполнятся условия всех операторов і (Если. С помощью оператора return (Возвратить) можно прервать работу программы и возвратить некоторое значение. Этот оператор используется при ошибочной ситуации в программе. В MathCad существует возможность использовать специальный оператор on error (Перехват ошибок. Он дает возможность в программах избегать ошибок и обходить их. Этот оператор по синтаксису полностью отвечает оператору і. 10 Обработка данных средствами MathCad Известно, что экспериментальные данные, как правило, задаются дискретно в виде массива данных из двух пар чисел (х і , у і ). В связи с этим возникает задача аппроксимации дискретных данных непрерывной функцией f(x). В MathCad для обработки экспериментальных данных существуют встроенные функции, которые позволяют выполнять интерполяцию. Для построения линейной интерполяции служит встроенная функция linterp linterp(x,y, t) – функция, которая аппроксимирует данные векторов хи у кусочно-линейной зависимостью – х – вектор действительных данных аргумента – у – вектор действительных данных значений того же размера – t – значение аргумента, при котором вычисляется интерполяционная функция. 27 Замечание элементы векторах должны быть определены в порядку возрастания. Чтобы осуществить линейную интерполяцию, надо выполнить следующие действия - Ввести векторы данных хи у - Определить функцию і х, в, t ) . - Вычислить значение этой функции в необходимых точках, например, і) =3.52 или lіnterp(х,в,6) =5.9, или построить ее график. Замечание функция A (t) на графику имеет аргумента не х. Это означает, что функция A (t) исчисляется не только при заданных значениях аргумента, а в намного большем количестве аргументов в интервале изменения переменной, что автоматически обеспечивает с. с, по умолчанию, соединяет точки графика прямыми линиями, осуществляет их линейную интерполяцию. В большинстве практических приложений желательно соединить экспериментальные точки не ломанной линией, а гладкой кривой. Лучше всего для этих целей подходит интерполяция кубическими сплайнами, те. отрезками кубических парабол. і - функция, которая аппроксимирует данные векторов хи у кубическими сплайнами – s - вектор вторых производных, созданный одной из функций і, і или і – х - вектор действительных данных аргумента, элементы которого расположены в порядке возрастания – y - вектор действительных значений того же размера – t - значение аргумента, при котором исчисляется функция, которая интерполируется. Перед применением функции і необходимо предварительно определить первый из ее аргументов - векторную переменную s. Выполняется это с помощью одной из трех встроенных функций тех же аргументов (х,у). – іspііne(x,y) - вектор значений коэффициентов линейного сплайна – pspііne(x,y) - вектор значений коэффициентов квадратичного сплайна – і - вектор значений коэффициентов кубического сплайнах- векторы данных. Более сложный тип интерполяции - так называемая интерполяция В- сплайнами. В отличие от обычной сплайн-интерполяции, сшивание элементарных В-сплайнов выполняется не в точках хи у, а в других точках, координаты которых предлагается ввести пользователю. Сплайны могут быть полиномами 1, 2 или 3 степени (линейные, квадратичные или кубические. Применяется интерполяция В-сплайнами точно также, как и обычная сплайн- интерполяция, разница состоит только в определении вспомогательной функции коэффициентов сплайна. 28 Лабораторная работа №1 Нахождение корней уравнения в MathCad Цель работы нахождение корней уравнения в программе MathCad с использованием встроенных функций root, polyroots, символьного решения. Указания к выполнению лабораторной работы I Нахождение корней уравнения в программе MathCad с использованием встроенной функции root 1. Запустить программу MathCad . 2. Записать на рабочем листе MathCad вид функции х, для которой необходимо найти на заданном интервале корни. 3. Создать цикл из точек интервала, на котором определяются корни, и вычислить в этих точках функцию х. Построить график функции хи график функции х (те. ось х. 4. Определить точки пересечения двух кривых хи х, которые будут приближением к корням уравнения. 4.1. Использовать для определения на графике значений корней в контекстном меню (рис) опцию Trace (рис. б, установить флажок в окне Track Data і. 4.2. Подвести курсор мыши к точкам пересечения кривых, координаты точек пересечения кривых, те. корни, будут представлены в окнах Хи У- Value, а на графике отобразится вертикальная прямая. 5. Задать для независимой переменной х начальное приближение, которое выбирается как значение точки пересечения кривых хи х. Обратиться ко встроенной в MathCad функции root(f(x), x) (функция root возвращает значение независимой переменной х, для которой х равняется 0) и найти корень х. 6. Найти второй хи третий х корни уравнениях (уравнение третьей степени имеет не больше трех действительных корней, задав для них соответственно их начальные значения как координаты точек пересечения кривых хи хи использовав функцию root. а) б) Рисунок 17 – Диалоговые окна для определения координат точек пересечения кривых 29 ІІ Нахождение корней уравнения в программе MathCad с использованием встроенной функции polyroots, которая возвращает вектор, имеющий все корни уравнения, коэффициенты уравнения при этом задаются вектором. 1. Записать на рабочем листе MathCad вид функции х для которой необходимо найти на заданном интервале корни. 2. Записать как вектор v все коэффициенты уравнения, расположить их в порядке увеличения степеней. 3. Найти корни, обратившись ко встроенной функции r:=polyroots(v), результат будет получено относительно трансформированного вектора r T . 4. Для интервала нахождения корня и количества элементов вектора создать соответствующие циклы и вычислить значение функции в точках цикла. 5. Построить график функции в точках цикла, а также в найденных точках корней, в которых функция будет иметь значения, равные нулю. ІІІ Нахождение корней уравнения в программе MathCad с использованием символьных решений уравнений. 1. Ввести левую часть уравнения. 2. Ввести знак равенства с использованием панели управления і Выражения) или с помощью нажатия клавиш Ctrl + =. 3. За знаком равенства ввести правую часть уравнения. 4. Выделить переменную, относительно которой решается уравнение. 5. Выбрать команду Symbolіc/Varіable/Solve. По окончанию решения корни уравнения выводятся в виде вектора. І Найти приближенное решение с использованием функции і. 1. Задать приближение последовательно для первого корнях. Ввести ключевое слово і (дано, из которого начинается блок решений. 3. Записать уравнение, используя знак логического равенства между правой и левой частями уравнения. 4. Обратиться к функции і x). Корень будет найдено. Таблица 1.1 – Варианты заданий к лабораторной работе № 1 № варианта Интервал нахождения корней Уравнение 1 2 3 1 [-1; 3] x 3 -2,92x 2 +1,4355x+0,791=0 2 [-2; 3] x 3 -2,56x 2 -1,325x+4,395=0 3 [-3,5; 2,5] x 3 +2,84x 2 -5,606x-14,766=0 4 [-2,5; 2,5] x 3 +1,41x 2 -5,472x-7,38=0 30 Продолжение таблицы 1 2 3 5 [-1,6; 1,1] x 3 +0,85x 2 -0,432x+0,044=0 6 [-1,6; 1,6] x 3 -0,12x 2 -1,478x+0,192=0 7 [-1,6; 0,8] x 3 +0,77x 2 -0,251x-0,017=0 8 [-1,4; 1] x 3 +0,88x 2 -0,3999x-0,0376=0 9 [-1,4; 2,5] x 3 +0,78x 2 -0,827x-0,1467=0 10 [-2,6; 1,4] x 3 +2,28x 2 -1,9347x-3,90757=0 11 [-2,6; 3,2] x 3 -0,805x 2 -7x+2,77=0 12 [-3; 3] x 3 -0,345x 2 -5,569x+3,15=0 13 [-2; 3,4] x 3 -3,335x 2 -1,679x+8,05=0 14 [-1; 2,8] x 3 -2,5x 2 +0,0099x+0,517=0 15 [-1,2; 3] x 3 -3x 2 +0,569x+1,599=0 16 [-2,5; 2,5] x 3 -2,2x 2 +0,82x+0,23=0 17 [-1,2; 4,6] x 3 -5x 2 +0,903x+6,77=0 18 [-1; 7,4] x 3 -7,5x 2 +0,499x+4,12=0 19 [-1.6; 9] x 3 -7,8x 2 +0,899x+8,1=0 20 [-3,4; 2] x 3 +2x 2 -4,9x-3,22=0 21 [-3,4; 1,2] x 3 +3x 2 -0,939x-1,801=0 22 [-4,6; 3,0] x 3 +5,3x 2 +0,6799x-13,17=0 23 [-2,4; 8,2] x 3 -6,2x 2 -12,999x+11,1=0 24 [-3,2; 2,7] x 3 -0,34x 2 -4,339x-0,09=0 25 [-1; 3] x 3 -1,5x 2 +0,129x+0,07=0 26 [-1; 3] x 3 -5,5x 2 +2,79x+0,11=0 27 [-1; 3] x 3 -5,7x 2 -6,219x-2,03=0 28 [-1; 3] x 3 -3,78x 2 -7,459x-4,13=0 29 [-1; 3] x 3 -5x 2 -9,9119x+0,01=0 30 [-1; 3] x 3 -7x 2 -1,339x-7,55=0 Пример І Для уравнения 139 0 7044 0 001 0 ) ( 2 3 x x x x f найти корни на интервале [-1, 1], шаг изменения переменной х равен 0.1. 1 Записать цикл из точек интервалах Записать функции 139 0 7044 0 001 0 ) ( 2 3 x x x x f их Построить графики для этих функций. 4 Определить на графике точки пересечения кривых 139 0 7044 0 001 0 ) ( 2 3 x x x x f их Задать как приближение значения точек пересечениях, х, х. В примере х, х, х 0.7. 6 Вычислить значение корней с помощью формул root (f(x1),x1), root (f(x2),x2), root (f(x3),x3). Полученные значения корней такие х, х, х 0.721 (рис. 18). |