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 и т.д. |
|