
- •«Решение нелинейных уравнений средствами 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
- •Использованная литература
Образец выполнения лабораторной работы №3
1. Постановка задачи для конкретного варианта и исходные данные.
Найти корень нелинейного уравнения e-x-x=0 с точностью =10-4 на заданном отрезке [0,1] средствами MS Excel.
Имеем: f(x)= e-x-x, a=0, b=1, =0,0001.
2. Описание метода решения, зарисовка фрагмента рабочего листа с указанием формул, которые необходимо ввести для каждого из соответствующих численных методов. Для соответствующего численного метода привести блок-схему:
1) с использованием циклических ссылок, применяя следующие численные методы (краткое изложение метода решения нелинейного уравнения с помощью циклических ссылок см. в п. 3.1 (с. 27) (ознакомиться и дать описание метода самостоятельно)).
Включаем режим циклических вычислений (см. п.3.1, с. 27).
а) метод половинного деления.
В ячейки рабочего листа заносим формулы либо значения, приведенные в таблице, расположенной ниже:
-
Ячейка
Формула либо значение
A1
B1
C1
D1
E1
A2
B2
C2
D2
E2
a
b
xn
b нач
f(xn)
=ЕСЛИ((EXP(-A2)-A2)*(EXP(-C2)-C2)<0;A2;C2)
=ЕСЛИ(B2=0;D2;ЕСЛИ((EXP(-A2)-A2)*(EXP(-C2)-C2)<0;C2;B2))
=(A2+B2)/2
1
=EXP(-C2)-C2
Заметим, что в ячейку E2 помещаем формулу, задающую вычисление значения функции в точке xn, что позволит следить за процессом решения. На первом шаге вычислений в ячейку B2 будет помещено значение, соответствующее концу отрезка, на котором существует корень заданного уравнения, а затем уже начнется счет по формуле на последующих шагах. Начало отрезка не задавалось, поскольку итерационный вычислительный процесс начинался со значения, по умолчанию хранимого в ячейке A2 и равного нулю.
Если отрезок, содержащий корень, иной, то изменится содержимое ячейки D2, соответствующее начальному концу отрезка, и если начальное значение начала отрезка не нулевое, то потребуется ввести дополнительную ячейку a нач, подобно b нач, с соответствующей формулой. (В случае необходимости проделать самостоятельно.)
Для нашего уравнения после ввода формул в соответствующие ячейки в ячейке C2 появится значение 0,567143, что и является корнем уравнения (см. рис. ниже).
Блок-схема, реализующая метод половинного деления, приведена в прил.1 (см. с.54).
б) метод хорд.
Рассуждая также, как и в лабораторной работе №2, показываем, что в нашем случае, неподвижным остаётся начало отрезка, равное 0. Поэтому рекуррентная формула, задающая вычисления по методу хорд, выглядит следующим образом:
В ячейки рабочего листа заносим формулы либо значения, приведенные в таблице, расположенной ниже:
-
Ячейка
Формула либо значение
A1
B1
C1
A2
B2
C2
x0
xn
f(xn)
1
=ЕСЛИ(B2=0;A2; 0-(B2-0)*(EXP(0)-0)/(EXP(-B2)-B2-EXP(0)+0))
=EXP(-B2)-B2
Заметим, что в ячейку C2 помещаем формулу, задающую вычисление значения функции в точке xn, что позволит следить за процессом решения. На первом шаге вычислений в ячейку B2 будет помещено значение, соответствующее концу отрезка, на котором существует корень заданного уравнения, а затем уже начнется счет по формуле на последующих шагах. Начало отрезка остается неподвижным.
Для нашего уравнения после ввода формул в соответствующие ячейки в ячейке B2 появится значение 0,56714329, что и является корнем уравнения (см. рис. ниже).
Блок-схема, реализующая метод хорд, приведена в прил.2 (см. с.55).
в) метод касательных.
Используя рассуждения, приведенные в лабораторной работе №2, применительно к методу касательных делаем вывод, что в качестве начального приближения x0 следует взять x0=0.
Рекуррентная формула (3) задаёт вычисления по методу касательных. В нашем случае эта формула для вычисления первого шага итерационного процесса выглядит следующим образом:
В ячейки рабочего листа заносим формулы либо значения, приведенные в таблице, расположенной ниже.
-
Ячейка
Формула либо значение
A1
B1
A2
B2
xn
f(xn)
=A2-(EXP(-A2)-A2)/(-EXP(-A2)-1)
=EXP(-A2)-A2
Заметим, что в ячейку B2 помещаем формулу, задающую вычисление значения функции в точке xn, что позволит следить за процессом решения. В нашем случае начальное приближение x0 не задавалось, итерационный вычислительный процесс начинался со значения, по умолчанию хранимого в ячейке A2 и равного нулю. (Если итерационный процесс начинается с другого начального значения, отличного от нулевого, то следует поступать подобно тому как это было описано выше для метода хорд, когда x0 было равным 1. Оформить этот случай при необходимости самостоятельно.)
Для нашего уравнения после ввода формул в соответствующие ячейки в ячейке A2 появится значение 0,56714329, что и является корнем уравнения (см. рис. ниже).
Блок-схема, реализующая метод касательных, приведена в прил. 3 (см. с.56).
г) метод простой итерации.
В лабораторной работе №2 показано, что данное уравнение для его сходимости (выполнения условия (10)) необходимо привести к виду x=e-x. Взяв в качестве начального приближения середину отрезка, т.е. x0=0.5, вычисления последующих приближений проведем по формуле
В ячейки рабочего листа заносим формулы либо значения, приведенные в таблице, расположенной ниже:
-
Ячейка
Формула либо значение
A1
B1
C1
A2
B2
C2
x0
xn
fi(xn)
0,5
=ЕСЛИ(B2=0;A2; EXP(-B2))
=EXP(-B2)-B2
Заметим, что в ячейку C2 помещаем формулу, задающую вычисление значения функции в точке xn, что позволит следить за процессом решения. На первом шаге вычислений в ячейку B2 будет помещено значение, соответствующее начальному приближению, а затем уже начнется счет по формуле на последующих шагах.
Для нашего уравнения после ввода формул в соответствующие ячейки в ячейке B2 появится значение 0,56714329, что и является корнем уравнения (см. рис. ниже).
Блок-схема, реализующая метод простой итерации, приведена в прил.4 (см. с.56).
с помощью средства Подбор параметра.
Установите количество итераций и точность вычислений (см. п. 3.2, с. 28).
В ячейке А1 и А2 вводим x= и f(x)= соответственно. В ячейку B2 введем формулу для вычисления значения функции, стоящей в данном уравнении слева от знака равенства. В качестве аргумента используем ссылку на ячейку B1, т.е. =EXP(-B1)-B1
В окне диалога Подбор параметра в поле Установить в ячейке введем ссылку на ячейку с формулой, в поле Значение - ожидаемый результат, в поле Изменяя значения ячейки - ссылку на ячейку, в которой будет храниться значение подбираемого параметра (содержимое этой ячейки не может быть формулой).
После нажатия на кнопку Ok Excel выведет окно диалога Результат подбора параметра. Если подобранное значение необходимо сохранить, то нажмите на Оk, и результат будет сохранен в ячейке, заданной ранее в поле Изменяя значения ячейки. Для восстановления значения, которое было в ячейке B1 до использования команды Подбор параметра, нажмите кнопку Отмена.
В ячейке B2, появится значение 0,5671384, что и является корнем уравнения.
Замечание. Если уравнение имеет не единственный корень на [a,b] или этот отрезок отличен от [0,1], то в качестве начального значения в ячейке B1 необходимо задать другое значение, не равное 0 (либо начало отрезка a, либо его конец b, либо середину (a+b)/2). Часто случается так, что подбором параметра все корни уравнения не удаётся найти. Именно в этих случаях эффективнее применять Поиск решения.
используя возможности Поиска решения при ограничениях корень, больше, либо равен 0 и корень меньше, либо равен1.
В ячейке А1 и А2 вводим x= и f(x)= соответственно. В ячейку B2 введем формулу для вычисления значения функции, стоящей в данном уравнении слева от знака равенства. В качестве аргумента используем ссылку на ячейку B1, т.е. =EXP(-B1)-B1
Устанавливаем необходимые опции, управляющие работой Поиска решения (см. п.3.3, с.28), задаваемые в окне Параметры (окно появляется, если нажать на кнопку Параметры окна Поиск решения). После открытия диалога Поиск решения (см. п. 3.3, с.28) необходимо выполнить следующие действия:
в поле Установить целевую ячейку ввести адрес ячейки, содержащей формулу для вычисления значений оптимизируемой функции, в нашем примере целевая ячейка - это B2, а формула в ней имеет вид: =EXP(-B1)-B1;
для максимизации значения целевой ячейки, установить переключатель максимальному значению в положение , для минимизации используется переключатель минимальному значению, в нашем случае устанавливаем переключатель в положение значению и вводим значение 0;
в поле Изменяя ячейки ввести адреса изменяемых ячеек, т.е. аргументов целевой функции (B1), разделяя их знаком ";" (или щелкая мышью при нажатой клавише Сtrl на соответствующих ячейках), для автоматического поиска всех влияющих на решение ячеек используется кнопка Предположить;
в поле Ограничения с помощью кнопки Добавить ввести все ограничения, которым должен отвечать результат поиска: для нашего примера B1<=1, B1>=0 (см. рис. ниже);
для запуска процесса поиска решения нажать кнопку Выполнить.
Для сохранения полученного решения необходимо использовать переключатель Сохранить найденное решение в открывшемся окне диалога Результаты поиска решения.
В ячейке B2, появится значение 0,567143447, что и является корнем уравнения.
Результаты работы для каждого из способов решения нелинейных уравнений средствами программы MS Excel выписать в следующем виде:
Решение уравнения e-x-x=0 |
С помощью циклических ссылок |
С помощью подбора параметра
|
С помощью поиска решения
|
|||
методом половинного деления |
методом хорд |
методом касательных |
методом простой итерации |
|||
Вычисленное значение корня |
0,5671 |
0,5671 |
0,5671 |
0,5671 |
0,5671 |
0,5671 |