Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
ДИФФЕРЕНЦИРОВАНИЕ СРЕДСТВАМИ Mathcad.Стр 1 из 3Следующая ⇒
ЛАБОРАТОРНАЯ РАБОТА № 4. ДИФФЕРЕНЦИРОВАНИЕ СРЕДСТВАМИ Mathcad. Символьные вычисления производных. Производной, как известно, называется предел отношения приращения функции к приращению ее аргумента. Математически производная функции f(x) в точке х определяется как: f'(x)= В Mathcad для вычисления производной предусмотрена команда Symbolics / Variable / Differentiate. Для того чтобы данная команда была доступна, в рабочем документе в дифференцируемом выражении предварительно следует выделить переменную, по которой производная должна быть вычислена. Можно просто навести на эту переменную маркер ввода (для чего, например, достаточно на этой переменной щелкнуть кнопкой мыши). Производная от выражения. На Рис. 1 представлено выражение ax2 + sin(bx), которое будет дифференцироваться по переменной х . Это выражение было предварительно введено в рабочий документ, и в нем маркер ввода наведен на переменную х в аргументе синуса. Рис. 1. Дифференцируемое выражение. Рис. 2. Результат вычисления производной по х После того как переменная в выражении выделена, выбираем команду Symbolics / Variable/ Differentiate. Результат выполнения команды по умолчанию отображается под тем выражением, от которого вычисляется производная ( Рис. 2 ). С полученным выражением можно работать так же, как и с обычным, введенным пользователем в рабочий лист. Например, от этого выражения можно вычислить еще одну производную. Например пускай это будет производная по b . Выделяем эту переменную и в очередной раз выполняем команду Symbolics / Variable / Differentiate. В результате будет вычислена новая производная, которая отобразиться внизу под исходным выражением. Таким образом, в документе можно вычислять производные практически от любых выражений. Хотя такой метод вычисления производных достаточно прост, он связан с рядом неудобств, которые становятся очевидными при решении более сложных задач: · Прежде всего, этот метод не пригоден для вычисления производной от функции, определенной пользователем в рабочем листе. При попытке вычислить производную с помощью команды Differentiate результат будет представлен как формальная запись производной от функции. Чтобы получить значение производной в явном виде, придется прибегнуть к другим методам (в частности, использовать оператор вычисления символьного значения). · Еще один обширный класс задач связан с вычислением производных высоких порядков. В этом случае придется несколько раз вызывать команду Differentiate, что не всегда приемлемо. Поэтому на практике для вычисления производных часто обращаются не к помощи меню, а вводят команды непосредственно в рабочий лист. При этом очень удобны математические палитры Calculus и Evaluation. Символьная производная Вычислим производную от выражения, не прибегая к командам меню Symbolics. Для этого на палитре Calculus выберем кнопку с изображением символа производной ( Рис. 3 ). В результате этот символ с двумя заполнителями появляется в рабочем документе ( Рис. 4 ).
Рис. 3. Вставка символа производной. Рис. 4. Символ производной. На месте нижнего заполнителя вводится переменная, по которой вычисляется производная, а на месте второго — дифференцируемое выражение. Если не прибегать к помощи команд меню Symbolics, то после ввода дифференцируемого выражения следует ввести оператор вычисления символьного значения ( стрелка вправо ). Это можно сделать, щелкнув на соответствующей кнопке палитры Evaluation. После ввода оператора вычисления символьного значения рабочий документ будет иметь вид, как на Рис. 5. Производная будет вычислена, если щелкнуть курсором мыши вне области вводимого выражения или нажать клавишу < Enter>. Результат вычисления производной представлен на Рис. 6.
Рис. 5. Ввод оператора вычисления Рис. 6. Результат вычисления производной Несложно проверить, что точно такой же результат может быть получен, если воспользоваться командой Symbolics I Evaluate I Symbolically или нажать комбинацию клавиш < Shift> +< F9>. Правда, в этом случае результат отображается не справа от вычисляемого выражения, а под ним. Кроме того, между вычислением символьного результата с помощью команд меню и ключевых слов (т. е. инструкций, вводимых непосредственно в вычисляемые или преобразуемые символьные выражения посредством палитры Evaluation или Symbolic ) существует одна принципиальная разница: если выражение вычислялось через команды меню и затем в документ были внесены изменения, то результат таких вычислений не пересчитывается. При использовании ключевых слов результат обновляется автоматически.
Часто бывает необходимо вычислить производную от функции, определенной ранее в рабочем документе. В качестве иллюстрации рассмотрим следующий пример. Производная от функции Прежде всего, в рабочем листе определяем функцию пользователя f(z). В качестве такой функции рассмотрим зависимость: f(z)=z ln(z) + exp(-az2). В документе функция пользователя определяется следующим образом: сначала вводится название функции, а в скобках после него указывается аргумент (или аргументы). После этого вводится оператор присваивания, вслед за оператором присваивания вводится математическое выражение, определяющее функциональную зависимость ( Рис. 7 ).
Рис. 7. Вычисление производной от функции пользователя. Для вычисления производной функция указывается сразу после символа дифференцирования. Если затем ввести оператор вычисления символьного значения и нажать клавишу < Enter>, производная от функции будет получена ( Рис. 7 ). Стоит обратить внимание, что при вычислении производной, как и в других аналогичных случаях, можно указывать в качестве аргумента переменную, отличную от заданной при определении функции. В рассмотренном примере функция содержит символьный параметр а. В этом случае, если предварительно, до определения функции, параметру значение присвоено не было, соответствующий символ в определении функции будет выделен специальным образом (по умолчанию красным цветом). В подобной ситуации необходимо быть предельно аккуратным при выборе переменной для аргумента функции. Например, если в описанной ранее функции указать аргументом переменную а, а затем по этой переменной вычислить производную, то в исходной функциональной зависимости параметр а рассматривается как переменная со всеми вытекающими отсюда последствиями (Рис. 8).
Рис. 8. Аргумент и параметр функции совпадают. Кроме этого производную от функции можно вычислять по параметру, даже если он не указан явно как аргумент функции. Ситуация проиллюстрирована на Рис. 9 (последнее выражение). Там в качестве переменной, по которой вычисляется производная, указан параметр функции а.
Рис. 9. Вычисление производной по параметру функции Рис. 10. Выбор символа производной Рис. 11. Ввод символа вычисления производной Рис. 12. Результат вычисления сотой производной. Рис. 13. Решение дифференциального уравнения с помощью процедуры odesolve (). Рис. 14. Решение системы дифференциальных уравнений с помощью процедуры odesolve ().
Еще несколько замечаний относительно процедуры odesoive(): · Что касается ее аргументов, то последним из них можно указывать число шагов для поиска решения. · Как отмечалось ранее, уравнения могут решаться различными математическими методами. По умолчанию в рамках процедуры odesoive() решение ищется по методу Рунге-Кутта с переменным шагом. Можно задать адаптивный метод или метод решения жестких уравнений. Для этого нужно выделить процедуру odesoive() и щелкнуть правой кнопкой мыши. В раскрывающемся списке есть несколько команд, позволяющих выбрать требуемый метод решения дифференциальных уравнений: команду Adaptive выбирают для адаптивного метода, а команда stiff полезна при решении жестких уравнений и систем. Процедура выбора команды для метода решения показана на Рис. 15. Рис. 15. К объяснению метода Эйлера Пусть дано дифференциальное уравнение:
с начальным условием у0 = у(х0) . Выбрав достаточно малый шаг h , построим, начиная с точки х0, систему равноотстоящих точек xi = x0 + ih (i = 0, 1, 2,...). Вместо искомой интегральной кривой на отрезке [ x0, xi ] рассмотрим отрезок касательной к ней в точке M0(x0, y0), уравнение которой: у= у0 + f(x0, y0) • (х - х0). При x=x1 из уравнения касательной получаем у1 = у0 + h f(х0, у0). Следовательно, приращение функции на первом шаге равно ∆ у0 = h f(х0, y0). Проведя аналогично касательную к интегральной кривой в точке (x1, y1), получим: y = y1+f(x1, y1)*(x-x1), что при х = х2 дает у2 =у1 + h f (x1, y1), т. е. у2 получается из у1 добавлением приращения ∆ y1= hf(x1, y1). Таким образом, вычисление таблицы значений функции, являющейся решением ДУ, состоит в последовательном применении пары формул: ∆ yk=hf(xk, yk), yк+1=yк+∆ yк Метод Эйлера, как видно из рисунка, имеет погрешность. Известны различные уточнения метода Эйлера. Модификации данных методов направлены на уточнение направления перехода из точки (хi, уi) в точку (xi+1, yi+1). Например, в методе Эйлера—Коши (усовершенствованный метод) используют следующий порядок вычислений: y*i+1 =yi+hf(xi, yi), yi+1=yi+ h ( f (xi, yi) + f(xi+1, y*i+1) ) /2, Геометрически это означает, что определяется направление интегральной кривой в исходной точке (хi, уi, ) и во вспомогательной точке (xi+1, y*i+1) , а в качестве окончательного берется среднее значение этих направлений. Пример 1. Решение дифференциального уравнения методом Эйлера. Решить задачу Коши для ДУ y(x) = x + cos — на отрезке [1, 7; 2, 7] при заданном НУ: y(1, 7) =5, 3 и шаге интегрирования h = 0, 1 методом Эйлера с шагом h и h/2. Решение. Ход решения задачи по методу Эйлера приведен на Рис. 16.
Рис. 16. Фрагмент программы с решением уравнения методом Эйлера с шагом с шагом h и h/2. 1. Составим программу, реализующую метод Эйлера (Рис. 17).
Рис. 17. Листинг программы, реализующий метод Эйлера. 2. Получим решение ДУ методом Эйлера с двумя шагами h и h/2( Рис. 18 ). Рис. 18. Нахождение численного решения ДУ методом Эйлера. 3. Ответ: Решением ДУ y(x) = x + cos на отрезке [1, 7; 2, 7] с НУ y(1, 7) =5, 3 методом Эйлера с шагом h и h/2 будет таблица значений ES_h и ES_h2 (Рис. 21).
Пример 2. Решение дифференциальное уравнение усовершенствованным методом Эйлера. 1. Задание функции, реализующей метод Эйлера—Коши ( Рис. 19 ). Аргументы функции: у0 - значение решения в точке х0 ; х0, xl — левый и правый концы интервала вычисления численного решения; N — число сетки, на которой ищется решение ДУ; f — имя функции, стоящей в правой части ДУ. Функция возвращает таблицу, состоящую из двух столбцов, первый столбец— значения аргумента, второй столбец— значения решения ДУ.
Рис. 19. Функция, реализующая метод Эйлера—Коши для ДУ первого порядка. 2. Нахождение численного решения ДУ на интервале [0, 5]: А1: =Euler1(x0, y0, x1, N, f) 3. Визуализация численного решения ( Рис. 20 ).
Рис. 20. Численное решение ДУ y’=x2 полученное методом Эйлера. Дифференциальных уравнений. На практике наиболее часто используют метод Рунге—Кутты четвертого порядка. Пример 3. Решить задачу Коши для ДУ y(x) = x + cos — на отрезке [1, 7; 2, 7] при заданном НУ: y(1, 7) =5, 3 и шаге интегрирования h = 0, 1 методом Рунге-Кутты четвертого порядка с шагом h и 2h. Решение. 1. Вводим данные задачи: f(x, y): = x +cos а: = 1.7 b: = 2.7 h: = 0.1 п: = у0: = 52 i: = 0..п 2. Составим функцию, возвращающую решение ДУ первого порядка методом Рунге—Кутты ( Рис. 21). Здесь: fn — заданная функция; a, b — концы отрезка; h — шаг; у0 — начальное значение функции.
Рис. 21. Листинг функции, возвращающей численное решение ДУ методом Рунге-Кутты. Ответ: Решением ДУ y(x) = x + cos на отрезке [1, 7; 2, 7] с НУ y(1, 7) =5, 3 методом Рунге-Кутты четвертого порядка с шагом h и 2h будет таблица значений RK_h и RK_2h (Рис. 21).
ЛАБОРАТОРНАЯ РАБОТА № 4. ДИФФЕРЕНЦИРОВАНИЕ СРЕДСТВАМИ Mathcad. Популярное: |
Последнее изменение этой страницы: 2016-05-03; Просмотров: 7837; Нарушение авторского права страницы