Тема 2. Решение трансцендентных уравнений.

advertisement
1
Столярчук В.А. Численные методы. Материалы к занятиям. Тема 2. Решение уравнений.
2. Решение уравнений.
2.1. Постановка задачи.
Нахождение корней уравнения — это одна из древнейших математических
проблем, которая не теряет своей остроты и в наши дни: она часто встречается в самых
разнообразных областях науки и техники.
Рассмотрим общеизвестное квадратное уравнение 𝑎𝑥 2 + 𝑏𝑥 + 𝑐 = 0. Говорят, что
−𝑏±√𝑏 2 −4𝑎𝑐
значения
являются корнями этого уравнения, потому что для этих значений
2𝑎
х уравнение удовлетворяется.
В более общем случае, если имеется некоторая функция f(x), то бывает
необходимо найти такие значения аргумента х, для которых
f ( x ) = 0. (1)
Решение этого основного уравнения и является нашей целью. Уравнение будем
называть линейным, нелинейным, алгебраическим или трансцендентным в зависимости от
того, имеет ли оно одно решение, п решений или неопределенное число решений.
Систему уравнений будем называть линейной или нелинейной в зависимости от
математической природы входящих в нее уравнений.
Решение линейного уравнения с одним неизвестным получается достаточно просто и
здесь не рассматривается.
Обычно нелинейные уравнения делят на трансцендентные и алгебраические.
Трансцендентными называются нелинейные уравнения, содержащие тригонометрические
функции или другие специальные функции, например, lg(𝑥) или 𝑒 𝑥 . Уравнения,
содержащие суммы целых степеней x , называются алгебраическими. Их общий вид:
𝑎𝑛 𝑥 𝑛 + 𝑎𝑛−1 𝑥 𝑛−1 +𝑎𝑛−2 𝑥 𝑛−2 + ⋯ + 𝑎1 𝑥 + 𝑎0=0
Так как оба типа нелинейных уравнений часто решаются одними и теми же методами,
то далее рассматриваются методы, одинаково приспособленные для решения обоих
типов.
Классифицировать уравнения можно в соответствии с нижеприведенной схемой
(рис. 2.1)
Рис. 2.1.
2
Столярчук В.А. Численные методы. Материалы к занятиям. Тема 2. Решение уравнений.
Инженеру часто приходится решать алгебраические и трансцендентные уравнения,
что может представлять собой самостоятельную задачу или являться составной частью
более сложных задач. В обоих случаях практическая ценность численного метода в
значительной мере определяется быстротой и эффективностью получения решения.
Выбор подходящего алгоритма для решения уравнений зависит от характера
рассматриваемой задачи.
Методы решения нелинейных уравнений делятся на прямые и приближенные.
Первые позволяют найти решение непосредственно с помощью формул и всегда
обеспечивают получение точного решения. Известным примером такого рода является
формула корней квадратного уравнения.
Но в общем случае функции, с которыми приходится работать инженеру и
ученому, не имеют аналитических формул для своих корней в противоположность,
например, тому же квадратному уравнению.
Поэтому приходится пользоваться приближенными способами нахождения корней,
которые, как правило, состоят из двух этапов:
1.
Отыскание приближенного значения корня.
2.
Уточнение приближенного значения до некоторой заданной степени
точности.
Очень часто приближенное значение корня бывает известно из физических
соображений, в других случаях можно использовать графические методы. Кроме того,
существуют специальные методы нахождения приближенного корня для того практически
важного случая, когда f(x) является полиномом. Но чаще всего приходится находить
интервал значений неизвестной х, на котором функция меняет знак, и после этого
применять какие-нибудь алгоритмы для уточнения корня.
Строго говоря, к численным методам решения уравнений как раз и относят
различные методы, связанные с уточнением первоначального приближения. Численный
метод, в котором проводится последовательное, шаг за шагом, уточнение
первоначального грубого приближения, называется методом итераций. Каждый шаг в
таком методе называется итерацией. Если при последовательных итерациях получаются
значения, которые все ближе и ближе приближаются истинному значению корня, то
говорят, что метод итераций сходится.
Для реализации итерационных методов задается процедура решения в виде
многократного применения некоторого алгоритма. Полученное решение всегда является
приближенным, хотя может быть сколь угодно близким к точному.
Итерационные методы наиболее удобны для реализации на компьютере.
В каждом из излагаемых далее методов считается, что решаемая задача состоит в
отыскании действительных корней (нулей) уравнения (1). (𝑓(𝑥) = 0). Хотя подобные
уравнения также могут иметь комплексные корни, способы их отыскания обычно
рассматриваются только для алгебраических уравнений.
2.2. Методы решения нелинейных уравнений.
2.2.1. Метод половинного деления.
Метод включает нахождение интервала значений переменной х, на котором
функция меняет знак. Для этого вычисляются значения функции через равные
промежутки значений х. Очевидно, что от выбора шага х зависит правильность
нахождения этого интервала и всегда имеется возможность пропустить корень в случае,
когда функция несколько раз меняет знак на отрезке переменной меньше заданного шага.
3
Столярчук В.А. Численные методы. Материалы к занятиям. Тема 2. Решение уравнений.
Блок-схема алгоритма метода половинного деления представлена на рис.2.2.
Рис. 2.2. Блок-схема алгоритма половинного деления.
Он состоит из следующих операций. Сначала вычисляются значения функций в
точках, расположенных через равные интервалы на оси х. Это делается до тех пор, пока
не будут найдены два последовательных значения функции 𝑓(𝑥𝑛 ) и 𝑓(𝑥𝑛+1 ), имеющие
противоположные знаки. Напомним, если функция непрерывна, изменение знака
указывает на существование корня.
𝑥
+𝑥
Затем по формуле 𝑥ср = 𝑛+12 𝑛 вычисляется среднее значение х в интервале
значений [𝑥𝑛 , 𝑥𝑛+1 ] и находится значение функции 𝑓(𝑥ср ).
Если знак 𝑓(𝑥ср ) совпадает со знаком 𝑓(𝑥𝑛 ), то в дальнейшем, вместо 𝑓(𝑥𝑛 )
используется 𝑓(𝑥ср ). Если же 𝑓(𝑥ср ) имеет знак, противоположный знаку 𝑓(𝑥𝑛 ), т.е. её
знак совпадает со знаком 𝑓(𝑥𝑛+1 ), то на 𝑓(𝑥ср ) заменяется это значение функции. В
результате интервал, в котором заключено значение корня, сужается.
4
Столярчук В.А. Численные методы. Материалы к занятиям. Тема 2. Решение уравнений.
Если 𝑓(𝑥ср )
достаточно близко к нулю, процесс заканчивается, в противном
случае он продолжается. Чаще всего для оценки близости к нулю применяется оценка по
абсолютной сходимости двух последовательных приближений |𝑥𝑛+1 − 𝑥𝑛 | ≤ ɛ, хотя могут
применяться и другие оценки точности.
На рис. 2.3 эта процедура показана графически.
Рис. 2.3. Метод половинного деления.
Хотя метод половинного деления не обладает высокой вычислительной
эффективностью, с увеличением числа итераций он обеспечивает получение все более
точного приближенного значения корня. После того как впервые найден интервал, в
котором заключен корень, его ширина после N итераций убывает в 2 N раза.
2.2.2. Метод хорд.
Как и предыдущий метод, метод хорд включает предварительное нахождение
интервала значений переменной х, на котором функция меняет знак.
В основе этого метода лежит линейная интерполяция по двум значениям функции,
имеющим противоположные знаки. При отыскании корня этот метод нередко
обеспечивает более быструю сходимость, чем предыдущий. Блок-схема алгоритма метода
ложного положения дана на рис. 2.4. Счет ведется следующим образом. Сначала
определяются значения функции в точках, расположенных на оси х через равные
интервалы. Это делается до тех пор, пока не будет найдена пара последовательных
значений функции 𝑓(𝑥𝑛 ) и 𝑓(𝑥𝑛+1 ), имеющих противоположные знаки.
Прямая, проведенная через эти две точки, пересекает ось х при значении
𝑥
−𝑥𝑛
𝑥 ∗ = 𝑥𝑛 − 𝑓(𝑥𝑛 ) 𝑓(𝑥 𝑛+1)−𝑓(𝑥
.
)
𝑛+1
𝑛
Это значение аргумента используется для определения значения функции
∗ ),
𝑓(𝑥
которое
сравнивается со значениями функций 𝑓(𝑥𝑛 ) и 𝑓(𝑥𝑛+1 ) и в
дальнейшем используется вместо того из них, с которым оно совпадает по знаку.
Если значение 𝑓(𝑥 ∗ ) недостаточно близко к нулю, то вся процедура повторяется
до тех пор, пока не будет достигнута необходимая степень сходимости. На рис. 2.5
процесс решения показан графически.
5
Столярчук В.А. Численные методы. Материалы к занятиям. Тема 2. Решение уравнений.
Рис. 2.4. Блок-схема алгоритма метода хорд
Рис. 2.5. Метод хорд.
6
Столярчук В.А. Численные методы. Материалы к занятиям. Тема 2. Решение уравнений.
2.2.3. Метод Ньютона (касательных)
Метод последовательных приближений, разработанный Ньютоном, очень широко
используется при построении итерационных алгоритмов. Его популярность обусловлена
тем, что в отличие от двух предыдущих методов для определения интервала, в котором
заключен корень, не требуется находить значения функции с противоположными знаками.
Вместо интерполяции по двум значениям функции в методе Ньютона осуществляется
экстраполяция с помощью касательной к кривой в данной точке.
На рис. 2.6. ниже показана блок-схема алгоритма этого метода, в основе которого
лежит разложение функции f(x) в ряд Тейлора
1
f ( xn  h)  f ( xn )  hf ( xn )  h 2 f ( xn )  
2
Члены, содержащие h во второй и более высоких степенях, отбрасываются;
используется соотношение 𝑥𝑛 + ℎ = 𝑥𝑛+1 . Предполагается, что переход от 𝑥𝑛 к
𝑥𝑛+1 приближает значение функции к нулю так, что f ( xn  h)  0 . Тогда
f ( xn )
x n 1  x n 
.
f ( x n )
Значение х п + 1 соответствует точке, в которой касательная к кривой в точке х п
пересекает ось х. Так как кривая f(x) отлична от прямой, то , то значение функции f(x n + 1 )
скорее всего не будет в точности равно нулю. Поэтому вся процедура повторяется, причем
вместо х п используется х п + 1 . Счет прекращается по достижении достаточно малого
значения f(x n + 1 ). На рис. 2.7 процесс решения уравнения методом Ньютона показан
графически. Совершенно ясно, что быстрота сходимости в большой мере зависит от удачного выбора исходной точки. Если в процессе итераций тангенс угла наклона касательной
f (х) обращается в нуль, то применение метода осложняется. Можно также показать, что в
случае бесконечно большого f (x) метод также не будет достаточно эффективным. Так
как условие кратности корней имеет вид f ( x)  f ( x)  0 , то в этом случае метод Ньютона
не обеспечивает сходимость. Отметим, что иногда используется другой способ контроля
сходимости, состоящий в сравнении 𝑥𝑛 и 𝑥𝑛+1 .
7
Столярчук В.А. Численные методы. Материалы к занятиям. Тема 2. Решение уравнений.
8
Столярчук В.А. Численные методы. Материалы к занятиям. Тема 2. Решение уравнений.
2.2.4. Метод секущих
Один из недостатков метода Ньютона состоит в том, что, пользуясь им, приходится
дифференцировать функцию f(x). Если нахождение производной затруднено, то можно
воспользоваться некоторым приближением, которое и составляет основу метода секущих.
Заменив производную f (x ) ), используемую в методе Ньютона
f ( xn )
xn 1  xn 
,
f ( xn )
разностью последовательных значений функции, отнесенной к разности значений
f ( xn )  f ( xn 1 )
аргумента f ( xn ) 
,
xn  xn 1
получим следующую итерационную формулу:
f ( xn )
xn 1  xn 
.
 f ( xn )  f ( xn 1 ) 


