Кирьянов Д. - MathCad 11 (1077323), страница 28
Текст из файла (страница 28)
разд. 7.2) — самые простые, с вычислительной точки зрения, операции, реализованные вMathcad в виде операторов. Тем не менее, если расчеты выполняются с помощью вычислительного процессора, необходимо хорошо представлять себеособенности численных алгоритмов, действие которых остается для пользователя "за кадром". В тех же разделах (см. 7.1 и 7.2) упоминается и об особенностях символьных операций интегрирования и дифференцирования.7.1. ИнтегрированиеИнтегрирование в Mathcad реализовано в виде вычислительного оператора.Допускается вычислять интегралы от скалярных функций в пределах интегрирования, которые также должны быть скалярами.
Несмотря на то чтопределы интегрирования обязаны быть действительными, подынтегральнаяфункция может иметь и комплексные значения, поэтому и значение интеграла может быть комплексным. Если пределы интегрирования имеют размерность (см. разд. "Размерные переменные" гл. 4), то она должна быть однойи той же для обоих пределов.7.1.1. Операторы интегрированияИнтегрирование, дифференцирование, как и множество других математических действий, устроено в Mathcad по принципу "как пишется, так и вводится". Чтобы вычислить определенный интеграл, следует напечатать егообычную математическую форму в документе. Делается это с помощью па-Часть III. Численные методы168нели Calculus (Вычисления) нажатием кнопки со значком интеграла иливводом с клавиатуры сочетания клавиш <Shift>+<7> (или символа "&").Появится символ интеграла с несколькими местозаполнителями (рис. 7.1), вкоторые нужно ввести нижний и верхний интервалы интегрирования, подынтегральную функцию и переменную интегрирования.Внимание!Можно вычислять интегралы с одним или обоими бесконечными пределами.Для этого на месте соответствующего предела введите символ бесконечности,воспользовавшись, например, той же самой панелью Calculus (Вычисления).Чтобы ввести -« (минус бесконечность), добавьте знак минус к символу бесконечности, как к обычному числу.iftЩ; 4?efiniteIntegraSlhfit+7•diРис.
7 . 1 . Оператор интегрированияЧтобы получить результат интегрирования, следует ввести знак равенстваили символьного равенства. В первом случае интегрирование будет проведено численным методом, во втором — в случае успеха, будет найдено точное значение интеграла с помощью символьного процессора Mathcad. Этидва способа иллюстрирует листинг 7.1. Конечно, символьное интегрирование возможно только для небольшого круга несложных подынтегральныхфункций.Листинг 7.1.
Численное и символьное вычисление определенного интегралаs i n (x) dx = 2s i n ( x) dx —> 2ПримечаниеПодынтегральная функция может зависеть от любого количества переменных.Именно для того чтобы указать, по какой переменной Mathcad следует вычислять интеграл, и нужно вводить ее имя в соответствующий местозаполнитель.Глава 7. Интегрирование и дифференцирование169Помните, что для численного интегрирования по одной из переменных предварительно следует задать значение остальных переменных, от которых зависитподынтегральная функция и для которых вы намерены вычислить интеграл(листинг 7.2).Листинг 7.2.
Интегрирование функции двух переменныхпо разным переменныма := 2па • s i n (x) dx = 4ох := 110а • s i n (x)da = 42.074^ПримечаниеОператор интегрирования может использоваться точно так же, как и другиеоператоры: для определения функций, в циклах и при вычислении ранжированных переменных. Пример присваивания пользовательской функции д ( х ) значения определенного интеграла и вычисления нескольких ее значений приведен в листинге 7.3.Листинг 7.3.
Использование оператора интегрированияв функции пользователя(a) :gl,a^:i := 1 ..Jлaa -si• sin(x)dx5g (i) =246107.1.2. Об алгоритмах интегрированияРезультат численного интегрирования — это не точное, а приближенноезначение интеграла, определенное с погрешностью, которая зависит отвстроенной константы TOL. Чем она меньше, тем с лучшей точностью будетнайден интеграл, но и тем больше времени будет затрачено на расчеты. ПоЧасть III.
Численные методы170умолчанию TOL=O.001. Для того чтобы ускорить вычисления, можно установить меньшее значение TOL.СоветЕсли скорость расчетов имеет для Вас принципиальное значение, напримерпри многократном вычислении интеграла внутри цикла, проявите осторожность,выбирая значение точности. Обязательно поэкспериментируйте на тестовомпримере с характерной для Ваших расчетов подынтегральной функцией. Посмотрите, как уменьшение константы TOL сказывается на погрешности интегрирования, вычислив интеграл для разных ее значений и выбрав оптимальное,исходя из соотношения точность / скорость вычислений.Отдавайте себе отчет в том, что при вводе в редакторе Mathcad операторачисленного интегрирования, Вы, фактически, создаете самую настоящуюпрограмму. Например, программой является первая строка листинга 7.1,просто большая часть ее скрыта от Вашего взора разработчиками компанииMathSoft.
В большинстве случаев об этом не приходится специально задумываться, можно полностью положиться на Mathcad. Но иногда может потребоваться умение управлять параметрами этой программы, как мы ужерассмотрели на примере выбора константы TOL. Кроме нее, пользовательимеет возможность выбирать сам алгоритм численного интегрирования. Дляэтого:1. Щелкните правой кнопкой мыши в любом месте на левой части вычисляемого интеграла.2. В появившемся контекстном меню выберите один из четырех численныхалгоритмов {рис. 7.2),1_W fiutoSelectRomberg•щшшInfinite LimitSingular EndpointИ PasteUS' Properties...Qisable EvaluationРис.
7.2. Выбор алгоритма численного интегрированияГлава 7. Интегрирование и дифференцирование171Обратите внимание, что, перед тем как один из алгоритмов выбран впервые, как показано на рис. 7.2, флажок проверки в контекстном меню установлен возле пункта AutoSelect (Автоматический выбор). Это означает, чтоалгоритм определяется Mathcad, исходя из анализа пределов интегрирования и особенностей подынтегральной функции. Как только один из алгоритмов выбран, этот флажок сбрасывается, а избранный алгоритм отмечаетсяточкой.Разработчиками Mathcad И запрограммированы четыре численных методаинтегрирования:О Romberg (Ромберга) — для большинства функций, не содержащих особенностей;• Adaptive (Адаптивный) — для функций, быстро меняющихся на интервале интегрирования;• Infinite Limit (Бесконечный предел) — для интегралов с бесконечнымипределами ();О Singular Endpoint (Сингулярная граница) — для интегралов с сингулярностью на конце.
Модифицированный алгоритм Ромберга для функций,не определенных на одном или обоих концах интервала интегрирования.Старайтесь все-таки оставить выбор численного метода за Mathcad, установив флажок AutoSelect (Автоматический выбор) в контекстном меню. Попробовать другой метод можно, например, чтобы сравнить результаты расчетов в специфических случаях, когда у Вас закрадываются сомнения в ихправильности.Если подынтегральная функция "хорошая", т.
е. не меняется на интервалеинтегрирования слишком быстро и не обращается на нем в бесконечность,то численное решение интеграла не принесет никаких неприятных сюрпризов. Приведем основные идеи итерационного алгоритма Ромберга, которыйприменяется для большинства таких функций.П Сначала строится несколько интерполирующих полиномов, которыезаменяют на интервале интегрирования подынтегральную функциюf(x). В качестве первой итерации полиномы вычисляются по 1,2 и 4интервалам. Например, первый полином, построенный по 1 интервалу, — это просто прямая линия, проведенная через две граничные точкиинтервала интегрирования, второй — квадратичная парабола и т. д.•Интеграл от каждого полинома с известными коэффициентами легковычисляется аналитически. Таким образом, определяется последовательность интегралов от интерполирующих полиномов: i i , i 2 , i i t . .
.Например, по правилу трапеций i ^ t b - a M f (a)+f (Ь)) /2 и т. д.172Часть Ш. Численные методы•Из-за интерполяции по разному числу точек вычисленные интегралыii, i 2 , • • • несколько отличаются друг от друга. Причем, чем больше точек используется для интерполяции, тем интеграл от интерполяционного полинома ближе к искомому интегралу, стремясь к нему в пределебесконечного числа точек. Поэтому определенным образом осуществляется экстраполяция последовательности i 1 ( i 2 , i 4 , .. .
до нулевой ширины элементарного интервала. Результат этой экстраполяции j принимается за приближение к вычисляемому интегралу.•Осуществляется переход к новой итерации с помощью еще более частого разбиения интервала интегрирования, добавления нового члена последовательности интерполирующих полиномов и вычисления новогоN(N-ГО) приближения Ромберга J .О Чем больше количество точек интерполяции, тем ближе очередное приближение Ромберга к вычисляемому интегралу и, соответственно, темменьше оно отличается от приближения предыдущей итерации. Кактолько разница между двумя последними итерациями |J M -J M ~ Х \ становится меньше погрешности TOL ИЛИ меньше T O L | J N | , итерации прерываются, и J N появляется на экране в качестве результата интегрирования.ПримечаниеОб алгоритме полиномиальной сплайн-интерполяции см .гл.
15.7.1.3. О расходящихся интегралахЕсли интеграл расходится (равен бесконечности), то вычислительный процессор Mathcad может выдать сообщение об ошибке, выделив при этомоператор интегрирования, как обычно, красным цветом. Чаще всего ошибкабудет иметь тип "Found a number with a magnitude greater than 10 A 307" (Най-дено число, превышающее значение ю 3 0 7 ) или "Can't converge to a solution"(He сходится к решению), как, например, при попытке вычислить интегралf -L-dx- Тем не менее, символьный процессор справляется с этим интеградом, совершенно правильно находя его бесконечное значение (листинг 7.4).| Листинг 7.4. Символьное вычисление расходящегося интеграла\Глава 7.
Интегрирование и дифференцированиеПримечание173JСимвольный процессор предоставляет замечательные возможности аналитического вычисления интегралов, в том числе зависящих от параметров и неопределенных интегралов, как показано в листингах 7.5 и 7.6. Об этоми о вычислении интегралов с помощью меню Symbolics (Символика), упоминалось в гл. 5.::•::•'• : :•• " ""' :• 7Листинг 7.5. Символьное вычисление интеграла с переменным пределомdx -» 2 • а};IЛистинг 7.6. Символьное вычисление неопределенного интеграла11d x -> 2 • хПри попытке численного решения задачи из листинга 7.4 методом, отличным от алгоритма вычисления интегралов с бесконечными пределами (Infinite Limit), будет получено неверное решение (листинг 7.7) — вместобесконечности выдано большое, но конечное число, немного не дотягивающее до численной бесконечности, являющейся для вычислительногопроцессора просто большим числом ю 3 0 7 (см.