РЕШЕНИЕ ТРАНСЦЕНДЕНТНЫХ УРАВНЕНИЙ
Постановка задачи
Во многих инженерных и научных задачах возникает необходимость решения уравнений вида:
F (x, a 1, a 2,..., a k) = 0 | (3.1) |
где F - заданная непрерывная функция;
x – неизвестная величина, подлежащая определению;
a 1, a 2,..., a k – известные параметры функции F.
Решить уравнение (3.1) - это значит найти такое значение (или такие значения) неизвестной x, при которых уравнение (3.1) превращается в тождество. Эти значения x называются корнями уравнения (3.1).
Только для простейших уравнений удается найти решение в аналитическом виде, т.е. записать формулу
x = f (a 1, a 2,..., a k),
выражающую искомую величину x явным образом через параметры a 1, a 2,..., a k, например, для уравнения вида
ax 2 + bx + c = 0
его корни выражаются формулой:
.
В большинстве же случаев аналитическую запись корней уравнения найти очень сложно или в принципе невозможно (такие уравнения называются трансцендентными), и поэтому приходится решать уравнение численным способом.
Существует несколько различных методов численного решения трансцендентных уравнений, но все они предполагают выполнение двух этапов: первый из них называется " отделение корней ", второй - " уточнение корней ". Ниже рассматривается один из способов отделения корней и четыре метода уточнения корней - метод дихотомий, метод хорд, метод касательных и метод простых итераций.
Отделение корней
На данном этапе определяются те интервалы области изменения переменной x, в каждом из которых расположен один и только один корень уравнения (3.1). По сути дела на этом этапе определяются грубые приближения значений x с погрешностью, определяемой длиной каждого найденного интервала. Полностью автоматизировать процесс отделения корней, пожалуй, невозможно, так как в нем обязательно присутствует элемент субъективного, интуитивного подхода к решению задачи. Иногда, например, интервал, в котором расположен корень, удается получить из физической сущности решаемой задачи.
При выполнении этого этапа с использованием ЭВМ обычно проводится "табулирование " функции F (x, a 1, a 2,..., a k), т.е. построение таблицы ее значений при различных значениях x, следующих друг за другом с некоторым шагом h:
x | F (x) |
x 1 | F 1 |
x 2 | F 2 |
... | ... |
x n | F n |
где x i+1 = x i + h; F i = F (x i); i = 1,2,...,n-1.
Например, таблица значений функции x 2 - 12 ln½ x ½ + 6 sin x на промежутке [1,10] c шагом h = 1 имеет вид:
x | F (x) |
1.0 | 6.05 |
2.0 | 0.72 |
3.0 | - 3.99 |
4.0 | - 6.01 |
5.0 | - 1.03 |
6.0 | 11.75 |
7.0 | 28.42 |
8.0 | 43.74 |
9.0 | 55.79 |
10.0 | 67.72 |
В качестве границ искомых интервалов выбираются такие соседние значения x, в которых соответствующие значения F (x) имеют разные знаки, так как изменение знака функции на некотором интервале означает в силу ее непрерывности, что где-то в пределах этого интервала график функции пересекает ось абсцисс, т.е. уравнение F (x) = 0 имеет корень. В частности, на основании данных из приведенной выше таблицы можно сделать вывод, что уравнение x 2 - 12 ln½ x ½ + 6 sin x = 0 на промежутке [1,10] имеет по крайней мере два корня: в интервале (2,3) и в интервале (5,6).
![]() |
При выполнении этого этапа нужно проявлять определенную осторожность: во-пеpвых, одинаковые знаки функции F на концах интервала (x i, x i+1) не означают, что на этом интервале нет корней - их может быть, например, два; во-втоpых, при разных знаках на концах интервала здесь может оказаться не один корень, а три или, например, пять.
В приводимой на рис.3.1 схеме алгоритма отделения корней использованы следующие обозначения:
x Н, x К - соответственно левая и правая границы промежутка табулирования функции F (x);
x - текущая точка табулирования;
;
В 0, В 1 - знаки функции F (x) соответственно в предыдущей и текущей точках табулирования.
В соответствии с данной блок-схемой производится не просто табулирование функции, а, кроме того, анализ знака функции в каждой новой точке и вывод сообщения при его изменении.
Метод дихотомии
Пусть на этапе отделения корней получены две точки A и B (A<B), между которыми находится корень уравнения (3.1), т.е. такие точки, в которых знаки значений функции F (x) противоположны (см. рис.3.2): sign F (A) ¹ sign F (B).
Метод дихотомии, называемый еще методом половинного деления, заключается в следующем:
1) определяется середина отрезка [ A, B ]:
![]() | (3.2) |
2) вычисляется значение функции в этой точке - F (P) и его знак sign F (P);
3) корень уравнения (3.1) находится в той половине отрезка [ A, B ], на концах которой функция F (x) имеет разные знаки. Если это будет половинка [ A, P ], то перенесем точку B в точку P; если же половинка [ P, B ], то перенесем точку A в точку P. Благодаря этой операции длина отрезка [ A, B ], на котором находится корень уравнения, уменьшилась вдвое, т.е. можно сказать, что значение корня определено с точностью до длины полученного отрезка.
Каждое новое повторение действий 1,2,3 будет давать все более точные значения корня уравнения. Повторение этого процесса следует прекращать, когда длина отрезка [ A, B ] станет меньше заранее заданного значения , являющегося в данном случае ошибкой ограничения, т.е. неравенство
B - A < ![]() | (3.3) |
является критерием окончания вычислительного процесса.
![]() |
Если величина ![]() ![]() ![]() ![]() ![]() |
Метод хорд
Пусть так же, как в методе дихотомий, известны две точки A и B (A<B),для которых sign F (A) ¹ sign F (B). В методе хорд (см. рис.3.4), в отличие от метода дихотомий, в качестве очередного приближения P берется точка пересечения с осью абсцисс хорды, соединяющей точки (A, F (A)) и (B, F (B)).
Рис.3.4. Геометрическая интерпретация метода хорд
Уравнение прямой, проходящей через эти две точки запишем в виде: Y (x) = k x + c.
Коэффициенты k и c определяются из условий:
F (A) = k A + c; F (B) = k B + c.
Решая эту систему из двух уравнений, получим:
; c = F (A) - k A.
Точка P пересечения этой прямой с осью ОX определяется из уравнения
kP + c = 0.
Решая его, окончательно получаем:
![]() | (3.4) |
В методе хорд нельзя использовать в качестве критерия окончания вычислительного процесса неравенство (3.3), так как, как видно из рис.3.4, величина B – A не стремится к нулю. В данном методе, как и в рассматриваемых ниже, вычислительный процесс следует прекращать при выполнении неравенства
![]() | (3.5) |
т.е. если расстояние между двумя соседними приближениями к корню меньше заранее заданной величины .
Алгоритм метода хорд, следовательно, отличается от алгоритма метода дихотомий формулой вычисления приближения P (вместо (3.2) использется (3.4))и критерием окончания вычислительного процесса (вместо (3.3) использется (3.5)).
Блок-схему для метода хорд предлагается разработать самостоятельно.
Метод Ньютона (метод касательных)
Графическая интерпретация метода представлена на рис.3.5. Предположим, что каким-либо способом найдено начальное приближение х 0 к истинному корню. Например, при использовании отделения корней, в качестве х 0 можно взять левую или правую границу промежутка, содержащего корень уравнения F (x) = 0, либо любую другую точку из этого промежутка. В точке х 0 вычислим значение функции F (x), а также значение ее производной F ‘(x). Следующее приближение к корню, т.е. точку х 1 определим, как пересечение оси ОХ с касательной к кривой F (x) в точке х 0:
Аналогичным образом, вычислив значения F (x) и F ‘(x), в точке х 1, можно получить приближение х 2:
В общем случае вычислительный процесс метода Ньютона выражается формулой:
![]() | (3.6) |
где каждое новое значение х k (k=1, 2, 3, …) будет располагаться все ближе к истинному корню х *., т.е. будет представлять собой все более точное приближение к решению уравнения F (x) = 0.
![]() | ![]() |
Процесс уточнения корня по формуле (3.6) следует прекращать, когда выполнится условие , т.е. когда расстояние между двумя соседними приближениями станет меньше заранее заданной точности
.
Метод Ньютона обладает высокой скоростью сходимости. Обычно абсолютная точность решения 10-5 – 10-6 достигается за 4-5 итераций. Недостатком метода является необходимость вычисления на каждом шаге не только левой части F (x) уравнения, но и ее первой производной.
Алгоритм метода Ньютона представлен на рис. 3.7.
Из формулы (3.6) видно что для вычисления каждого нового (текущего) приближения требуется знать лишь одно предыдущее приближение. Эти две величины в блок-схеме названы соответственно х Т и х П.
После ввода исходных данных переменной х П присваивается значение (![]() ![]() | ![]() |
На практике иногда применяется так называемый модифицированный метод Ньютона, который отличается от метода Ньютона тем, что первая производная от F (x) вычисляется лишь один раз в точке х 0. Вычислительный процесс модифицированного метода Ньютона описывается формулой:
![]() | (3.7) |
а его геометрическая иллюстрация приведена на рис. 3.6.
Метод простых итераций
Исходное уравнение (3.1) преобразуем к эквивалентному уравнению:
x = ![]() | (3.8) |
Пусть известно начальное приближение (полученное, например, на этапе отделения корней): x = x 0. Подставим его в правую часть (3.8) и получим новое приближение: x 1 = (x 0). Повторяя эту процедуру, будем иметь в общем виде на некотором k-м шаге:
xk = (xk-1).
В качестве условия окончания вычислительного процесса можно взять выполнение неравенства: ½ xk - xk-1 ½ < .
Значение x k, удовлетворяющее ему, и есть корень уравнения (3.1).
Геометрическая интерпретация этого метода приведена на рис.3.8, 3.9. Здесь x * - истинное, искомое значение корня; x 0 - начальное приближение к корню; x 1, x 2, x 3 - очередные итерации.
![]() | ![]() |
При использовании этого метода возникает вопрос о его сходимости. Дело в том, что при некоторых условиях расстояние между истинным корнем и приближениями к нему может возрастать с каждой новой итерацией, как это показано на рис.3.10, 3.11.
![]() | ![]() |
Условием сходимости метода простых итераций является выполнение в окрестности искомого корня неравенства:
½ ![]() | (3.9) |
Это условие является достаточным, т.е. если оно выполняется, то процесс обязательно сходится; если же условие (3.9) не выполняется или выполняется не во всех точках
x 0, x 1, x 2,..., x k,...,
то заранее сказать что-либо конкретное о сходимости нельзя.
Итак, для решения уравнения F (x) = 0методом простых итераций надо преобразовать его к уравнению вида x = (x) так, чтобы выполнялось условие ½
(x)½ < 1. Сходимость к истинному корню будет тем быстрее, чем ближе к единице значение
(x).