xn  xn 1


Схема алгоритма для этого метода та же, что и для метода Ньютона (несколько
иной вид имеет итерационная формула). В сущности, в методе секущих для отыскания
корня используется комбинация интерполяции и экстраполяции. В своей интерполяционной части этот метод эквивалентен методу хорд. Как и в случае метода Ньютона, счет
заканчивается, когда последовательные значения х совпадают с некоторой приемлемой
точностью или когда значение функции f(х) становится достаточно близким к нулю.
В случае кратных корней при использовании метода секущих возникают те же
трудности, что и при использовании метода Ньютона.
Здесь мы впервые встречаемся с приближенным подсчетом производной f ( xn )
конечно-разностными формулами. Так как эти формулы встречаются в огромном числе
математических приложений, то необходимо их пояснить.
Любая производная может быть представлена линейной комбинацией значений
этой функции в определённых точках заданного отрезка, называемых узлами.
Z
c
a
k
b
d
x
9
Столярчук В.А. Численные методы. Материалы к занятиям. Тема 2. Решение уравнений.
Существует несколько приближенных способов выражения производных
подобным образом. Например, первую производную функции y  f (x) в узле k можно
выразить следующими приближёнными формулами с соответствующими названиями:
y  ya
 dy 
   k
hak
 dx  k
