Лекция 5. Итерационные методы решения уравнений и систем
5.1 Простая итерация. Уравнения с одним неизвестным. Пусть задана непрерывная функция f(x) и требуется найти все или некоторые корни уравнения
Эта задача распадается на несколько задач. Во-первых, надо исследовать характер и расположение корней. Во-вторых, найти приближенные значения корней. В-третьих, выбрать из них интересующие нас корни и вычислить их с требуемой точностью. Первая и вторая задачи решаются аналитическими и графическими методами. Например, многочлен
имеет n комплексных корней, не обязательно различных, и все корни лежат внутри круга
Когда ищутся только действительные корни уравнения, то полезно составить таблицу значений f(x). Если в двух соседних узлах таблицы функция имеет разные знаки, то между этими узлами лежит нечетное число корней уравнения (по меньшей мере один). Если эти узлы близки, то, скорее всего, корень между ними только один. Но выявить по таблице корни четной кратности сложно. По таблице можно построить график функции y=f(x) и графически найти точки его пересечения с осью абсцисс. Этот способ более нагляден и дает неплохие приближенные значения корней. Во многих задачах такая точность уже достаточна. В технике еще популярны графические методы решения уравнений (номография). Построение графика зачастую позволяет выявить даже корни четной кратности. Иногда удается заменить уравнение (5.1.1) эквивалентным ему уравнением φ(x) = ψ(x), в котором функции Дихотомия (деление пополам). Пусть мы нашли такие точки
Если требуется найти корень с точность ε, то продолжаем деление пополам до тех пор, пока длина отрезка не станет меньше 2ε. Тогда середина последнего отрезка даст значение корня с требуемой точностью. Дихотомия проста и очень надежна: к простому корню она сходится для любых непрерывных функций f(x), в том числе недифференцируемых; при этом она устойчива к ошибкам округления. Скорость сходимости невелика: за одну итерацию точность увеличивается примерно вдвое, т.е. уточнение трех цифр требует 10 итераций. Зато точность ответа гарантируется. Перечислим недостатки метода. Для начала расчета надо найти отрезок, на котором функция меняет знак. Если в этом отрезке несколько корней, то заранее неизвестно, к какому из них сойдется процесс (хотя к одному из них сойдется). Метод неприменим к корням четной кратности. Для корней нечетной высокой кратности он сходится, но менее точен и хуже устойчив к ошибкам округления, возникающим при вычислении f(x). Наконец, на системы уравнений дихотомия не обобщается. Дихотомия применяется тогда, когда требуется высокая надежность счета, а скорость сходимости малосущественна.
Рис. 5.1. Рис. 5.2. Удаление корней. Один из недостатков дихотомии – сходимость неизвестно к какому корню – имеется почти у всех итерационных методов. Его можно устранить удалением уже найденного корня. Если
Поэтому найденный корень можно удалить, т.е. перейти к функции = Строго говоря, мы находим лишь приближенное значение корня Кроме того, в любом методе окончательные итерации вблизи определяемого корня рекомендуется делать не по функциям типа Учитывая эти предосторожности и вычисляя корни с 8-10 верными десятичными цифрами, зачастую можно определить десятка два корней, о расположении которых заранее ничего не известно (в том числе корней высокой кратности p~5). Метод простых итераций. Заменим уравнение (5.1.1) эквивалентным ему уравнением
Очевидно, если Исследуем условия сходимости. Если
где точка ξ лежит между точками
Очевидно, что чем меньше q, тем быстрее сходимость. Вблизи корня асимптотическая сходимость определяется величиной Значит, успех метода зависит от того, насколько удачно выбрано
Первый процесс вообще не сходится, а второй сходится при любом Каков практический критерий сходимости, т.е. когда надо прекращать итерации (5.1.2)? Из (5.1.3) видно, что если Вблизи корня итерации сходятся примерно, как геометрическая прогрессия со знаменателем
При выполнении этого условия итерации можно прекращать. Метод простых итераций и почти все другие итерационные методы имеют важное достоинство: в них не накапливаются ошибки вычислений. Ошибка вычислений эквивалентна некоторому ухудшению очередного приближения. Но это отразится только на числе итераций, а не на точности окончательного результата. Подобные методы устойчивы даже по отношению к грубым ошибкам (компьютерного сбоя), если только ошибка не выбрасывает очередное приближение за пределы области сходимости. Метод Ньютона. Он называется также методом касательных или методом линеаризации. Если
Приближенно заменяя
Метод Ньютона можно рассматривать как частный случай метода простых итераций, если положить Сходимость вблизи любого корня монотонна, что легко видеть на рис. 28; но вдали от корня возможна немонотонность итерации. Отметим, что рис. 28 указывает еще на одно достаточное условие сходимости итерации. Пусть Оценим скорость сходимости вблизи простого корня. По определению простых итераций,
т.е. погрешность очередного приближения примерно равна квадрату погрешности предыдущего приближения. Например, если (n-1) -я итерация давала 3 верных знака, то n-я даст примерно 6 верных знаков, а (n+1) -я – примерно 12 знаков. Это иллюстрирует быструю сходимость вблизи корня. Разумеется, вдали от корня подобные соображения неприменимы. Если вычисляется корень высокой кратности, то Для нахождения корней произвольной дифференцируемой функции чаще всего применяют метод Ньютона, особенно если известны разумные начальные приближения для корней. П р и м е р. Рассмотрим решение уравнения
Мы получили вторую формулу (5.1.4), которая, как отмечалось раньше, позволяет очень быстро находить квадратный корень с помощью только сложения и деления. Для иллюстрации в таблице 16 приведен ход итерации при извлечении квадратного корня из а = 4. Видно, что сходимость очень быстрая; несмотря на неважное нулевое приближение, уже третья итерация дает точность 0,005%. Попутно можно заметить, что вблизи корня итерация сходится с одной стороны, т.е. монотонно, хотя первая итерация дает переброс на другую сторону корня.
Метод секущих. В методе Ньютона требуется вычислять производную функции, что не всегда удобно. Можно заменить производную первой разделенной разностью, найденной по двум последним итерациям, т.е. заменить касательную секущей. Тогда вместо процесса (5.1.6) получим
Эти небольшие изменения сильно влияют на характер итераций. Например, сходимость итераций может быть немонотонной не только вдали от корня, но и в малой окрестности корня. Скорость сходимости также изменяется. Приведенный в таблице 1 для сравнения расчет по методу Ньютона показывает, что метод секущих сходится медленнее, т.к. в методе Ньютона ошибка убывает быстрей. Но в методе Ньютона на каждой итерации надо вычислять и функцию, и производную, а в методе секущих – только функцию. В знаменателе формулы (5.1.8) стоит разность значений функции; вдали от корня это несущественно, но вблизи корня значения функции малы и очень близки. Возникает потеря значащих цифр, приводящая к «разболтке» счета, что ограничивает точность. От «разболтки» страхуются так называемым приемом Гарвика. Выбирают не очень малое значение ε, ведут итерации до выполнения условия Метод парабол. Метод секущих основан на замене функции ф(х) интерполяционным полиномом первой степени по узлам xn, xn-1. По трем последним итерациям можно построить полином второй степени, т.е. заменить график функции параболой. Примем этот полином в форме Ньютона: P2(x)=f(xn)+(x-xn)f(xn,xn-1) +(x-xn)(x-xn-1)f(xn,xn-1,xn-2). Приравняв его нулю, получим квадратноеуравнение az2+bz+c=0, (5.1.9а) где z =x - xn, a = f(xn,,xn-1 ,xn-2), b=a(xn - xn-1)+f(xn,xn-1), c= f(xn). (5.1.9б) Меньший по модулю из двух корней квадратного уравнения определяет новое приближение xn+1=xn+z. Для начала расчета надо задать три первых приближения х0,х1,х2 (обычно наугад), т.е. процесс является трехшаговым. Метод парабол построен по образцу методов третьего порядка, однако замена производных разделенными разностями приводит к существенному уменьшению скорости сходимости. В этом методе «разболтка» счета вблизи корня сказывается еще больше, чем в методе секущих, т.к. в расчете участвуют вторые разности, но все-таки корни можно найти с хорошей точностью; для определения оптимального числа итераций добно пользоваться приемом Гарвика (см. выше). Метод парабол исключительно эффективен для нахождения всех корней многочлена высокой степени. 5.2. Итерации для линейных систем уравнений (обычный способ). Итерационные методы решения систем линейных уравнений позволяют получить это решение в виде предела последовательности некоторых векторов, построение которых осуществляется посредством единообразного процесса. Для определенности запишем систему линейных уравнений четвертого порядка в виде
Разрешим первое из уравнений относительно x 1 , второе – относительно x 2 и т.д. Тогда эту систему можно переписать в виде x1= α12x2+α13x3+α14x4+α15 x2=α21x1 +α23x3+α24x4+α25 x2=α31x1+α32x2 +α34x4+α35 x2=α41x1+α42x2+α43x3 +α45,(1) где
Система (1) является частным случаем записи вида x1=L1(x1, x2, x3, x4) x2=L2(x1, x2, x3, x4) x3=L3(x1, x2, x3, x4) x4=L4(x1, x2, x3, x4). (3) При этом линейная функция, например, L1(x1, x2, x3, x4) фактически не зависит от x1 согласно (1). Выводы не изменятся, если она будет содержать слагаемое вида α11x1. То же относится к правым частям остальных уравнений. Зададим произвольные начальные значения неизвестных
……………………………..
Полученные первые приближения могут быть таким же образом использованы для получения вторых, третьих и т.д., так что для любого ν можно получить ν -е приближение Можно установить условия, которые обеспечат сходимость получающихся приближений к истинному решению системы x1, x2, x3, x4, для чего достаточно отличия от нуля определителя системы detA≠0. Обозначим через
где xk – точное значение неизвестного в решении системы, которое предполагается существующим. Показано, что для сходимости итерационного процесса к точному решению системы в этом способе достаточно выполнения условия С<1, где С – некоторое число (верхняя грань сумм коэффициентов (2) системы (1) по столбцам. Эти коэффициенты являются отношениями элементов матрицы коэффициентов исходной системы к диагональным элементам. Следовательно, условие С<1 означает, что все коэффициенты должны быть малы по сравнению с диагональными. Это условие можно сформулировать и более точно: для сходимости процесса итераций достаточно, чтобы в каждом столбце сумма отношений коэффициентов системы к диагонадьным элементам, взятым из той же строки, была строго меньше единицы. Эти выводы можно использовать для оценки погрешности очередного приближения через разность между двумя последовательными значениями k -го неизвестного на соседних итерациях
Для построения вычислительной схемы удобнее находить не непосредственно значения неизвестных, а поправки к предыдущим значениям. За нулевые приближения значений неизвестных в системе (1) можно принять свободные члены соответствующих уравнений:
Пусть
При этом значения
Равенства (11) можно переписать в виде
где
откуда
После несложных преобразований получим выражение для поправки первого неизвестного на ν -й итерации:
Аналогичные формулы, позволяющие определять последующие поправки через предыдущие, получаются и для остальных трех неизвестных. Окончательно для первого неизвестного
аналогично для других неизвестных. Вообще,
рекуррентные формулы (14) являются исходными для построения вычислительной схемы в обычной постановке.
5.3. Способ Зейделя. При рассмотрении обычного способа итерации для отыскания очередного приближения значений неизвестных мы пользовались формулами x1(ν) =L1 (x1(ν-1), x1(ν-1),…), x2(ν) =L1 (x2(ν-1), x2(ν-1),…), (1) ………………………. Иначе говоря, следующее приближение полностью определялось значениями, полученными на предыдущем шаге. Между тем уже при построении первого приближения можно, например, вычисляя значение x 2(1) , воспользоваться для x 1 не нулевым приближением x 1(0), а уже полученным нами первым приближением x 1(1) . Вычисляя χ3 , можно использовать уже не только x 1(1), но и x 2(1) и т. д. Таким образом, вместо формул (1) предлагается использовать для отыскания следующего приближения формулы такого вида (мы снова пишем их для конкретного случая системы четырех уравнений с четырьмя неизвестными):
Это изменение и составляет идею итераций по способу Зейделя. Естественно ожидать, что итерации по способу Зейделя дадут при том же числе шагов более точные результаты, чем обычные итерации, или, что то же самое, та же точность будет достигнута за меньшее число шагов. Вообще говоря, эти ожидания оправдываются. Однако нужно иметь в виду, что условия сходимости обычного итерационного процесса и итерационного процесса Зейделя различны. Один из этих процессов для данной системы может оказаться расходящимся тогда, когда другой сходится. Вычислительная схема итерационного процесса Зейделя строится, как и для обычных итераций, на вычислении последовательных поправок. Рассмотрим эту схему, ограничившись, для краткости, системой трех линейных уравнений с тремя неизвестными. Формулы для отыскания следующих приближений через предыдущие будут в этом случае иметь вид
Формулы для вычисления поправок легко получить, исходя непосредственно из определения и используя (3). Действительно, для ν-ой итерации
δ1(ν) = так что, δ1(ν) = Для = ( то
Аналогично,
Как и для обычного итерационного процесса, формулы (4)-(6) могут быть использованы для вычисления поправок
то для первых поправок получим выражения
где Расположение вычислений показано в табл. 1. Верхняя часть ее не отличается от обычного способа, а таблица для вычисления поправок имеет уже несколько другой вид: при вычислении очередных поправок в ряде случаев используются уже полученные поправки того же этапа вычислений. Соответствующие места в табл. 1. подчеркнуты. Вычисления продолжаются до получения достаточно малых поправок. Окончательные значения неизвестных получаются по формулам
Таблица 1. Алгоритм способа Зейделя для системы трех уравнений с тремя неизвестными
Воспользуйтесь поиском по сайту: ![]() ©2015 - 2025 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|