1692
.pdfКорни находятся в два этапа: первый – отделение корней, т.е. нахождение отрезка [a, b], содержащего один корень уравнения; второй
– уточнение значения корней на найденных отрезках с заданной точ-
ностью . |
|
Если функция F(x) |
непрерывна и принимает на концах отрезка |
[a, b] разные знаки, т.е. |
F(a)* F(b) 0 и сохраняет на этом отрезке |
знак первой производной, то внутри этого отрезка находится один корень уравнения. Отделение корней можно осуществить различными способами.
1.Составляют таблицу значений функции y F(x) на выбранном отрезке изменения аргумента. Для отделения корня необходимо, чтобы на концах выделенного отрезка функция имела разные знаки и была монотонна. В качестве признака монотонности функции можно воспользоваться условием знакопостоянства первой производной. От заданной функции F(x) найдем F (x) и вычислим ее
значения на концах отрезка [a, b], если F (a)*F (b) 0, функция F(x) монотонна.
2.Строят график функции y F(x) на отрезке изменения x; точка пересечения графика с осью ox даст нам корень уравнения. Для последующего уточнения корня возьмем окрестности корня и обозначим их [a, b].
3.Уравнение F(x) 0 заменяют равносильным ему F1(x) F2(x), строят два графика y1 F1(x) и y2 F2 (x). Абсцисса точки пересечения этих графиков, спроецированная на ось x, даст нам отрезок [a, b], внутри которого находится корень уравнения F(x) 0.
2.Методы решения нелинейных уравнений
2.1.Метод деления пополам (метод бисекций)
Задача. Найти решение нелинейного уравнения F(x) 0 с точностью .
Метод состоит в следующем: в результате отделения корня найден отрезок [a, b], в котором расположено искомое значение корня. В качестве начального приближения корня возьмем значение co=(b+a)/2. Далее исследуем значения F(x) на концах отрезков [a, co] и [co, b]. Тот из них, на концах которого F(x) примет значения разных знаков, содержит искомый корень. Поэтому его принимают в качестве нового
21
отрезка (см. полученный знаков. F(a)
рис. 1, здесь корень находится на отрезке [co, b]). Затем отрезок делим пополам и вновь производим проверку
0, F(b) 0, F(c0 ) 0.
Рис. 1
Теперь корень находим на отрезке [c0, c1]. Затем находим
с2 с0 с1 и т.д. Итерационный процесс продолжается до тех пор,
2
пока F(x) не станет меньше заданного числа : F(сn) . Рабочая формула для нахождения корня имеет вид
сi 1 сi сi 1 .
2
Число итераций в этом методе зависит от предварительно задаваемой точности и длины отрезка [a, b] и не зависит от вида функции
F(x).
Метод медленный, всегда сходится, можно получить решение с заданной точностью, широко применяется на практике [5].
Блок-схема алгоритма метода половинного деления представлена на рис. 2, где [a, b] – отрезок, в котором находится корень уравнения; с – корень уравнения; n – число итераций; F(x) - значение функции в соответствующей точке.
2.2. Метод хорд
Задача. Отыскать корень уравнения F(x) 0 с точностью . Пусть имеем отрезок [a0, b0], на концах которого F(x) меняет свой знак, где F(x) - монотонная функция. Пусть F(a0 ) 0, F(b0 ) 0.
На рис. 3 задача отыскания корня методом хорд представлена графически. Любая точка отрезка [a0, b0] может быть первым приближе-
22
нием корня. Соединим точки А и В прямой, т.е. проведем хорду. Таким образом, получим b1, которое является приближением корня.
Воспользуемся уравнением пучка прямых, проходящих через точ-
ку B(b0, F(b0)).
y–y0=k(x–x0), y–F(b0)=k(x–b0).
Хорда должна проходить через точку A(a0, F(a0)), т.е.
k F(a0) F(b0) . a0 b0
Запишем уравнение прямой
y F(b0 ) F(a0 ) F(b0 )(x b0 ). a0 b0
Начало
Ввод a, b, i = 0, ε
Вычисле-
ниеF(a)
i = i +1
с a b
2
|
F(c) |
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
b = c |
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Нет |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
Нет |
|
|||||
|
|
|
|
|
|
|
|
||||||
|
F(c) |
|
|
|
|
F(c)*F(a) 0 |
|
||||||
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
Да |
|
|
|
|
|
|
Да |
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Вывод c, i |
|
|
|
а = c |
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Конец
Рис. 2
23
Рис. 3
Проведенная прямая пересекает ось ох
y F(b0) |
|
x b0 |
|||||
|
|
|
|
|
|
. |
|
F(a |
0 |
) F(b ) |
a |
0 |
b |
||
|
0 |
|
|
0 |
|
Найдем х при у=0
x b |
F(b0)(a0 b0) |
, |
x b b |
F(b0)(a0 b0) |
. |
||||
|
|
||||||||
0 |
F(a |
0 |
) F(b ) |
1 0 |
F(a |
0 |
) F(b ) |
||
|
|
0 |
|
|
|
0 |
|
Далее, сравнивая знаки F(b1) и F(b0), найдем новый отрезок [b1, a0]. Соединим новой хордой точки А и В1, таким образом найдем новое приближение корня. Итерационный процесс продолжается до тех пор, пока F(bi) не станет по модулю меньше числа : F(bi ) . При решении этим методом потерять корень невозможно.
Рабочая формула метода хорд:
b |
b |
|
F(bi)(a0 bi) |
или b |
b |
b |
, |
||
|
|||||||||
i 1 |
i |
|
F(a |
0 |
) F(b ) |
i 1 |
i |
i |
|
|
|
|
|
i |
|
|
|
|
где b – начало отрезка, а – конец ( точка а неподвижна). Неподвижен тот конец, для которого знак функции F(x) совпадает
со знаком ее второй производной F (x).
Блок–схема алгоритма метода хорд представлена на рис. 4, где [a, b] – отрезок, в котором находится корень уравнения; b – корень уравнения; n – число итераций; F(bi) – значения функции в соответствующей точке.
2.3. Метод Ньютона (метод касательных)
Как и ранее, находим |
корень F(x) 0. Имеем точность |
и |
отрезок [a, b], в котором |
находится изолированный корень. В |
|
|
24 |
|
качестве начального приближения принимается тот конец отрезка [a, b], для которого выполняется условие F(x)F (x) 0. Обратимся к рис. 5, на котором представлено графическое решение задачи. Из точки А0 проведена касательная к функции. Точка пересечения касательной с осью ох является первым приближением корня, на рис. 5 она обозначена как а1. Затем из точки а1 проводим прямую, перпендикулярно оси ох. Точку пересечения этой прямой с функцией обозначим через А1 и т.д.
Начало
Ввод b,
i = 0
|
|
|
|
bi 1 bi bi |
|
i = i+1 |
|
|
|
Да |
|
|
|
F(bi)
Нет
Вывод b, i
Конец
Рис. 4
Запишем уравнение прямой, касательной к F(x):
y-y0=k(x-x0), |
y=0 |
, |
F(a0) |
|
|
где k F (a0), |
x a0 |
|
, |
||
|
|||||
|
|
|
F (a0) |
||
|
25 |
|
|
|
y |
0 |
F(a |
0 |
). |
a x a |
0 |
|
F(a0) |
. |
|
|||||||||
|
|
|
|
|
F (a0) |
y F(a0) F (a0)(x a0).
|
Рис. 5 |
|
|
|
|||||
|
Начало |
|
|
|
|||||
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
Ввод a, |
|
|
|
|||||
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
i = 0 |
|
|
|
|
||||
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
аi 1 аi аi |
|
|
i = i +1 |
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Нет |
|
|
F(аi |
|
) |
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
||||||
|
|
|
|
|
Да |
|
|
|
|
Вывод |
|
|
|
а, i |
|
|
|
||
|
|
|
|
Конец
Рис. 6
26
Рабочая формула метода касательных: ai 1 ai FF((aaii)),
ai 1 ai ai, i 0,1,2,3,...
Итерационный процесс продолжается до тех пор, пока F(x) не
станет меньше заданного числа : |
F(ai ) |
. При работе с этим ме- |
тодом возможна потеря корня, но при правильном применении метода он сходится быстро, 4-5 итераций дают погрешность 10-5, он используется также для уточнения значения корня [5]. Блок-схема алгоритма метода касательных представлена на рис. 6, где an – корень уравнения; n – число итераций; F(an) - значение функции в соответствующей точке.
2.4. Комбинированный метод хорд и касательных
Задача. Найти корень уравнения F(x) с заданной точностью . В этом случае используется одновременно методы касательных и
хорд. Приближение к корню происходит с двух сторон. Рассмотрим четыре случая, которые отвечают возможным комбинациям знаков
F (x) и F (x).
Из графиков, представленных на рис. 7, метод хорд применяется со стороны вогнутости, а метод касательных – со стороны выпуклости графика.
Совместное применение обоих методов дает сразу избыточное и недостаточное приближение. Применяя этот метод, мы предполагаем,
что |
|
|
|
|
F(x), F (x) |
и F (x) |
непрерывны на отрезке [a0, b0], причем F (x) |
||
и F |
|
|
|
|
(x) сохраняют свой знак. Известно, что сохранение знака у F (x) |
||||
говорит о монотонности |
|
означает, |
||
F(x), а сохранение знака у F (x) |
что выпуклость кривой y F(x) при всех x [a0 , b0 ] обращена в одну сторону. Для удобства расчета обозначим через а0 тот конец отрезка [a0, b0], в котором знаки F (x) и F (x) совпадают.
Из возможных случаев рассмотрим случай первый. Пусть F(a)* F(b) 0 и F (x)* F (x) 0, т.е. знаки первой и второй производной совпадают. При решении уравнения каждая итерация заключается в следующем: из точки А проведем хорду, которая стягивает дугу АВ, и проведем касательную к дуге таким образом, чтобы точка пересечения касательной с осью ох оказалось внутри отрезка [a0, b0]. Хорда на графиках пересекает ось ох в точке b1,
27
Рис. 7
лежащей между точками b0 и искомым корнем , а касательная к дуге в точке А пересекает ось ох в точке а0, лежащей между точками а0 и искомым корнем уравнения ( рис. 8).
Полученное значение a1 и b1 дают новое приближение к корню. Приведем расчетные формулы для ai+1и bi+1, выведенные в п.2.1 и 2.2.
b |
b |
F(bi )(a0 bi ) |
, |
a |
|
a |
|
|
F(ai ) |
. |
|
|
|
|
|||||||
i 1 |
i |
F(a0 ) F(bi ) |
|
i 1 |
|
i |
|
F (ai ) |
Процесс нахождения ai+1 и bi+1 продолжается до тех пор, пока выполняется одно из следующих условий:
ai 1 bi 1 , где - заданная точность;
F(bi ) |
|
или |
|
F(ai ) |
; |
||||||
F |
|
a |
i 1 |
b |
i 1 |
|
. |
||||
|
|
|
|
|
|||||||
|
|
|
|
2 |
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
28
Рис. 8
Все округления при вычислениях следует производить в сторону от корня [4]. На рис. 9 представлена блок-схема комбинированного метода хорд и касательных, где n число итераций; аn , b n− значения приближения корня; F(аn) F(bn) − значения функции в данных точках.
2.5. Метод простой итерации (метод последовательных приближений)
Чтобы применить метод простой итерации для решения нелинейного уравнения F(x)=0, необходимо преобразовать его к следующему
виду: |
|
x (x). |
(2) |
Это преобразование (приведение уравнения к виду, удобному для итерации) можно выполнить различными способами; некоторые из них будут рассмотрены ниже. Функция называется итерационной функцией.
Выберем каким-либо образом приближенное значение корня х(0) и подставим его в правую часть уравнения (2). Получим значение
х(1) (х(0) ). Подставим теперь х(1) в правую часть уравнения (2),
имеем х(2) (х(1) ). Продолжая этот процесс неограниченно, получим последовательность приближений к корню, вычисляемых по формуле
x(n 1) |
(x(n)), |
n 0. |
(3) |
|
29 |
|
|
Если существует предел построенной последовательности
х |
lim x(n) , то, переходя к пределу в равенстве (3) |
и предполагая |
|||||
|
n |
|
|||||
функцию непрерывной, получим равенство |
|
||||||
|
|
х |
х |
( |
х |
) |
(4) |
|
Это значит, что |
– корень уравнения (2). |
|
Начало
Ввод a, b,
i = 0
аi 1 аi аi |
|
|
|||
|
|
|
|||
bi 1 bi bi |
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
с |
a b |
|
|
|
|
|
|
i = i +1 |
|||
|
|||||
2 |
|
|
|
||
|
|
|
|
|
Нет
F(c)
Да Вывод c, i
Конец
Рис. 9
Метод допускает простую геометрическую интерпретацию. Построим графики функций у = x и у = (x), (рис. 10,а и 10,б). Корнем уравнения у = (x) является абсцисса точки пересечения кривой
30