левые односторонние разности
y  yk
 dy 
   b
hkb
 dx  k
правые односторонние разности
y  yk
 dy 
 tg
   b
 dx  k hak  hkb
Очевидно, что формула:
f ( xn ) 
центральные разности.
f ( xn )  f ( xn 1 )
xn  xn 1
соответствует понятию левые односторонние разности.
Даже из рисунка видно, что ни одно из этих выражений не подсчитывает точно
значение производной в точке k. Может показаться для данной функции, что центральные
разности наиболее точны, но так получается далеко не для каждой функции. Хотя надо
сказать, что они наиболее употребительные.
2.2.5. Метод простой итерации (метод последовательных приближений)
Для применения этого метода уравнение
F ( x ) =0
(1)
представляется в виде:
𝑥 = 𝑓(𝑥)
(2)
Соответствующая
итерационная
Выбор подходящего начального
формула имеет вид 𝑥𝑛 = 𝑓(𝑥𝑛−1 ). (3)
значения 𝑥𝑛−1
Блок-схема
алгоритма
метода
представлена на рис. 2.8.
Простота метода простой итерации
Вычисление 𝑥𝑛 =
𝑓(𝑥𝑛−1 ) и 𝐹(𝑥𝑛 )
делает его привлекательным, однако не
следует забывать, что и этому методу
присущи недостатки, так как он не всегда
обеспечивает сходимость. Поэтому для
любой программы, в которой используется
Да
Достаточно
этот
алгоритм,
необходимо
СТОП
ли мала
величина
предусматривать контроль сходимости и
𝐹(𝑥𝑛 )?
прекращать счет, если сходимость не
обеспечивается.
Разберём этот алгоритм более
Нет
подробно.
Вычисление 𝑥𝑛−1 = 𝑓(𝑥𝑛 )
Итак, прежде всего уравнение
F ( x ) = 0 надо представить в виде 𝑥 =
𝑓(𝑥). Это преобразование можно сделать
различными путями.
Рис. 2.8.
10
Столярчук В.А. Численные методы. Материалы к занятиям. Тема 2. Решение уравнений.
Например, если надо решить уравнение
𝑥 2 − 𝑐 = 0, где с ≥ 0 , то можно
прибавить к правой и к левой частям х:
𝑥 = 𝑥2 + 𝑥 − 𝑐
𝑐
Или можно разделить уравнение 𝑥 2 − 𝑐 = 0 на 𝑥 и получить 𝑥 = 𝑥.
Наконец, можно преобразовать уравнение к следующему виду:
𝑥 =𝑥−(
𝑥 2 −𝑐
2𝑥
1
) = 2 (𝑥 + 𝑥𝑐).
Очевидно, что значения х, являющиеся корнями этого уравнения являются ±√с.
Пусть х 0 будет исходным приближенным значением корня у р а в н е н и я 𝑥 =
𝑓(𝑥)
(2)
Тогда в качестве следующего приближения примем
𝑥1 = 𝑓(𝑥0 )
В качестве следующего приближения возьмем
𝑥2 = 𝑓(𝑥1 ).
Продолжая этот процесс дальше, в качестве n-го приближения необходимо
положить
𝑥𝑛 = 𝑓(𝑥𝑛−1 ).
(3)
Основной вопрос, который необходимо выяснить при пользовании этим методом, сходится ли 𝑥𝑛 к решению уравнения (2) при возрастании п?
Выведем сейчас достаточные условия для сходимости метода; иными словами,
выведем условия, которые являются гарантией того, что последовательные значения 𝑥𝑛
будут приближаться к решению уравнения (2). Необходимо отметить, что эти условия не
являются необходимыми, так как существуют функции, для которых эти условия не
выполняются, но для которых, тем не менее, с помощью (3) можно найти их решения.
Рассмотрим сначала геометрическое представление процесса. При решении
уравнения (2) отыскивается точка пересечения кривой у=f(x) и прямой у=х. Рассмотрим
рис. 2.9, на котором изображена некоторая кривая у=f ( x ) . Кривая эта может
представлять собой какую угодно функцию, но для нас сейчас важно то обстоятельство,
что производная этой кривой положительна и меньше 1, т. е. 0< f ' ( x ) < 1. Пусть х = а значение х в точке пересечения; тогда а является корнем этого уравнения. Естественно,
приступая к решению задачи, мы не знаем значения корня.
Зададимся некоторым х 0 . Значение
𝑥1 равно f ( x 0 ) . Так как ОА на рис. 2.9 равно
f ( x 0 ) , то найти 𝑥1 ожно следующим образом:
проведем через точку А горизонтальную линию до
пересечения с прямой у = х в точке В, как показано на рисунке. Значение х2 = f(𝑥1 ) можно найти,
проведя через точку В вертикальную линию до
пересечения с кривой у = f ( x ) . При этом мы
получаем отрезок ОС, равный f(𝑥1 ), и, проводя
через точку С горизонтальную линию до
пересечения с прямой у = х, получаем х2. Процесс
продолжается в том же порядке и дальше; на
рисунке последовательность операций показана
стрелками.
На рисунке видно, как последовательные
Рис.2.9. Геометрическое представление
значения х сходятся к х= а. Важно помнить, что
метода последовательных приближений для
для рассмотрения мы взяли кривую, производная
0< f ' ( x ) < 1.
которой положительна и меньше 1.
11
Столярчук В.А. Численные методы. Материалы к занятиям. Тема 2. Решение уравнений.
Рассмотрим теперь другую кривую у = f(x),
производная которой отрицательна, но меньше 1 по
абсолютной величине. Этот случай изображен на рис.
2.10.
Последовательные операции вычисления решения
этого уравнения снова изображены стрелками;
приближения опять сходятся к решению х = а.
В противоположность тому, что имело место для
функции с положительной производной (см. рис. 2.9),
на этот раз каждое последующее приближение
находится с противоположной стороны от х = а. Для
функции с положительной производной все
последовательные приближения находились с одной
стороны от истинного значения корня.
Наконец, рассмотрим случаи, когда
производная функции больше 1 (рис. 2.11) и
меньше (-1) (рис. 2.12). В обоих случаях метод
Рис. 2.10. Геометрическое представление
расходится. Каждое последующее значение х
метода последовательных приближений для
отстоит дальше от истинного значения корня,
0> f ' ( x ) > -1.
чем
предшествующее.
Поэтому
кажется
обоснованным предположение, что итерации по
формуле (3) сходятся при условии, что производная f ' ( х ) меньше 1 по абсолютной
величине. Действительно, именно так и обстоит дело и в этом можно убедиться с
помощью достаточно несложных выкладок, которые здесь рассматриваться не будут.
Действительно, именно так и обстоит дело.
Рис. 2.11. Для 0< f ' ( x ) > (- 1).
Рис. 2.12.
Для f ' ( x ) > 1.
Таким образом, если |f'(x)| < 1, то процесс сходится, если же | f (х) | > 1, то
процесс расходится. Следует учесть, что неравенства должны выполняться при всех
значениях х п , вычисляемых в ходе решения задачи.
12
Столярчук В.А. Численные методы. Материалы к занятиям. Тема 2. Решение уравнений.
Что произойдет в случае, когда производная f'(x) в некоторых точках 𝑥𝑗 меньше, а
в других точках 𝑥𝑗 больше 1 по абсолютной величине? Точного ответа на этот вопрос не
существует, процесс иногда сходится, иногда расходится.
Вернемся к примеру, рассмотренному в начале раздела, где корнями уравнения
являются ±√с.
В формуле 𝑓(𝑥) = 𝑥 2 + 𝑥 − 𝑐, так что |f'(x)| < 1, если -1<x<0 . В этом случае, если
число с меньше 1, то процесс сходится к отрицательному значению корня.
с
С другой стороны, если воспользоваться формулой 𝑓 ′ (𝑥) = − 𝑥 2 и при близких
к √с (как и должно быть при отыскании корня уравнения), |f'(x)| становится почти
равным 1, можно проверить, что процесс сходится.
𝑥 2 −𝑐
Наконец, применяя формулу 𝑓(𝑥) = 𝑥 − (
1
с
2𝑥
1
) = 2 (𝑥 + 𝑥𝑐), получаем выражение для
𝑓 ′ (𝑥) в виде 2 (1 − 𝑥 2 ).
В этом случае, когда 𝑥 ≈ √с , то 𝑓 ′ (𝑥) ≈ 0 и процесс очень быстро сходится.
Вообще говоря, хотя для всякого уравнения можно найти большое количество
соответствующих ему функций 𝑓(𝑥) в выражении (2), нужно с большой осторожностью
подходить к их конкретному выбору, так как от него зависит сходимость метода итераций.
Следует сказать, что ещё существует множество методов решения нелинейных
уравнений методом простых итераций: усовершенствованные метод последовательных
приближений, метод Ньютона-Рафсона, особые методы для почти равных корней и т.п.
Наличие множества методов свидетельствует о далеко нетривиальной задаче отыскания
корней нелинейных функций и зачастую такая задача становится достаточно серьезной
проблемой в инженерной работе.
Download