Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методика выполнения работы(11).doc
Скачиваний:
50
Добавлен:
19.05.2015
Размер:
491.52 Кб
Скачать

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

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

Пусть непрерывная функцияf(x) на концах отрезка [a,b] имеет значения разных знаков, т.е. f(a)×f(b) ≤ 0 (рис. 2), тогда на отрезке имеется хотя бы один корень.

Рис. 2. Метод деления отрезка пополам

Возьмем середину отрезка с=(a+b) / 2. Если f(a)×f(с)≤ 0, то корень явно принадлежит отрезку от a до (a+b) / 2 и в противном случае от (a+b) / 2 до b.

Поэтому берем подходящий из этих отрезков, вычисляем значение функции в его середине и т.д. до тех пор, пока длина очередного отрезка не окажется меньше заданной предельной абсолютной погрешности (b-a) < ε.

Так как каждое очередное вычисление середины отрезка c и значения функции f(c) сужает интервал поиска вдвое, то при исходном отрезке [a,b] и предельной погрешности ε количество вычислений n определяется условием (b-a)/2n < ε, или n ~ log2((b-a)/ε). Например, при исходном единичном интервале и точности порядка 6 знаков (ε ~ 10-6) после десятичной точки достаточно провести 20 вычислений (итераций) значений функции.

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

Вычислительная процедура в Excel может быть реализована так.

В ячейки вносим следующие формулы:

В ячейку А2 − а (левая граница интервала локализации корня);

В ячейку В2 − b (правая граница интервала локализации корня);

В ячейку С2 − =(А2+В2)/2;

В ячейку D2 − =f(A2)*f(C2);

В ячейку F2 − 0,0001 (абсолютная погрешность);

В ячейку А3 − =ЕСЛИ(D2<=0;A2;C2);

В ячейку B3 − =ЕСЛИ(D2<=0;С2;B2);

В ячейку D3 − =f(A3)*f(C3);

В ячейку Е3 − =ЕСЛИ(ABS(B3-A3)>$F$2;”продолжаем”;”конец”);

После этого выделяются ячейки А3:Е3 и автозаполнением буксируются вниз до появления в столбце Е сообщения “конец”. Вычисленный корень с заданной точностью будет находиться в конце столбца F.

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

Первый корень находится внутри отрезка [a, b] = [-2,1; -2] расположенного по адресу А2:В2. Заполняем рабочий лист формулами и с заданной точностью 0,0001 определяем его значение (рис. 3). Ответ находится в ячейке С12 и равен X1 = -2,073.

Рис. 3. Вычисление корня Х1

Границы отрезка второго корня находящегося внутри отрезка [a, b] = [-0,4; -0,3] подставляем в таблицу по адресу А2:В2. Определяем его значение (рис. 4). Ответ находится в ячейке С12 и равен X2 = -0,328.

Границы отрезка третьего корня находящегося внутри отрезка [a, b] = [0,7; 0,8] подставляем в таблицу по адресу А2:В2. Определяем его значение (рис. 5). Ответ находится в ячейке С12 и равен X3 = 0,7893.

Как и предполагалось, имеется три корня, два из которых отрицательные (Х1 = -2,073; Х2 = -0,32808; Х3 = 0,789307).

Рис. 4. Вычисление корня Х2

Рис. 5. Вычисление корня Х3

Уточнение корней рекуррентным методом (метод касательных Ньютона)

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

Наиболее популярным из рекуррентных методов является метод касательных Ньютона.

Рекуррентный метод один из методов задания последовательностей. Любой член последовательности, начиная с некоторого, часто выражают через предшествующие (один или несколько). Например, последовательность 1, 2, 3, 5, 8, 13, … может быть задана следующим образом:

Действительно,

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

На практике вычисление в MS Excel последовательностей по рекуррентным соотношениям приводит к ошибке (предупреждение о циклической ссылке).

Это значит, что в ячейку, в которую введена формула содержит ссылку на эту же самую ячейку (может быть и не напрямую, а опосредовано – через цепочку других ссылок), то говорят, что имеет место циклическая ссылка (цикл). MS Excel не может провести вычисления, так как циклические ссылки порождают бесконечное количество вычислений. Есть два выхода из этой ситуации: устранить циклические ссылки (отказаться от рекуррентного способа вычислений) или допустить вычисления по формулам с циклическими ссылками (в последнем случае число повторений цикла должно быть конечным). Для реализации второй возможности щелкните на кнопке Office (в левом верхнем углу), а затем наПараметры Excel. В открывшемся окне Параметры Excel перейдите на вкладку Формулы и отметьте Включить итеративные вычисления и установить Предельное число итераций и Относительную погрешность вычислений.

На этой же вкладке, можно выбрать, как будут вестись вычисления: автоматически или вручную. При автоматическом вычислении MS Excel сразу рассчитает конечный результат, при вычислениях, вручную, можно будет наблюдать результат каждой итерации (простым нажатием функциональной клавиши F9 запуская каждый новый цикл вычисления).

Уточним корни уравнения рис.1 рекуррентным методом касательных Ньютона. Для решения уравнения нам понадобится рекуррентная формула (то есть, формула, выражающая каждый член последовательности через один или несколько предыдущих членов):

,

где – переменная;

–функция, задающая уравнение, корни которого мы ищем; ;

–производная функции ;.

Итоговая формула имеет вид:

Выберем любую ячейку (например, О2) на листе MS Excel, присвоим ей имя x, и введем в нее формулу:

=x–(x^5+2*x^4+5*x^3+8*x^2–7*x–3)/(5*x^4+8*x^3+15*x^2+16*x–7).

После ввода в ячейку формулы и ее выполнения в ячейке появится значение –0,32804, соответствующее одному из корней уравнения.

В нашем случае начальное приближение не задавалось, вычислительный процесс начинался со значения, по умолчанию хранимого в ячейке х и равного нулю. При этом ближним оказался корень , принадлежащий промежутку(рис. 1). А как получить первый и третий корни? Для этого мы будем использовать логическую функцию ЕСЛИ, где в качестве второго аргумента будем подставлять значения из промежутков корняидля которых значения промежутковиближе к 0: значение –2,1 (для корня) и значение 0,8 (для корня).

Рис. 6. Уточнение корня Х1.

Рис. 7. Уточнение корня Х3.

Ответ: