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

Обновлено: 05.07.2024

Идея метода состоит в выборе точности решения и сведении первоначального отрезка [А;В], на котором существует корень уравнения, к отрезку заданной точности. Процесс сводится к последовательному делению отрезков пополам точкой С=(А+В)/2 и отбрасыванию той половины отрезка ([А;С] или [С;В]), на котором корня нет.

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

Процесс продолжается до тех пор, пока длина отрезка не станет меньше удвоенной точности. Деление этого отрезка пополам дает значение корня х=(А+В)/2 с заданной точностью. (Объяснение материала сопровождается презентацией)

Приближенное решение уравнений с помощью электронных таблиц Excel.

Задача: решить уравнение x 3 =cosx

Чтобы решить уравнение графически, введем функцию у= x 3 - cosx

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

[-2,5; 2,5] с шагом h=0,5 (заготовлена заранее). Построим график этой функции. На промежутке (-2,5; 2,5) график имеет одну точку пересечения с осью абсцисс, значит, на этом промежутке уравнение имеет один корень.

  1. Разработка компьютерной модели нахождения корня уравнения на языке Visual Basic (Приложение 3)

Проект “Приближенное решение уравнения” (Приложение1)

1. Поместить на форму текстовые поля для ввода числовых значений концов отрезка А и В, поле для ввода точности вычислений и поле для вывода значений корня.

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

Private Sub Комманда1_Click()

dblC = (dblA + dblB) / 2

If (dblA ^ 3 - Cos(dblA)) * (dblC ^ 3 - Cos(dblC)) < 0 Then dblB = dblC Else dblA = dblC

Loop While (dblB - dblA) / 2 > dblE

Текст8.Text = (dblA + dblB) / 2

  1. Закрепление материала. Проверка качества усвоения материала.

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

Определить корни уравнения графически. Уточнить один из корней уравнения с точностью e =0,1.

где f(x) - алгебраическая или трансцендентная функция.

Решить такое уравнение – значит установить, имеет ли оно корни, сколько корней, и найти значения корней (с указанной точностью).

  1. Отделение корней алгебраических и трансцендентных уравнений

Решение указанной задачи начинается с отделения корней, т.е. с установления:

  • количества корней;
  • наиболее «тесных» промежутков, каждый из которых содержит только один корень.

Чтобы выяснить имеет ли уравнение корень:

1) Строят график функции y=f(x) для уравнения вида f(x)=0. Значения действительных корней уравнения являются абсциссами точек пересечения графиков функций y=f(x) с осью Ох.

y=f(x) кривая трижды пересекает ось абсцисс, следовательно уравнение f(x)=0 имеет три простых корня

если кривая касается оси абсцисс, то уравнение имеет двукратный корень

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

2) представляют уравнение в виде f(x)=g(x) и стоят графики функции y=f(x) и y=g(x). Значения действительных корней уравнения являются абсциссами точек пересечения графиков функций у=f(х) и y=g(x). По графику определяются два числа а и b, между которыми заключен корень.

кривые y=f(x) и y=g(x) пересекаются в двух точках, абсциссы которых х 1 и х 2 являются корнями уравнения f(x)=g(x)

При решении задачи об отделении корней бывают полезными следующие очевидные положения:

  1. Если непрерывная на отрезке [ a;b ] функция f(x) принимает на его концах значения разных знаков (т.е. f(a) . f(b) ), то уравнение (2.1) имеет на этом отрезке, по меньшей мере, один корень.
  2. Если функция f(x) к тому же еще и монотонна, то корень на отрезке [ a;b ] единственный.

Пример: Для графического отделения корней уравнения преобразуем его к равносильному уравнению и отдельно построим графики функций .

Из рисунка видно, что графики пересекаются в одной точке, то есть уравнение имеет единственный корень х= Е и этот корень находится на отрезке [1;1,5].

