Решение нелинейных уравнений с одной переменной

Раздел 2. Численные методы

Тема 1. Решение нелинейных уравнений с одной переменной

	Постановка задачи

При решении ряда задач физики, механики и техники возникает необходимость решения уравнений с одной переменной. В общем случае нелинейное уравнение можно записать в виде: F(x)=0, где функция F(x) определена и непрерывна на промежутке {a, b}. Корнем уравнения F(x)=0, является такое число c из области определения функции y=F(x), для которого справедливо равенство F(c)=0.

Поскольку подавляющее большинство нелинейных уравнений не решается путем аналитических преобразований (точными методами), на практике  их решают численными методами. Решить такое уравнение численными методами значит установить, имеет ли оно корни, сколько корней, и найти все его корни с заданной точностью. 

Задача численного решения уравнений состоит из двух этапов:

Отделение корней, т. е. нахождение достаточно малых окрестностей рассматриваемой области, в которых содержится единственный корень.

Уточнение корней, т. е. вычисление корней с заданной степенью точности в некоторой окрестности.



	Отделение корней

Во многих случаях отделение корней можно произвести графически. Для этого необходимо построить график функции y=F(x) и найти достаточно малые отрезки, содержащие по одной точке пересечения графика с осью ОХ. Иногда построение значительно упрощается, если функцию y=F(x) представить в виде f1(x)=f2(x) и найти отрезки оси ОХ, содержащие координаты х точек пересечения.

Отделение корней можно также произвести с помощью соответствующей компьютерной программы. 



a  x

x+h

bПусть имеется уравнение F(x)=0, причем все интересующие вычислителя корни находятся на отрезке [A, B], на котором функция определена и непрерывна. Требуется отделить корни уравнения, т.е. найти отрезки [a, b] [A, B], содержащие по одному корню. Очевидно, что если на отрезке [a, b] функция меняет знак, то на этом отрезке находится, по крайней мере, один корень уравнения F(x)=0. Если длина отрезка [a, b] очень мала и F(a)*F(b)<0, то можно считать, что на этом отрезке находится один корень.

Таким образом, вычисляя значения F(x), начиная с точки x=a, двигаясь вправо с некоторым шагом h, и проверяя условие F(х)*F(x+h)<0 можно отделить все корни [A, B].  



	Уточнение корней методом половинного деления

Пусть на отрезке [a, b] имеется единственный корень. 

Разделим [a, b] пополам точкой с. Если F(c)=0, то x=c - корень уравнения F(x)=0 на [a, b]. Наиболее вероятно, что  F(c)≠0. Тогда возможны 2 случая:

               1.  F(a)*F(с)<0                                                             2.  F(a)*F(с)>0               



c

a

b

b

c

a                         









Выбирая в каждом случае тот из отрезков, на котором функция меняет знак, и продолжая процесс половинного деления дальше, можно дойти до сколь угодно малого отрезка, содержащего корень уравнения.

Данный метод позволяет находить корни уравнения с заданной точностью е.  Действительно, если на каком-то этапе процесса деления получен отрезок  [a', b'], содержащий корень, то приняв x≈(a'+b')/2, мы найдем корень с точностью е(b'-a')/2.



	Уточнение корней методом итерации

Заменим уравнение F(x)=0 равносильным уравнением x=f(x). Пусть x* - искомый корень уравнения, а x0 – полученное каким-либо способом грубо приближенное значение корня. Подставим x0 в правую часть уравнения x=f(x), получим x1=f(x0). Продолжая процесс подстановки, получим последовательность чисел: x2=f(x1), x3=f(x2),…, xn=f(xn-1). Такая последовательность называется последовательностью приближений или итерационной последовательностью.

Достаточное условие сходимости итерационного процесса

Пусть на отрезке [a, b] уравнение x=f(x) имеет единственный корень и выполняются условия:

Функция y=F(x)  определена и дифференцируема на  [a, b];

 [a, b] для всех х из [a, b];

Существует такое действительное число q, что , для всех х из [a, b];

Тогда итерационная последовательность xn=f(xn-1) сходится при любом начальном значении x0 [a, b].

Это условие не является необходимым, т.е. итерационная последовательность может сходиться и в том случае, если условия теоремы не выполняются.

Оценка погрешности метода итерации

Пусть , тогда или . Это значит, что процесс итерации надо продолжать до тех пор, пока модуль разности двух соседних приближений не станет меньше .



	Уточнение корней методом хорд

Пусть уравнение F(x)=0 имеет единственный корень на отрезке [a, b]. Если отрезок [a, b] достаточно мал, то можно считать, что функция y=F(x) монотонна на этом отрезке и не меняет направление выпуклости. Значит на отрезке [a, b] нет точек максимума и минимума, т.е. . Т.к. направление выпуклости не меняется то и . Получаем четыре вида графиков, которые объединяются в два типа.

I. тип. Условие: , где x- любая точка [a, b].



A

B

b

a

a

b



A













B  

          



II. тип. Условие: , где x- любая точка [a, b].



B

B

A

A

a

b

a

b















               



Пусть x* - искомый корень уравнения F(x)=0. Заменим кривую графика на хорду АВ. Уравнение прямой, проходящей через точки А (а, F(а)) и В(b, F(b)) имеет вид: , где (x, y) – любая точка прямой  АВ. В качестве этой точки возмем точку пересечения хорды с осью ОХ, т.е.





