Метод половинного деления (Дихотомия)


Определение 2.1.1 – корень уравнения это число (или числа), при подстановке которого (которых) в уравнение оно обращается в ноль или тождество.

Любому методу решения нелинейного уравнения предшествует этап отделения корней.

Определение 2.1.2 – отделение корней это установление достаточно тесного промежутка (или промежутков) значений на оси Х, в котором (в которых) находится корень.

Алгоритм нахождения корней нелинейного уравнения методом половинного деления с заданной точностью eпредставлен на 2.1.1.

Рис. 2.1.1

 

Суть алгоритма в следующем:

– в программу, в данном случае, с именем Pol_del с тремя формальными параметрами a, b и e, передаются значения промежутка [a;b], в котором обнаружен корень, и значение точности;

– вычисляется значение средней точки промежутка c=(a+b)/2;

– определяется, в какой половине промежутка функция уравнения f(x) поменяла знак, для чего вычисляется логическое выражение f(a) * f(c)<0;

– если результат вычисления логического выражения равен 1, значит функция уравнения f(x) поменяла знак в первой половине промежутка [a;b] и поэтому b = c, в противном случае a = c;

– процесс повторяется до тех пор, пока не выполнится условие |a-b|<=e;

– значение средней точки последнего промежутка [a;b] и есть корень уравнения с заданной точностью e.

На рис. 2.1.2 приведён пример решения нелинейного уравнения

2x3+x2-3x+2=0.

 

 

Рис. 2.1.2

Начинать выполнение задания следует с создания в VBA модуля, соответствующего функции уравнения задания, в данном случае это:

Function nel_ur_1(x)

nel_ur_1 = 2 * x ^ 3 + x ^ 2 - 3 * x + 2

End Function

Затем в диапазоне A5:B25, в данной адресации, необходимо получить таблицу значений функции nel_ur_1 от аргумента X. Построить график этой функции.

При этом начальное значение аргумента X, ячейка A5, и начальное значение шага изменения аргумента X, ячейка B2, подбираются таким образом, чтобы на графике чётко увидеть пересечение кривой графика функции с осью абсцисс. Это есть графическое решение заданного нелинейного уравнения.

В таблице, в столбце значений аргументов X, диапазон A5:A25, определить пару значений аргумента X, при которых функция, диапазон B5:B25, меняет знак. В данном случае это пара ячеек A17:A18.

Таких пар может быть несколько.

Этап отделения корней завершён.

Далее в строке 7, оформить “шапку” таблицы, как показано на рис. 2.1.2.

Заполнить первую строку таблицы:

– в ячейку E8 записать =A17;

– в ячейку F8 записать =A18;

– в ячейку G8 записать арифметическое выражение, вычисляющее значение средней точки =(F8+E8)/2;

– в ячейке H8 с помощью мастера функций fx вызвать модуль, соответствующий решаемому уравнению =nel_ur_1(E8);

– в ячейке I8 с помощью мастера функций fx вызвать модуль, соответствующий решаемому уравнению =nel_ur_1(F8);

– в ячейке J8 с помощью мастера функций fx вызвать модуль, соответствующий решаемому уравнению =nel_ur_1(G8);

– убедиться, что значения ячеек B17 и H8 совпадают;

– убедиться, что значения ячеек B18 и I8 совпадают;

– в ячейку F8 записать условный оператор =ЕСЛИ(ABS(E8-F8)<=$G$5;"корень ="&ТЕКСТ(G8;"0.0000000000")&" за "&D8&" шагов";ABS(E8-F8)).

Заполнить вторую строку таблицы:

– в ячейку E9 записать условный оператор =ЕСЛИ(H8*J8<0;E8;G8);

– в ячейку F9 записать условный оператор =ЕСЛИ(H8*J8<0;G8;F8);

– выделить диапазон G8:K8 первой строки таблицы и скопировать на вторую строку таблицы;

– выделить диапазон E9:K9 второй строки таблицы и скопировать вниз до тех пор пока, в столбце K не появится сообщение корень = -1.7148040771 за 15 шагов (для решаемого варианта задания).

Таким образом, нелинейное уравнение 2x3+x2-3x+2=0в среде Excel решено методом дихотомии и корень уравнения равен -1.7148040771.

При этом заданная точность решенияe = 0.00001 достигнута за 15 итераций.

Для решения заданного уравнения в среде VBA необходимо создать модуль VBA:

 



Дата добавления: 2020-07-18; просмотров: 481;


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

Поделитесь с друзьями:

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.01 сек.