Вычислим для проверки значения функции на концах отрезка [1;1,5]: f(1)=0.909298; f(1,5)= -0,264344, на концах отрезка значения функции имеют разные знаки, тогда корень на отрезке [1;1,5] действительно имеется.

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

Пусть уравнение (2.1) имеет на отрезке [ a;b ] единственный корень, причем функция f(x) на этом отрезке непрерывна.

1) Разделим отрезок [ a;b ] пополам точкой с=(a+b)/2 .

2) Если f(c)=0, то корень найден.

3) Если f(c)≠ 0(что практически наиболее вероятно), то нужно выбрать отрезок, на котором расположен корень. Возможны два случая: f(x) меняет знак либо на отрезке [ a;с ] (рис 2.1), либо на отрезке [ с;b ] (рис 2.2).

Рис 2.1. – функция f(x) меняет знак Рис 2.2. – функция f(x)

на отрезке [a;c] меняет знак на отрезке [c;b]

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

4) Этот отрезок снова делим пополам и повторяем шаги 1)-3)

Тогда, либо через конечное число делений отрезка пополам найдём точное значение корня, либо построим бесконечную последовательность вложенных отрезков:
[a; b] [a1; b1] . [an; bn], длины которых стремятся к нулю.

Как только |b n –a n |/2 E , где Е - заданная точность, то в качестве
приближённого значения корня можно взять середину этого отрезка: х=(a n +b n )/2.

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

  1. Пример решения уравнений методом половинного деления

Пример: Найти корень уравнения на отрезке [1,3;1,5] с точностью до

Решение: Уравнение имеет единственный корень на отрезке [1,3;1,5].

  1. Уточним корень уравнения: Найдем середину отрезка [1,3;1,5]: .

Определим, на каком из полученных отрезков [1,3;1,4] и [1,4;1,5] функция меняет свой знак.

Значит, корень уравнения находится на отрезке [1,3;1,4].

Проверим, достигается ли заданная точность решения 10 -4 :

, точность не достигнута.

  1. Продолжаем процесс разделим отрезок [1,3;1,4] пополам точкой .

Определим, на каком из полученных отрезков [1,3;1,35] и [1,35;1,4] функция меняет свой знак.

Значит, корень уравнения находится на отрезке [1,35;1,4].

Проверим, достигается ли заданная точность решения 10 -4 :

, точность не достигнута.

  1. Снова разделим отрезок [1,35;1,4] пополам точкой .

Определим, на каком из полученных отрезков [1,35;1,375] и [1,375;1,4] функция меняет свой знак.

Значит, корень уравнения находится на отрезке [1,375;1,4].

Проверим, достигается ли заданная точность решения 10 -4 :

, точность не достигнута.

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

Решение уравнения с точностью 10 -4 : х=1,3994.

Алгоритм метода половинного деления

1) Найдем середину отрезка [a; b]: c=(a+b)/2;
2) Вычислим значения функции в точках a и c и найдем произведение полученных значений: d=f(c)*f(a);
3) Если d>0, то теперь точкой a станет c: a=c; Если d ε или

|a-b|/2> ε , то идем в пункт 1) если нет, то корень с нужной нам точностью найден, и он равен: x=(a+b)/2;

Пусть корень уравнения (1) отделен на отрезке [a;b]. Требуется найти значение корня с точностью ε.


"Процедура уточнения положения корня заключается в построении последовательности вложенных друг в друга отрезков, каждый из которых содержит корень уравнения. Для этого находится середина текущего интервала неопределенности (6):


В в качестве следующего интервала неопределенности из двух возможных выбирается тот, на концах которых функция F(x)=0 имеет разные знаки"[8]. "Точность будет достигнута, если:


Корень уравнения вычисляется по формуле x=(an+bn)/2 (7)"[1].

Пусть дана задача следующего характера: Уточнить корни уравнения cos(2x)+x-5=0 методом половинного деления с точностью до 0,00001.

