
6.4. Методы решения нелинейных уравнений Отделение корней
Дано уравнение
вида
.
Всякое значение,
обращающее в нуль функцию f(x),
называется корнем функции. Из-за сложного
вида функции часто возникают трудности
с аналитическим решением, и в этом случае
пользуются вычислительными методами
для приближенного нахождения корней.
Корни требуется получить с заданной
наперед точностью ε.
Приближенное нахождение действительных изолированных корней проходит в два этапа: 1) отделение корней, т.е. установление как можно более тесных промежутков, на которых содержится только один корень уравнения; 2) уточнение приближенных корней с точностью ε.
Существует два
способа для отделения корней: графический
и аналитический. В первом случае строится
график функции и находятся точки
пересечения с осью абсцисс. Часто сложную
функцию f(x)
разбивают на две h(x),
g(x)
таким образом, чтобы уравнениеможно было заменить на
.
В этом случае корень функцииf(x)
определяется
из пересечения графиков двух вспомогательных
функций.
,
тогда
и
.
Из построенного
с помощью системы MathCAD
графика видно, что имеются два корня:
при
и
.
Для второго способа отделения корней используется следующая теорема (Больцано-Коши):
Если непрерывная
функция f(x)
принимает значения разных знаков на
концах отрезка [a,b],
т.е.
,
то внутри этого отрезка содержится, по
меньшей мере, один корень уравнения.
Корень будет заведомо единственным,
если производнаяf’(x)
существует и сохраняет постоянный знак
внутри интервала (а,b).
Рассмотрим
аналитический способ отделения корней
для следующего примера:
.
Требуется найти участки, на которых
производная
сохраняет знак. Для этого необходимо
вычислить корни уравнения
).
В промежутках между корнями знак
производной сохраняется. Решая уравнение:
,
находим три корня:
,
,
.
Следовательно, имеются четыре интервала:
,
,
,
,
на которых знак производной не меняется.
Для определения промежутков, в которых
содержаться корни функцииf(x)
, необходимо исследовать знак функции
на концах интервалов. Результат такого
исследования удобно представить в
таблице:
X |
– |
|
|
|
+ |
Sign f(x) |
+ |
– |
+ |
– |
+ |
Из таблицы видно,
что все четыре корня по одному находятся
внутри отдельных интервалов. Промежутки
отделения корней можно сузить путем
подбора. При этом необходимо следить,
чтобы на концах отрезка [a,b],
внутри которого ищется корень, выполнялось
бы неравенство f(a)f(b)<0.
Так интервал
,
можно заменить на интервал
.
Заметим, что если бы функция в точке
–1/5 была отрицательна, то она имела бы
всего два действительных корня в
интервалах
и
.
Это означало бы, что у данной функции
два других корня – комплексные.
Методы уточнения корней
Метод половинного
деления (метод дихотомии)
предназначен для уточнения значения
корня на отрезке [a,b]
с заданной точностью ε.
Суть этого метода заключается в том,
что сначала находится середина отрезка
,
затем определяется часть отрезка,
[a,с]
или [с,b],
внутри которого располагается корень.
Если f(a)f(с)<0
, то корень содержится внутри отрезка
[a,с]
и деление можно продолжить, приняв за
правый конец точку с,
выполнив присваивание b=c.
В противном
случае, когда f(с)f(b)<0,
в точку с
смещается левый конец отрезка: а=с.
и т.д. Процесс половинного деления
следует остановить, когда длина отрезка
окажется меньше заданной точности:
.
Любая точка внутри такого отрезка –
искомое решение.
Ниже приведены
результаты уточнение корня рассмотренной
выше функции на интервале
,
с точностью
.
Вычисления с помощью электронных таблиц можно проводить, вручную, отслеживая знак произведений f(a)f(с) и f(с)f(b). Процесс можно автоматизировать если |
|
использовать условную функцию «ЕСЛИ». В данном примере в ячейках третьей строки таблицы записаны следующие формулы:
A |
B |
C |
D |
=ЕСЛИ(D2=D3;A2;C2) |
=ЕСЛИ(E2=E3;B2;C2) |
=(A3+B3)/2 |
=ЕСЛИ(D2*F2<0;D2;F2) |
E |
F |
G |
=ЕСЛИ(E2*F2<0;E2;F2) |
=5/4*C3^4+1/3*C3^3-5*C3^2-2*C3+1 |
=ABS(A3-B3) |
нижние строки заполняются с помощью копирования.
Вычисления с помощью MathCAD удобнее производить, используя программирование. Слева приведен пример такой программы. |
|
Методы Ньютона (касательных) и хорд
Для численного
решения уравнения
методами Ньютона и хорд необходимо,
чтобы первая и вторая производные
функцииf(x)
были непрерывны и сохраняли знак на
отрезке [a,b],
в котором заключен единственный корень
.
Из условия постоянства знака первой
производной следует единственность
корня при
на заданном отрезке, а из условия
постоянства знака второй производной
следует, что выпуклость функции не
меняется на вогнутость и наоборот.
Метод Ньютона
(метод касательных). Имеется некоторое
приближение xn
точного значения корня .
Тогда можно записать
,
где добавкуhn
считаем малой величиной. Используя
разложение функции f(x)
в ряд Тейлора около xn
до слагаемых первого порядка и приравнивая
его к нулю, имеем:
.
Откуда
.
Так как добавка
найдена приближенно, то можно сказать,
что вычислено новое приближениеxn+1
. Таким образом, получена итерационная
формула
для
В качестве нулевого
приближения x0
выбирается
тот конец отрезка [a,b],
который удовлетворяет соотношению
.
В общем случае,
для оценки точности
методом Ньютона недостаточно выполнения
условия
,
однако оно становится применимым с
ростомn
(при
).
Оценить точность можно, пользуясь общей
формулой
,
где
–
наименьшее значение
на отрезке [a,b].
Метод хорд.
В методе хорд, в отличие от метода
половинного деления, отрезок делится
не пополам, а, что более естественно,
пропорционально отношению
.Если для
определенности принять
,
,
а за х
точку, в которой производится деление
отрезка, то
.
После преобразований получается:
.После деления
необходимо сдвинуть один из концов
отрезка, так, чтобы корень оказался
внутри нового отрезка. Неподвижным
выбирается тот конец отрезка [a,b],
который удовлетворяет соотношению
,
где
или
.
В итоге итерационная формула для метода
хорд принимает вид:
при
,
при
.
Итерации можно
продолжать до тех пока
,
это автоматически означает, что
.
Ниже представлены
примеры уточнения корня уравнения
,
определенного
при
,
.
Так как
,
,
а
на
,
то в качестве начальной точки для
вычислений методом Ньютона необходимо
выбрать
.
Таблица вычислений с помощью метода
Ньютона выглядит следующим образом:
n |
|
|
|
- |
0 |
-11 |
3453 |
-5183 |
0,666216 |
1 |
-10,3338 |
308,0859 |
-4277,06 |
0,072032 |
2 |
-10,2618 |
3,293492 |
-4185,82 |
0,000787 |
3 |
-10,261 |
0,000389 |
|
|
Погрешность можно
оценить из соотношения
.
Так как
и на отрезке
она монотонна, то
.
В итоге погрешность
уточненного корня не превышает величины
.
Для того, чтобы
уточнить корень данного примера с
помощью метода хорд, необходимо
зафиксировать конец отрезка
.
Таблица вычислений этим методом:
N |
|
|
|
|
|
0 |
-10 |
-1050 |
-11 |
3453 |
0,766822 |
1 |
-10,2332 |
-115,797 |
|
|
0,741941 |
2 |
-10,2581 |
-12,1529 |
|
|
0,739339 |
3 |
-10,2607 |
-1,26871 |
|
|
0,739067 |
4 |
-10,2609 |
-0,13238 |
|
|
0,739039 |
5 |
-10,261 |
-0,01381 |
|
|
0,739036 |
Погрешность в этом случае можно оценить из разности двух последних приближений, или аналогично тому, как это было сделано ранее для метода Ньютона.
Метод итерации.
Суть этого
метода заключается в том, что уравнение
приводится путем тождественных
преобразований к виду
.
Выбирая в области отделения корня
начальное приближениеx0,
получают следующее приближение
,
затем вычисляют
и т.д.. Таким образом, итерационная
последовательность вычисляется по
рекуррентной формуле:
.
Если процесс сходится, т.е. существует
предел
, то
,
откуда
.
Следовательно предельное значение
итерационной последовательности
является корнем исходного уравнения.
Теорема о сходимости метода итерации.
Пусть
определена и дифференцируема на отрезке
[a,b],
тогда, если существует число q
такое, что
при
то:
1) Процесс итерации
сходится независимо от начального
значения
.
2) Предельное
значение
является единственным корнем уравнения
на отрезке [a,b].
При оценке достижения
точности ε
используется условие:
,
где
на отрезке [a,b].
В частности, при
это условие можно заменить на более
сильное неравенство
.
Для того, чтобы
процесс сходился,
можно искать из соотношения
,
где
.k
имеет тот
же знак, что и
.
Производная
.
Очевидно, что
,
так как отношение
может принимать значения в диапазоне
от нуля до двух.
Решение уравнений с помощью стандартных функций MathCAD
Кроме уже рассмотренной в начале раздела функции solve, решение уравнения можно получить с помощью функции root. Если исследуемая функция является полиномом, то все ее корни можно найти с помощью функции polyroots.
Функция root может иметь два аргумента: root(f(x),x) или четыре аргумента: root(f(x),x, а,b). При использовании двух аргументов указывается сама функция f(x) и переменная x, относительно которой решается уравнение. Функция может иметь несколько корней, поэтому в случае использования двух аргументов необходимо указывать начальное (приближенное) значение. Когда используются четыре аргумента, два дополнительных a и b определяют интервал, внутри которого находится корень. В последнем случае не требуется знать начального значения x, однако корень внутри заданного отрезка должен быть единственным, а значения f(а) и f(b) должны быть разных знаков. Ниже приведен пример вычисления корня ранее исследованной функции.
|
|
При использовании функции polyroots для полинома n-ой степени в качестве аргумента используется вектор с числом элементов n+1. Первым записывается свободный член полинома, вторым коэффициент при x1 и т.д. |
|