
- •«Решение нелинейных уравнений средствами Microsoft Excel»
- •Ó Ростовский государственный строительный университет, 2011 Введение
- •1. Отделение корней
- •Лабораторная работа № 1 на тему: «Отделение корней нелинейного уравнения аналитически и графически»
- •Образец выполнения лабораторной работы №1
- •Варианты заданий для лабораторной работы №1
- •2. Уточнение корней нелинейного уравнения при помощи некоторых численных методов
- •2.1. Уточнение корней методом половинного деления (дихотомии)
- •2.2. Уточнение корней методом хорд
- •2.3. Уточнение корней методом касательных (метод Ньютона)
- •2.4. Уточнение корней методом простой итерации
- •2.5. Сравнение эффективности методов
- •Лабораторная работа № 2 на тему: «Уточнение корней нелинейного уравнения при помощи некоторых численных методов»
- •Образец выполнения лабораторной работы №2
- •3. Нахождение корней нелинейного уравнения средствами ms Excel
- •3.1. Нахождение корней с помощью циклических ссылок
- •3.2. Нахождение корней с помощью подбора параметра
- •3.3. Нахождение корней с помощью поиска решения
- •Лабораторная работа № 3 на тему «Решение нелинейных уравнений средствами программы ms Excel»
- •Образец выполнения лабораторной работы №3
- •Численные методы решения нелинейных уравнений средствами vba
- •4.1. Начальные сведения: vba-проект, редактор vba, модуль
- •Общие процедуры
- •Процедуры обработки событий
- •4.2.2. Процедуры-функции (Function) Встроенные функции
- •Функции преобразования типов
- •Математические функции
- •Системные функции
- •Определяемые функции
- •4.2.3. Создание процедур и (или) определяемых функций
- •4.3. Объявление переменных
- •Базовые типы переменных Visual Basic
- •Лабораторная работа № 4 на тему «Программирование некоторых численных методов решения нелинейных уравнений на vba»
- •Образец выполнения лабораторной работы №4
- •Варианты заданий для лабораторных работ №2, №3, №4
- •Ответы к лабораторной работе №1
- •Ответы к лабораторным работам №2, №3, №4
- •Использованная литература
Варианты заданий для лабораторной работы №1
№ вар. |
Уравнение |
№ вар. |
Уравнение |
1 |
3x-1-4-x=0; |
11 |
2lgx- |
2 |
2x-lgx-7=0; |
12 |
ex+x+1=0; |
3 |
2ex=5x-2; |
13 |
Sin(x+1)=0,5x; |
4 |
x4-x-1=0; |
14 |
x3-6x=8; |
5 |
5sinx=x-1; |
15 |
3x+2x-3=0; |
6 |
2arctgx-3x+2=0; |
16 |
arctg(x-1)+2x=0; |
7 |
2x4-x2-10=0; |
17 |
3x-2x+5=0; |
8 |
2x-3x-2=0; |
18 |
3x4+4x3-12x2-5=0; |
9 |
x22x=3; |
19 |
arctgx- |
10 |
x3-3x2+9x-8=0; |
20 |
xlgx-1,2=0. |
2. Уточнение корней нелинейного уравнения при помощи некоторых численных методов
2.1. Уточнение корней методом половинного деления (дихотомии)
Самым простейшим из методов уточнения корней является метод половинного деления, или метод дихотомии, предназначенный для нахождения корней уравнений, представленных в виде (1).
Пусть функция f(x) удовлетворяет всем условиям теоремы о существовании корня непрерывной функции (см. с. 5). Предположим вначале, что мы находимся в условиях следствия 1 этой теоремы. Тогда на отрезке [a,b] (предполагаем, что a<b) существует единственный корень уравнения (1).
Метод половинного деления заключается в следующем:
Возьмем середину отрезка x0=(a+b)/2. Если f(a)f(x0)0, то корень явно принадлежит отрезку от a до x0 и, в противном случае, от x0 до b (рис.6). Отбрасываем “пустой” отрезок (не содержащий корня) и проводим соответствующие переобозначения концов отрезка. К примеру, на рис.6 после первого деления отрезка [a,b] пополам его серединой x0, мы переходим к отрезку [a,x0] и, следовательно, в качестве нового конца отрезка естественно выбрать b=x0.
Рис. 6. Несколько этапов применения метода деления пополам
Полученный
отрезок снова делим пополам точкой x1
и выполняем
действия сначала и т.д. Каждый такой шаг
уменьшает в два раза длину отрезка, в
границах которого заведомо имеется
корень уравнения (1). Процесс деления
отрезка продолжаем до тех пор, пока
длина отрезка, на концах которого функция
имеет противоположные знаки, не будет
меньше заданного числа .
Любая точка такого отрезка подходит в
качестве решения поставленной задачи.
Удобно за приближенное значение корня
принять середину отрезка [a,b],
т.е. число
.
Реализация алгоритма метода половинного
деления представлена на блок-схеме в
прил. (см. с.54). Так
как каждое очередное вычисление середины
отрезка xn
и значения функции f(xn)
сужает интервал поиска вдвое, то при
исходном отрезке [a,b] и предельной
погрешности
количество
вычислений n
определяется условием (b-a)/2n<,
или n>log2((b-a)/).
Например, при исходном единичном
интервале и точности порядка 6
знаков (~
10-6)
после десятичной точки достаточно
провести 20
вычислений (итераций) значений функции.
Обратим внимание на следующее обстоятельство. Мы вначале предполагали, что на [a,b] существует единственный корень. Вообще говоря, если выполнены условия теоремы о существовании корней непрерывной функции (см. с.5), то уравнение (1), может иметь несколько корней (см., к примеру рис.3). Описанный выше алгоритм метода деления пополам позволит все-таки получить один из этих корней. Это следует из того, что после деления отрезка пополам мы всегда выбираем из двух меньших отрезков такой, в котором обязательно имеется корень уравнения (1). Как правило, перед тем как прибегать к помощи подобных алгоритмов, пытаются определить границы a и b настолько точно, чтобы в отрезке [a,b] содержался ровно один корень (см. следствие 1 или 2).