Для того чтобы уточнить корни уравнения cos(2x)+x-5=0 методом половинного деления, используя Excel, необходимо выполнить следующие действия:

Заполнить ячейки A1:H1 последовательно следующим образом: a, b, c=(a+b)/2, f(a), f(b), f(c), |b-a|<=2*e, e.

Ввести в ячейку A2 число 5, в ячейку B2 - число 6.

В ячейку B2 ввести формулу: =(A2+B2)/2.

В ячейку D2 ввести формулу: =cos(2*A2)+A2-5, скопировать эту формулу в ячейки E2:F2.

Ввести в ячейку G2 формулу: =ЕСЛИ(ABS(B2-A2)<=2*$H$2;C2;"-").

Ввести в ячейку H2 число 0,00001.

В ячейку A3 ввести формулу: =ЕСЛИ(D2*F2<0;A2;C2).

В ячейку B3 ввести формулу: =ЕСЛИ(D2*F2<0;C2;B2).

Диапазон ячеек C2:G2 скопировать в диапазон ячеек C3:G3.

Выделить диапазон ячеек A3:G3 и с помощью маркера заполнения заполнить все нижестоящие ячейки до получения результата в одной из ячеек столбца G (это ячейки A3:G53).

В итоге получаем следующее:


Ответ: Корень уравнения cos(2x)+x-5=0 равен 5,32977.

2. Метод хорд

" Для реализации данного метода, нужно построить исходную функцию y=F(x) и найти значения функции на концах отрезка F(a) и F(b). Затем провести хорду М1M2 c концами в точках М1(a, F(a)) и M2(b, F(b)). Абсцисса точки пересечения хорды М1M2 с осью OX это и есть приближенный корень x1. Далее найти точку M3(X1 ,F(x1 )), построить следующую хорду и найти второй приближенный корень x2. И так далее. В зависимости от поведения функции возможны два случая:


Рис. 1


Рис. 2

Для первого случая (Рис. 1) справедлива следующая формула (8):


и справедливо неравенство: F(a)*F''(a)>0, где x0=b.

Для второго случая (Рис. 2) справедлива следующая формула (9):


и справедливо неравенство: F(b)*F''(b)>0, где x0=a.

Условия сходимости метода секущих аналогичны условиям сходимости метода Ньютона, т. е."[1]


.

Пусть дана задача следующего характера: Уточнить корни уравнения cos(2x)+x-5=0 методом хорд с точностью до 0,00001.

Для того чтобы уточнить корни уравнения cos(2x)+x-5=0 методом хорд, используя Excel, необходимо выполнить следующие действия:

Выбрать одну из двух предложенных формул для решения задачи, для этого:

Найти производную первого порядка от функции f(x)=cos(2x)+x-5. Она будет выглядеть следующим образом: f1(x)=-2sin(2x)+1.

Найти производную второго порядка от функции f(x)=cos(2x)+x-5. Она будет выглядеть следующим образом: f2(x)=-4cos(2x).

Заполнить ячейки следующим образом:

- В ячейку A1 ввести a.

- В ячейку A2 ввести цифру 5.

- В ячейку B1 ввести b.

- В ячейку B2 ввести цифру 6.

- В ячейку C1 ввести f(x)=cos(2x)+x-5.

- В ячейку C2 ввести формулу =COS(2*A2)+A2-5.

- В ячейку D1 ввести f1(x)=-2sin(2x)+1.

- В ячейку E1 ввести f2(x)=-4cos(2x).

- В ячейку E2 ввести формулу =-4*COS(2*A2).

- В ячейку F1 ввести Выбор формулы.

- В ячейку F2 ввести формулу =ЕСЛИ(C2*E2>0;"Воспользоваться формулой 8";"Воспользоваться формулой 9").

- В ячейку G1 ввести e.

- В ячейку G2 ввести цифру 0,00001.

В итоге получается следующее:


Исходя из того, что выбрана формула 9, в Excel необходимо выполнить следующие действия:

