Его ещё называют методом дихотомии. Этот метод решения уравнений отличается от выше рассмотренных методов тем, что для него не требуется выполнения условия, что первая и вторая производная сохраняют знак на интервале [a, b]. Метод половинного деления сходится для любых непрерывных функций f(x) в том числе не дифференцируемых.
Разделим отрезок [a, b] пополам точкой. Если (что практически наиболее вероятно), то возможны два случая: либо f(x) меняет знак на отрезке [a, c] (Рис. 3.8), либо на отрезке [c, b] (Рис. 3.9)
Выбирая в каждом случае тот отрезок, на котором функция меняет знак, и продолжая процесс половинного деления дальше, можно дойти до сколь угодно малого отрезка, содержащего корень уравнения.
Пример 4. Уравнение 5x - 6x -3 = 0 имеет единственный корень на отрезке [1;2]. Решить это уравнение методом половинного деления.
Решение: Программа на языке Паскаль может быть такой:
program mdp;
function f(x: real): real;
begin
f:=exp(x*ln(5))-6*x-3;
end;
var
a, b, e, c, x: real;
begin
a:=1;
b:=2;
write ('e=');
read(e);
c:=(a+b)/2;
while abs(b-a)>e do
begin
if f(a)*f(c)<0 then
b:=c
else
a:=c;
c:=(a+b)/2;
end;
x:=(a+b)/2;
writeln ('x=',x:3:3,' f(x)=',f(x):4:4);
end.
Результат выполнения программы:
e=0.001 x=1.562 f(x)=-0.0047
20.Алгоритм метода половинного деления.
1.Определить новое приближение корня х в середине отрезка [а,b]: х=(а+b)/2.
2.Найти значения функции в точках а и х: F(a) и F(x).
3.Проверить условие F(a)*F(x) < 0. Если условие выполнено, то корень расположен на отрезке [а,х]. В этом случае необходимо точку b переместить в точку х (b=х). Если условие не выполнено, то корень расположен на отрезке [х,b]. В этом случае необходимо точку а переместить в точку х (а=х).
4.Перейти к пункту 1 и вновь поделить отрезок пополам. Алгоритм продолжить до того времени, пока не будет выполнено условие /F(x)/ < e (заданная точность).
21.Метод простой итерации для поиска корней. Геометрическая интерпретация.
Исходное уравнение f(x)=0 эквивалентными преобразованиями приводится к виду с выделением неизвестного в левой части, то есть x=φ(x),где φ(x) – некоторая функция, связанная с исходной функцией f(x). Такая форма записи уравнения позволяет, задаваясь начальным приближением x0, получить следующее, первое приближение x1=φ(x0), далее получают второе приближение x2=φ(x1) и так далее xn+1=φ(xn)…. Последовательность {xn}= x0, x1, x2, …, xn,… называется последовательностью итераций или приближений с начальным значением x0. Если функция φ(x) на [a,b] непрерывна и существует предел ξ = lim xn при n→∞, то, переходя к пределу в равенстве xn+1=φ(xn), найдем, что при n→ ∞: lim xn+1=lim φ(xn)=φ(lim xn), то есть ξ=φ(ξ).Следовательно, если последовательность приближений сходится, то она сходится к корню уравнения (2), а значит и уравнения (1). В силу сходимости итерационного процесса этот корень можно вычислить при достаточно большом n с любой заданной точностью. Однако необходимо определить при каких условиях последовательность {xn}будет сходящейся. Получим связь между погрешностями двух соседних приближений - εn и ε n+1: xn=ξ+εn, xn+1=ξ+ε n+1. Подставим эти представления в xn+1=φ(xn) и разложим функцию в ряд Тейлора в окрестности корня:ξ+εn+1=φ(ξ+εn)=φ(ξ)+εnφ’(ξ)+(εn2/2!)φ’’(η), где η Î [ξ; ξ+εn] Ì [a;b].Поскольку ξ - корень, то ξ=φ(ξ), то получаем: εn+1=εn φ’(ξ)+(φ’’(η)/2)εn2.Так как ε<1, то εn2<<εn . Поэтому если φ’(ξ) ¹ 0,то основной вклад в погрешность дает первое слагаемое, а слагаемым (φ’’(η)/2)εn2 можно пренебречь, то есть εn+1 » εn φ’(ξ).Это означает, что погрешность будет уменьшаться на каждом последующем шаге, если |φ’(ξ)|<1, тогда для любого n |εn+1|<|εn|. Сформулируем теорему о сходимости метода простых итераций, дающую достаточные условия сходимости.
Теорема о сходимости метода простых итераций.Пусть ξ - корень уравнения x=φ(x), функция φ(x) определена и дифференцируема на отрезке [a,b], причем для x Î[a,b] все значения функции φ (x) Î [a,b]. Тогда, если существует такое положительное число q<1, что при x Î [a,b] выполняется неравенство |φ’(ξ)|≤q<1, то на отрезке [a,b] уравнение x=φ(x) имеет единственный корень x=ξ и процесс итераций, выраженный формулой xn+1=φ(xn), где n=1,2,3… , сходится к этому корню независимо от выбора начального приближения x0 Î [a,b].Таким образом, последовательность {xn},начинающаяся с любого x0 Î [a;b], сходится к корню ξ со скоростью геометрической прогрессии, причем скорость сходимости тем выше, чем меньше величина q Î (1;0).Если функция φ(х) монотонно возрастает и 0<φ’(х)<1, то все приближения лежат по одну сторону от корня - такую сходимость называют монотонной (или ступенчатой) – рис.1. Если функция φ(х) монотонно убывает и 0>φ’(х)>-1, то соседние приближения лежат по разную сторону от корня – такую сходимость называют двусторонней (или спиралевидной) – рис.2. Поскольку в этом случае корень заключен в интервале, концами которого являются соседние приближения – ξÎ(xn,xn+1), то выполнение условия |xn+1-xn|<ε обеспечивает выполнение условия |ξ-x n+1|<ε.
Чтобы можно было сравнивать итерационные методы по скорости сходимости, вводят следующие понятия:
Определение 1: Сходимость последовательности {xn} к ξ называется линейной (соответственно, итерационный процесс - линейно сходящимся), если существует такая постоянная CÎ(0,1) и такой номер n0, что выполняются неравенства |ξ-xn+1|≤C|ξ-xn| для n≥n0.
Для введенных ранее погрешностей это означает |ε n+1|≤C|εn|. В методе простой итерации в роли постоянной C выступает значение q, то есть метод сходится линейно.
Определение 2: Последовательность приближений {xn} сходится к ξ по меньшей мере с р-ым порядком (соответственно, итерационный процесс имеет по меньшей мере p-ый порядок), если найдутся такие константы C>0, p≥1 и n0, что для всех n≥n0 выполняются условия |ξ-xn+1|≤C|ξ-xn |р (или в других обозначениях |ε n+1|≤C|εn|p).