Численное дифференцирование применяется в тех случаях, когда либо невозможно, либо очень сложно или дорого продифференцировать функцию аналитически. Из-за быстрого накопления ошибок при численном вычислении старших производных обычно ограничиваются нахождением первой и второй производной по формулам (4.1.1), (4.1.2) и (4.1.5).
Одним из способов повышения точности вычислений является уменьшение шага до предела, определяемого выражением (4.4.1). Однако если функция задана на сетке, то при численном дифференцировании невозможно выбрать шаг , меньший шага сетки, и тогда формулы (4.1.1)-(4.1.5) могут давать слишком большую погрешность. В этом случае исходную функцию часто аппроксимируют какой-либо гладкой функцией, значение производной от которой принимают за приближенное значение искомой производной.
Пример. Пусть дана функция Найдем ее первую и вторую производные, вычислим правую, левую и центральную первые разностные производные, вторую разностную производную по формуле (4.2.1) на отрезке и исследуем влияние шага на точность вычислений.
|
|
Легко проверить, что Выберем первоначально Введем с клавиатуры исходные данные и построим графики :
Первая и вторая производные этой функции уже найдены. Однако это можно было сделать в среде пакета Mathcad, причем двумя способами: с помощью панели инструментов Calculus (Панель операций математического анализа) и через меню символьных операций Symbolics.
С помощью меню производная находится следующим образом. В рабочий документ надо ввести выражение дифференцируемой функции, выделить синим уголком аргумент (переменную дифференцирования) и щелкнуть по строке Differentiate в пункте Variable меню Symbolics:
Ниже появится выражение для производной:
Выделяем все выражение и выбираем пункт Simplify в меню Symbolics. Ниже получим
Вторая возможность связана с оператором символьных преобразований и оператором символьных преобразований с ключевым словом панели ключевых
слов символьных выражений. Набираем оператор. В квадратик вставляем опера-тор из панели Calculus. После щелчка вне этого оператора слева от него появляется выражение для производной, которое можно упростить, выбрав оператор simplify в той же панели ключевых слов символьных выражений. В итоге получим следующее выражение:
Аналогичные действия нужно выполнить для нахождения второй производной, которая сразу получается в окончательном виде и более не упрощается оператором simplify.
Вводим с клавиатуры следующую информацию:
В точке возможно вычисление только правой разностной производной по формуле (4.1.1), в точке - только левой. Центральная разностная производная по формуле (4.1.5) не может быть посчитана при и . Вводим следующую часть программы:
|
|
Наконец, находим вторую разностную производную по формуле (4.2.1). Она также не может быть посчитана в первой и последней точках заданной сетки узлов:
Уменьшим теперь шаг, например, в четыре раза. Для построения графиков необходимо пересчитать все значения функции и производных во всех новых точках сетки. Скопируем всю программу вместе с графиками после оператора Для этого надо, нажав левую мышку и не отпуская ее, обвести копируемую часть пунктирной линией. Затем щелкнуть по любому месту обведенной части правой мышкой. Появится дополнительное меню
Необходимо выбрать пункт копирования (Copy). Обведенная пунктирной линией часть программы скопируется в буфер обмена. Затем необходимо подвести курсор к нужному месту окна рабочего документа. Щелкнув в этом месте еще раз правой мышкой, раскроем то же дополнительное меню и выберем на этот раз пункт вставки (Paste). Копируемый кусок программы поместится ниже курсора. Приведем здесь лишь графики первых и вторых производных.
Видно, что точность представления производных заметно возросла. На первом графике первая центральная разностная производная, а на втором графике вторая разностная производная практически совпали с точными значениями, вычисленными по аналитическим выражениям:
Задание № 1. Для данных функций построить правую, левую и центральную первые разностные производные, вторую разностную производную на указанном интервале с данными шагами сетки и сравнить полученные значения с точными значениями производных:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
В среде Mathcad возможно численное интегрирование заданных функций и символьное интегрирование. Символьное интегрирование можно выполнить двумя способами, так же как и дифференцирование: с помощью панели операций математического анализа и через меню символьных операций.
С помощью меню нужно выполнить аналогичные действия, что и при дифференцировании: ввести выражение интегрируемой функции, выделить аргумент и щелкнуть по строке Integrate в пункте Variable меню Symbolics. В случае и получим
Таким образом, только интеграл от имеет действительное аналитическое выражение, выражается в комплексном виде. Аналогичный результат получается при использовании оператора символьных преобразований
Численное интегрирование также можно осуществить двумя путями: с помощью панели операций математического анализа и панели равенств и отношений.
В среде Mathcad знак означает числовой, а знак символьный вывод значения переменной, функции или выражения, записанного до этого знака. При численном интегрировании удобнее пользоваться оператором . В нашем случае
Формулы численного интегрирования (4.5.3), (4.5.4) и (4.5.6) настолько просты, что значение интеграла можно подсчитать, используя несколько арифметических операторов или с помощью небольшой подпрограммы. Например, формула центральных прямоугольников реализуется таким образом:
Подпрограмма вычислений по формуле парабол (4.5.6) может быть такой:
Ее параметры: - интегрируемая функция, которая должна быть ранее определена в программе, - пределы интегрирования, - число точек сетки (четное число для формулы парабол).
Задание № 2. Найти численное значение интеграла от функций, указанных в задании № 1, на заданном промежутке. При вычислении по подпрограмме parab выбрать , соответствующее меньшему значению шага.
Содержание
Ирина Николаевна Двойцова