В ячейку A4 ввести xn.

В ячейку B4 ввести f(xn).

В ячейку C4 ввести b-xn.

В ячейку D4 ввести f(xn)*(b-xn).

В ячейку E4 ввести f(b).

В ячейку F4 ввести f(b)-f(xn).

В ячейку G4 ввести xn-f(xn)*(b-xn)/f(b)-f(xn).

В ячейку H4 ввести |f(xn)|<=e.

В ячейку A5 ввести цифру 5.

В ячейку B5 ввести формулу =COS(2*A5)+A5-5.

В ячейку C5 ввести формулу =$B$2-A5.

В ячейку D5 ввести формулу =B5*C5.

В ячейку E5 ввести формулу =COS(2*$B$2)+$B$2-5.

В ячейку F5 ввести формулу =$E$5-B5.

В ячейку G5 ввести формулу =A5-(B5*C5/F5).

В ячейку H5 ввести формулу =ЕСЛИ(ABS(B5)<=$G$2;A5;"-").

В ячейку A6 ввести формулу =G5.

Выделить диапазон ячеек B5:D5 и скопировать его методом протягивания в диапазон ячеек B6:D6.

Выделить диапазон ячеек F5:H5 и скопировать его методом протягивания в диапазон ячеек F6:H6.

Выделить диапазон ячеек A6:H6 и скопировать его методом протягивания в диапазон ячеек ниже до получения результата в одной из ячеек столбца H (A6:H9).

В итоге получаем следующее:


Ответ: Корень уравнения cos(2x)+x-5=0 равен 5,32976.

Тут вы можете оставить комментарий к выбранному абзацу или сообщить об ошибке.

При организации циклической ссылки точность вычислений зависит от числа выполненных итераций. Это число определяет пользователь, руководствуясь формулами оценки точности вычислений приближенного значения корня, в зависимости от применяемого метода, например, в методе половинного деления число итераций, определяемого формулой (6), при этом погрешность вычислений определяется по формуле (5).

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

1. В меню Сервис выбрать команду Параметры . В появившемся окне Параметры выбрать вкладку Вычисления , на которой снять флажок Итерации ; в поле Предельное число итераций ввести число, обеспечивающее точность вычислений.

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

3. Выполнить команду Сервис/Параметры. На вкладке Вычисления окна диалога Параметры установить флажок Итерации и нажать кнопку Ок. Выполняется

1. Если Excel регистрирует циклическую ссылку, следует в появившемся окне нажать кнопку Отмена .

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

ной щелчок мышкой по соответствующей ячейке. Ячейка открывается для корректировки, формулу не корректируем, а нажимаем на клавишу Enter .

3. Расчеты с использованием циклической ссылки могут быть выполнены пошагово:

1) В меню Сервис выбираем команду Параметры . В появившемся окне Параметры выбираем вкладку Вычисления , на которой устанавливаем флажок Итерации , в поле Предельное число итераций вводим число 1 и нажимаем кнопку Ok . Выполняется одна итерация.

2) При каждом нажатии клавиши F9 будет выполняться одна итерация. Рассмотрим решение примера средствами Excel.

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

В таблице Excel выполним следующие действия.

1. В ячейку D4 вводим значение a = –1 – начало интервала изоляции нуля функции f(x) . В ячейку E4 вводим значение b = 0 – конец интервала изоляции нуля функции f(x) .

2. В ячейку G4 вводим константу ε = 10 –7 , определяющую точность вычисле-

3. В ячейку H4 вводим формулу (5), определяющую число итераций для достижения заданной точности:

На вкладке Вычисления в поле Предельное число итераций вводим полученное число.

4. В ячейку G9 вводим формулу (4), определяющую достигнутую точность вычислений:

6. В ячейку H7 вводим формулу, определяющую число выполненных итера-

7. Распределяем ячейки и вводим соответствующие формулы, реализующие метод половинного деления. Данные см. в таблице.

Читайте также: