Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
total2.doc
Скачиваний:
421
Добавлен:
17.04.2013
Размер:
5.04 Mб
Скачать

2.1. Метод дихотомии (деления отрезка пополам)

Допустим, что каким-либо способом определен отрезок изоляции корня. Это означает, что график функции пересекает ось абсцисс (Рис.2.1), т.е. значения и имеют разные знаки. (Если график функции касается оси абсцисс, то необходимо решить уравнение, аналогичное (2.1), но только для производной функции. Этот случай рассматриваться не будет.) Для определенности будем считать, что , а .

Рис.2.1. Метод дихотомии

Найдем середину отрезка число (нулевое приближение)

. (2.2)

Значение будет либо меньше нуля, либо больше нуля (если , то корень найден). Очевидно, что решение будет лежать на отрезке . Далее найденный отрезок опять делим пополам и находим первое приближение

(2.2)

и опять определяем знак . После приближений исходный отрезок, на котором ищется решение, будет уменьшен в раз. Например, после 10 итераций решение будет находиться в отрезке длиной , а после 20 – .

Вычисления проводятся до тех пор, пока не выполнится условие: или .

Алгоритм

  1. Определяем знаки и .

  2. Вычисляем нулевое приближение – .

  3. Определяем знак .

  4. Если , то определяем новый отрезок, где находится решение – , иначе .

  5. Вычисляем первое приближение и т.д.

Рассмотрим для примера уравнение

. (2.3)

Это уравнение имеет два корня, локализованных на отрезках и . Убедимся, что на концах этих отрезков функция принимает разные знаки

. (2.4)

Будем искать один из корней на отрезке , используя вариант программной реализации метода на языке MatLab с точностью не менее .

Программа 2.1.

x=-2:0.1:2

plot(x,4*(1-x.^2)-exp(x));

%График функции. Локализация решения

pause;

%Начальное приближение

a=-1;

b=0;

%Значение функции в точках a и b

fa=4*(1-a^2)-exp(a)

fb=4*(1-b^2)-exp(b)

eps=1.e-3;

%Цикл для вычисления n-го приближения

%Выход из цикла, когда ошибка становится меньше 10-3

while abs(b-a)>eps

c=(a+b)/2;

fc=4*(1-c^2)-exp(c);

if sign(fc*fa)==-1 b=c; end;

if sign(fc*fb)==-1 a=c; end;

end;

%Отображение на экране значений концов

%отрезка, где находиться решение, и

%достигнутой точности

a

b

abs(b-a)

end.

В результате проведенных расчетов получаем, что решение локализовано в интервале , точность составляет .

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

2.2. Метод хорд

Одним из вариантов, развивающих метод дихотомии, является определение приближенного решения методом хорд. Графически этот метод представлен на рисунке 2.2. Суть данного метода заключается в том, что приближенное решение определяется в точке пересечения прямой, соединяющей концы отрезка .

Рис.2.2. Метод хорд

Уравнение прямой, проходящей через концы отрезка, имеет вид

, (2.5)

где

, (2.6)

а можно выразить двумя способами, приводящими к одному и тому же значению:

(2.7)

Соответственно для нулевого приближения так же будем иметь два варианта (одинаковых по значению) (2.8)

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

Соседние файлы в предмете Численные методы