Гурский Д., Турбина Е. - Вычисления в MathCad 12 (1077322), страница 60
Текст из файла (страница 60)
Решение уравнений • 2 6 1Чтобы упростить уравнение, используем тот факт, что подстепенные выражения в нем являютсясопряженными и поэтому их перемножение даст целое число:(l + /з)-(2 - >/з) expand ->Отсюда:2-.i/5Используя данное равенство, так преобразуем уравнение, чтобы в нем был только один вид подстепенного выражения. Упрощенное таким образом уравнение оператор solve без проблем решит:substitute^ ->/з =(2-^3) X2-V32+x/3solve,хsimplifyЕсли, несмотря на все ухищрения, аналитически решить уравнение не удастся, следует попытаться найти его решения хотя бы численно. Как это сделать, подробно описывается в следующем разделе.8.1.2.
Численное решение уравненийДалеко не все уравнения можно решить аналитически. Это можно сделать лишь в случае отдельных, «удобных» уравнений. На практике же приходится работать с уравнениями, включающими разнородные функции (что, как правило, автоматически означает невозможность символьного решения) или с очень неудобными коэффициентами.Справиться со многими из них привычным преобразованием или заменами никакне получится.
Что же делать?Естественно, если вам попадется такое «нерешаемое» уравнение, вы попытаетесьпросто подобрать корни. Для этого вы будете подставлять какие-то значения переменной (выбор которых, скорее всего, в основном будет определяться вашей интуицией) в надежде на то, что какое-то из них обратит уравнение в нуль. К сожалению,такой способ весьма малоэффективен на практике: подставив десяток-другой значений, вы, почти наверняка, предпочтете удовлетвориться мыслью о том, что данноеуравнение не имеет решений вовсе, чем продолжать эту чрезвычайно неинтереснуюработу.Но если у вас есть компьютер с системой Mathcad, то никаких проблем с поиском решения не будет, вне зависимости от сложности уравнения. Конечно, аналитическое решение компьютер не всегда найдет даже для очень простых уравнений (в этом покачеловек значительно превосходит машину), но зато, ввиду колоссальной, по сравнениюс человеческой, скоростью обработки данных, очень эффективными становятся так называемые численные методы.2 6 2 • Глава 8.
Решение уравнений и систем уравненийВ основе всех численных методов решения уравнений лежит принцип подбора. Но,в отличие от подбора возможных корней человеком, в численных методах этот процессявляется строго направленным. Основным понятием численных методов является итерация. Итерация — это, буквально, «повторение», то есть все численные методы решения уравнений построены на принципе повторения одного и того же действия илипоследовательности действий, результатом которых является большее или меньшееприближение некоторого промежуточного значения переменной к корню. Поэтомучисленные методы решения уравнений называются еще итерационными. Количествонеобходимых итераций определяется скоростью сходимости алгоритма (эффективностью) и особенностями уравнения.
Эффективность различных численных алгоритмовможет различаться весьма значительно, но это не значит, что всегда стоит избирать изних наиболее быстрый: чем выше скорость сходимости к решению, тем, как правило,выше чувствительность алгоритма к разного рода трудностям (многочисленным экстремумам, разрывам или недифференцируемости в некоторых точках).Для численного поиска решений уравнений с одним неизвестным в Mathcad существует специальная встроенная функция root (с англ. — корень). Функция эта может использоваться в двух различных формах, при этом реализуются разные численныеалгоритмы. Так, если определена только одна точка приближения к корню, поиск решений будет осуществляться так называемым методом секущих (или, в случае неудачи использования метода секущих, его более эффективной модификацией — методомМюллера (Muller)). Если же задан интервал, на котором предположительно локализовано решение, то поиск его будет осуществлен с применением двух модификаций метода Больцано деления пополам (метода бисекции) — методов Риддера (Ridder) и Брента (Brent).
Идеи всех этих методов, их достоинства и слабые места мы подробно обсудимв этом разделе.Если необходимо найти корень некоторого уравнения, причем известен интервал,в котором он локализован, проще всего использовать функцию root с четырьмя аргументами: root(f(x),x,a,b), где f(x) — функция, определяющая уравнение, х — переменная,а и b — границы интервала локализации. Обязательным условием является то, что значения функции на концах интервала должны быть противоположных знаков. Это связано с особенностью используемых root алгоритмов. Если нарушить это условие, система выдаст сообщение об ошибке.
Также функция f(x) должна быть ограниченнойи непрерывной на промежутке (а, Ь). Если же она имеет точку разрыва на этом промежутке, то численный метод может не сойтись.Пример 8.10. Численное решение уравнения при известном интервалелокализации корняПопробуем протестировать функцию root и для этого найдем корни какого-нибудь уравнения,точное решение которого очевидно. К примеру, возьмем уравнениеcosСх\-=0все корни которого имеют вид n/4+(7t/2)xN (Ne R, где R — множество целых чисел). Попробуемнайти первое положительное решение. Очевидно, что таковым будет х=я/4 (что очень хорошовидно на рис. 8.3).Посмотрим, однако, найдет ли этот корень функция root.
Интервал локализации определимот 0 до я/3:8.1. Решение уравнений • 2 6 3root f(x),x,0, - I = 0.25лРис. 8.3. График функции, соответствующей уравнениюПрограмма не подвела: решение найдено в точности. Попробуем решить это уравнение с другиминтервалом локализации:rootf f(x),x,0,— ) = 1.25яВ приведенном выше примере при использовании второго интервала приближенияполученный результат отличается от решения для первого интервала, хотя кореньх=0.25п принадлежит обоим интервалам. Все дело в том, что в этом же промежуткенаходится еще один корень, и заранее предсказать, какой именно из них будет выданв качестве ответа, затруднительно.
Поэтому следует ввести еще одно ограничение дляприменения функции root в рассматриваемой форме: на промежутке должен быть локализован только один корень. В тех случаях, когда определить границы такой локализации невозможно, следует применять функцию root с одной точкой приближения(то есть перейти от методов интервалов локализации корня к методам, основанным наметоде секущих). Хотя практически всегда определить нужный промежуток можнои чисто визуально, предварительно построив график. Вообще, строить график всегдажелательно, когда вы используете численные методы: это самый надежный способ избежать ошибок и не потерять корни.Очень важной характеристикой решения является его точность.
В Mathcad можно регулировать величину погрешности решения, изменяя значение специальной системной переменной TOL (от англ. tolerance — точность). В общем случае, чем меньше ТОЦтем точнее будет найден корень, но и тем больше времени уйдет на его определение(а также будет выше риск, что численный метод не сойдется к решению).Строго говоря, TOL — это параметр, количественно определяющий условия прекращения итераций. Судить о том, что численный метод сошелся к решению, можно по двумкритериям. Во-первых, можно реализовать численный метод так, что цикл алгоритма2 6 4 •:• Глава 8.
Решение уравнений и систем уравненийостановит свою работу и выдаст последнее значение приближения к корню рп, еслиf(pn) примет значение, меньшее по модулю, чем TOL. Во-вторых, можно считать, что достаточная точность уже достигнута, если два последних приближения различаются навеличину, по абсолютному значению меньшую TOL: I pn-pn.,l <TOL Какой из подходов луч ше? По большому счету, они равнозначны. Если используется критерий I f(pn)l <TOL, торешение будет локализовано в горизонтальной области, ограниченной параллельными оси X прямыми Bhi,n(x)=TOL, Blow(x)=-T0L (рис.
8.4). Если функция изменяетсябыстро, то она пересечет границы области достаточно близко от корня. Это гарантирует то, что точность приближения к корню будет хорошей. Однако если функция изменяется очень медленно, может оказаться так, что точка, выданная как приближение к корню, реально располагается очень далеко от него (см. нижнюю частькривой на рис. 8.4).Рис. 8.4. Геометрическая интерпретация TOLЕсли в качестве критерия сходимости численного метода используется модуль разности двух последних приближений, то решение будет находиться в вертикальной области, ограниченной параллельными оси Y прямыми с абсциссами r-а и г+b, где г — истинная координата корня. Численно найти а и b непросто, но можно, если знать, какойалгоритм по отношению к какой функции используется. Рассматриваемый критерийхорош, если функция вблизи корня изменяется относительно медленно. Если же онаизменяется очень быстро, то может оказаться так, что найденному решению будет соответствовать очень большое значение функции, которое даже с учетом округления неудовлетворит обязательному условию существования корня f(r)=O (см.