Гурский Д., Турбина Е. - Вычисления в MathCad 12 (1077322), страница 80
Текст из файла (страница 80)
Ее же первообразная F(x)=ln(x) принимает действительные значения только при положительных х.Первообразная для f(x)=ctg(x) F(x)=ln(sin(x)) не определена на промежутке от п до2-я — подобных примеров можно привести еще очень много. Прежде чем использоватьтеорему Ньютона-Лейбница, следует проверить, существует ли первообразная на всемпромежутке интегрирования. Если этого не сделать, вероятность ошибки очень высока. Увы, но иногда Mathcad свойственно делать подобные ошибки.
Рассмотрим конкретный пример. Подумаем, какое значение должен принимать следующий интеграл:__dx10.2. Аналитическое вычисление определенного интеграла* 349Так как участки кривой симметричны относительно точки разрыва в х=0, но противоположны по знаку, то, очевидно, данный интеграл должен быть равен 0. Этот результат будет получен при проведении интегрирования численно:А— dx=0Г*Однако при аналитическом интегрировании результатом будет довольно странноекомплексное значение:А19— dx-»Зг43.21-34Чтобы понять, в чем кроется причина ошибки программы, найдем первообразную дляинтегрируемой функции, а затем построим ее график (рис.
10.3).1л3ГV332х23 IРис. 1 0 . 3 . Интегрируемая функция определена на всей числовой оси, кроме точки х=0.Ее первообразная существует лишь при неотрицательных значениях аргументаИтак, использовать теорему Ньютона-Лейбница в случае рассматриваемого интеграла нельзя, так как первообразная не определена в действительной области при Х--1.Mathcad же этого, судя по всему, не учитывает:_1_F(x):=^-xF(l) - F ( - l ) simplify -> - - --i-3443 5 0 •:• Глава 10.
Вычисление интеграловКак избежать ошибок, подобных описанной? Во-первых, строить график интегрируемой функции и, по возможности, ее первообразной. Во-вторых, сопоставлять результаты аналитического и численного интегрирования. В-третьих, главное, не полагатьсяполностью на программу и относиться осторожно к полученным результатам. И помните, что невозможно эффективно использовать Mathcad, посредственно владея математикой. Найти и исправить ошибки при этом просто нереально.10.3. Численное вычислениеопределенного интегралаВ том случае, если системе не удается найти первообразную функции, приходится использовать методы численного интегрирования.
Численное интегрирование в Mathcad — это куда более тонкая операция, чем интегрирование аналитическое. Зачастую,чтобы получить правильный ответ, нужно верно задать точность, выбрать наиболееэффективный алгоритм, проанализировать поведение функции и, при наличии точекразрыва, представить интеграл в виде суммы интегралов... Неплохо также иметь общиепредставления об алгоритмах численного интегрирования, чтобы понимать, в какихслучаях они могут быть использованы, а в каких нет.
Этот раздел посвящен рассмотрению важнейших принципов численного интегрирования в Mathcad.Если вы хотите использовать численный метод, прежде всего присвойте всем параметрам, входящим в интегрируемую функцию, конкретные значения. Пределы интегрирования, естественно, также должны быть числами. В качестве оператора вывода следует использовать оператор численного вывода «=».Пример 10.8. Численный расчет неберущихся интеграловЗя21d x = 4.4431-1sin(x)dx= 1.608х2г-Юdx= 2.501 х 10eln(x)dx=-1.3180В систему Mathcad разработчиками было встроено несколько численных методов интегрирования. Необходимость этого связана с тем, что алгоритмы численного интегрирования не столь универсальны, как алгоритм дифференцирования. Каждый из нихподходит для определенной группы функций или типа интеграла.
Так, например, такие классические методы, как метод трапеций, средних прямоугольников или Симпсона, хороши лишь в случае гладких непрерывных функций и небольшого интервалаинтегрирования. Для того же, чтобы подсчитать интеграл с бесконечным пределом илиинтеграл от функции, имеющей точку разрыва второго рода на границе промежутка,нужно использовать принципиально другие подходы, отличающиеся от банальногоразбиения на равные элементарные отрезки.10.3.
Численное вычисление определенного интеграла* 351Чтобы произвести смену численного метода, щелкните правой кнопкой мыши на операторе интегрирования. При этом откроется его контекстное меню, содержащее список вариантов возможных алгоритмов интегрирования.•AutoSelect (Автоматический выбор). Метод интегрирования выбирается системойавтоматически. Лучше всего, если по умолчанию у вас будет отмечен именно этотпункт. В большинстве случаев этого вполне достаточно для того, чтобы интегралбыл подсчитан максимально правильно и без вашего участия. Однако опыт показывает, что в некоторых ситуациях (прежде всего при наличии точек разрыва), система может не справляться с правильным выбором численного метода (э"то" связано с тем, что, как правило, автоматически Mathcad выбирает либо адаптивныйметод (Adaptive), либо метод бесконечного предела (Infinite Limit)).
Если вы столкнулись с проблемой при вычислении интеграла, попробуйте сменить алгоритм подсчета. Для этого вам нужно сделать правильный выбор из следующих четырех методов.•Romberg (Ромберга). Весьма эффективный метод, применяемый для вычисленияинтегралов от функций, не имеющих особенностей (разрывов первого и второгорода, областей резкого изменения). Является основным в Mathcad. Упрощенно егоможно описать следующими шагами:1)в качестве самого первого приближения вычисляется значение площади трапеции, основания которой проведены через границы промежутка интегрирования;2) затем запускается цикл. На каждом его круге шаг уменьшается вдвое.
На первомобороте цикла вычисляется приближение по формуле трапеций из того условия,что интервалов интегрирования уже 2. На втором круге шаг будет уменьшен в четыре раза относительно первоначального, и соответственно трапеций также будет просуммировано четыре. И так далее до тех пор, пока не будет выполненоусловие остановки цикла;3) в качестве условия остановки цикла в методе Ромберга обычно используют критерий разности двух последних приближений. В том случае, если разность помодулю окажется меньше TOL, то цикл будет остановлен и в качестве ответа будетвыдано последнее приближение.Данное выше описание метода Ромберга является предельно упрощенным.
Реально жеданный метод, за счет использования ускоряющих сходимость и увеличивающих точностьматематических приемов, куда более сложен (обстоятельно его мы разберем в разд. 10.6).Но несколько важных выводов можно сделать даже из такого примитивного описания.•Точность результата численного интегрирования всегда выше или равна TOL. Поэтому, если нужно получить ответ, правильный до пятого знака мантиссы, TOL нужноприсвоить значение 10"5.•Чем выше TOL, тем больше оборотов должен будет проделать цикл алгоритма. Следовательно, время расчета резко возрастает с увеличением TOL.
Это может быть существенно в случае кратных интегралов или при интегрировании функции на широком интервале.•В любых численных расчетах на компьютере имеется погрешность, у которой естьсвойство накапливаться. Если расчет интеграла потребует слишком большого количества итераций, то погрешность может значительно превысить уровень желаемой точности. Чтобы этого не произошло, в реализацию метода Ромберга Mathcadвведено ограничение на количество итераций. Если оно будет превышено, то система возвратит сообщение об ошибке: Can't converge to a solution (He сходится к решению). Это означает, что не стоит стремиться присвоить TOL минимальное значение,3 5 2 • Глава 10.
Вычисление интеграловдабы получить максимально точный результат. При этом интегрирование почтинаверняка не будет успешным. Обычно минимальное значение TOL для метода Ромберга лежит в пределах от 10~5 до 10~10.• Очевидно, что алгоритм Ромберга не предназначен для интегрирования функцийс разрывами.
Причем это касается как разрывов 2-го рода (в случае которых численное интегрирование в принципе возможно лишь, если первообразная в соответствующих точках непрерывна или имеет разрыв первого рода), так и разрывов 1-города, при наличии которых, казалось бы, подсчет интеграла не должен представлятьособой сложности. Чтобы проинтегрировать функцию с разрывами первого рода,используйте адаптивный алгоритм (если для этого применить метод Ромберга, тоответ будет получен с большой погрешностью или же алгоритм попросту не сойдется). Об особенностях интегрирования при наличии точек разрыва 2-го рода мы поговорим в следующем разделе.Численные методы интегрирования схожи в основных своих идеях. Поэтому те выводы, которые мы сделали на основании анализа метода Ромберга, можно автоматическиперенести и на остальные реализованные в Mathcad методы.
Особенно важно запомнить сведения о ключевой роли системной константы TOL для получения точного результата. На примере продемонстрируем как, уменьшая TOL, можно добиться нужнойточности ответа.Пример 10.9. Влияние TOL на точность численного интегрированияТочность численного интегрирования мы будем оценивать, сравнивая результаты, полученныечисленными методами, с точным аналитическим решением:standard :=sin(x)I599dx-> - +я1 + cos(x)62Последовательно уменьшая величину TOL, посмотрим, как это будет влиять на точность результата:/•100лsin(x)•dx-standard =-0.0213185000799291 + cos(x),-2TOL:=10я6г 100 л7•dx-standard =-4.92834374199447x101 + cos(x)T O L .= 106г-ЮОл.-12TOL:=10•dx-standard =3.82556208933238x101 + cos(x)ИЕсли уменьшить TOL до 10~'3, алгоритм не сойдется (рис.
10.4). Следовательно, полученный при12TOL=10" ответ является максимально точным в случае использования метода Ромберга.10.3. Численное вычисление определенного интегралаTOL:= 10-13-100 яяJ* 3532sm^xidx-• standard = • •+ cos(x)_6I Can't converge lo a solution. |Рис. 10.4. Если TOL присвоено слишком малое значение, то численный алгоритм не сойдется• Adaptive (Адаптивный).
Метод, предназначенный для вычисления интегралов отфункций, быстро изменяющихся на промежутке. Главная идея, лежащая в его основе, заключается в том, что ширина интервала разбиения не постоянна, как в случае метода Ромберга, а изменяется в зависимости от скорости изменения функции.В большинстве случаев данный алгоритм дает более точный результат, чем методРомберга (поэтому он используется Mathcad по умолчанию). Впрочем, как правило, различия между ответами этих численных алгоритмов начинаются после 9-10-гознака, поэтому нет принципиальной разницы, какой из них использовать при решении обычных практических задач. Впрочем, одно существенное преимущество у адаптивного метода есть.