(x1, 0). Получим    или                                                         .



В

A

b

A2

A1

1

x1     x2      x*

a Рассмотрим случай, когда кривая графика функции y=F(x) относится к I типу. Через точки А1 и В проводим следующую хорду. Она пересекает ось ОХ в точке х2. Аналогично получаем

   ,

…………………………………



 

       (1)



Полученная таким образом формула (1) называется формулой метода хорд для кривых I-го типа.

Очевидно, что последовательность значений х1, х2, х3, …,хn стремится к корню уравнения х*, а значит этот корень можно найти с заданной точностью.



В рассмотренном выше случае для кривых I-го типа,  правым концом всех проведенных хорд была точка В. Если, кривая относится ко II-му типу, то неизменным концом хорд будет точка А.  Значит в формуле (1)  b поменяется на а. Формула будет иметь вид:                                                                                            



                                                                                                       (2)

Если на n-ом шаге, то считается, что необходимая точность е достигнута.

	Уточнение корней методом касательных



B

a

            

x2  x1  b     

A1



A2

x*

AПри уточнении  корней методом касательных все функции делятся на два типа, как и в методе хорд. Рассмотрим кривую I-го типа.

 Проведем касательную к графику функции в точке В. Она пересечет ось ОХ в точке х1. Через эту точку проведем прямую перпендикулярную оси ОХ до пересечения с графиком функции. Получим точку А1. Через неё опять проведем касательную. Получим точку х2. Продолжая этот процесс, получим последовательность х1, х2, х3, …,хn, сходящуюся к х*.



Уравнение касательной к графику функции F(x)=0 в точке х=b имеет вид . Т.к. эта касательная пересекает ось ОХ в точке (х1, 0), то . Значит 



Если, кривая относится ко II-му типу, то первую касательную к графику функции надо проводить в точке А и 



Дальнейший расчет значений х2, х3, …,хn  не зависит от типа кривой и в обоих случаях вычисляется по формуле                       

Если на n-ом шаге, то считается, что необходимая точность е достигнута.

	Уточнение корней комбинированным методом хорд и касательных

Методы хорд и касательных дают приближение корня с разных сторон. Поэтому их часто применяют в сочетании друг с другом. В этом случае процесс уточнения корня идет быстрее.

Метод реализуется по следующей схеме:

По методу хорд находят первое приближение корня .   

По методу касательных находят . Если кривая относится к  I-му типу, то  . Если ко II-му типу, то .

По методу хорд  .

По методу касательных .

Шаги 3 и 4 повторяются до тех пор, пока  . Как только можно считать корень найденным .



Лабораторная работа №1. Решение нелинейных уравнений с одной переменной.



		Сделать программу отделения корней уравнения F(x)=0 на [a, b] с шагом 0,5. 

		Сделать  программы уточнения корней уравнения F(x)=0 на одном из отрезков, полученных в первой программе с точностью 0,001.

		Методом половинного деления;

	Методом итерации;

		Методом хорд;

		Методом касательных;

		Комбинированным методом хорд и касательных.

	



Номер варианта

Функция F(x)=0

Отрезок [a, b]



cos(x)-x3=0

[-3, 2]



x-10sin(x)=0

[2, 7]



4x4-6,2-cos(2x)=0

[-3, 2]



=0

[0, 5]



xsin(x)-1=0

[-2,3]



8cos(x)-x-6=0

[-5, 1]



sin(x)-0,2x=0

[-2, 3]



10cos(x)-0,1x2=0

[-2, 3]





[-10, -5]



3sin(2x)-2x3=0

[-2, 3]



3sin(8x)-7x=0

[-1,1]



(x+5)2+6x+x4-13=0

[0, 5]





Тест. Найти все корни уравнения x4-x3-2x2+3x-3=0 на .

 На этапе отделения корней с шагом h=1 получаем отрезки , Корни уравнения  с точностью е=0,01 : -1,73… и 1,73…



Контрольные вопросы

В чем заключается этап отделения корней при использовании численных методов решения уравнений? Какое условие должно выполняться, чтобы можно было считать что на достаточно малом отрезке находится один корень?  Что является исходными данными и что необходимо найти в программе Отделения корней?

В чем заключается этап уточнения корней методом половинного деления? Каким образом в этом методе реализуется выбор той половины отрезка, на которой находится корень? При каком условии деление отрезков прекращается и выводится результат?

Почему функции делятся на два типа при уточнении корней методом хорд? По какому условию осуществляется это деление? Дайте графическую иллюстрацию этого метода. Что служит критерием для прекращения вычислений в данном методе?

Почему функции делятся на два типа при уточнении корней методом касательных? По какому условию осуществляется это деление? Дайте графическую иллюстрацию этого метода. Что служит критерием для прекращения вычислений в данном методе?

В чем заключается этап уточнения корней комбинированным методом? Дайте графическую иллюстрацию этого метода. Что служит критерием для прекращения вычислений в данном методе?

В чем суть метода итерации? Каковы достаточные условия сходимости итерационной последовательности для уравнения x=f(x) на отрезке [a; b], содержащем один корень? Что служит критерием для прекращения вычислений в данном методе?