"Нелинейные уравнения"
вычислительный программа нелинейный алгебраический
Введение
Цель работы
Приобретение навыков решения нелинейных уравнений, используя итерационные методы (метод половинного деления, метод простых итераций, метод Ньютона). Задание. Для алгебраического уравнения :
выбрать отрезок, на котором имеется хотя бы один корень;
проверить условия применимости для каждого метода;
разработать вычислительную программу, реализующую каждый метод решения;
вычислить корень уравнения с погрешностью не более 10-6.
Краткие теоретические сведения
Пусть известна некоторая нелинейная зависимость вида y=f(x). Требуется определить все те значения аргумента , k=1,2,…, которые обращают функцию в нуль, то есть Для поиска корней нелинейных уравнений, как правило, используются итерационные методы.
Метод половинного деления
Метод половинного деления основан на теореме Коши: функция, непрерывная в замкнутом интервале и принимающая на концах этого интервала значения разных знаков, хотя бы один раз обращается в нуль внутри интервала. Процедура метода заключается в последовательном сокращении длины отрезка для локализации корня уравнения.
Метод простых итераций
Для решения нелинейного алгебраического уравнения f(x)=0 метод простых итераций исходное уравнение заменяется эквивалентным ему выражением вида x=?(x). На основе этого соотношения строится итерационный процесс метода простых итераций , при некотором заданном начальном значении x(0).
Метод Ньютона
Для поиска корня уравнения f(x)=0 в окрестности решения выбирается точка x, возле которой функция f(x) раскладывается в ряд Тейлора:
Отсюда следует приближенное равенство , которое с учетом позволяет получить выражение , приводящее к итерационной формуле метода Ньютона:
1. Выбор отрезка
Представим уравнение в виде функции, т.е. f(x)= . Построим график этой функции (Рисунок 1).
Рисунок 1 - График функции . f(x)=
На основании графика, выбираем отрезок X Є [-1; 0] на котором имеется корень уравнения, т.е. значение функции обращается в нуль.
2. Выполнение расчетов
.1 Метод половинного деления
Значения функции на концах отрезка составляют
Т.к. функция непрерывна на участке [-1 ; 0] и на концах имеет разные знаки, то можно применить метод половинного деления.
Таблица 1 - Решение уравнения методом половинного деления
№ итерации (k)xf(x)|?x(k)|10-10,52-0,25-0,25260,253-0,375-0,021360,1254-0,43750,0851140,06255-0,406250,0325450,031256-0,390630,0057660,0156257-0,38281-0,007750,0078138-0,38672-0,000980,0039069-0,388670,0023950,00195310-0,38770,0007080,00097711-0,38721-0,000140,00048812-0,387450,0002860,00024413-0,387337,44E-050,00012214-0,38727-3,1E-056,1E-0515-0,38732,16E-053,05E-0516-0,38728-4,7E-061,53E-0517-0,387298,45E-067,63E-0618-0,387291,85E-063,81E-0619-0,38729-1,4E-061,91E-0620-0,387292,04E-079,54E-07
После двадцати итераций получен отрезок [-0,387285233; -0,387286186] длина которого 9,53×107, что значительно меньше заданной погрешности ?x=10-6. В качестве искомого результата выбирается среднее значение полученного отрезка -0,387286663. Подстановка в уравнение позволяет выполнить проверку второго критерия окончания итерационной процедуры: f()=1,02872*10-6, что также меньше заданной погрешности ?y=10-6.
Рисунок 2 - Погрешность решения алгебраического уравнения методом половинного деления в зависимости от номера итерации k
2.2 Метод простых итераций
Уравнение преобразуется к требуемому виду: , т.е. . Для проверки условий сходимости последовательности получаемых решений необходимо определить производную этой функции: . В этой функции применив отрезок [2,5, 3,5], можно определить константу Липшица в виде . В данном случае функция на отрезке [2,5, 3,5] (Рисунок 3) принимает максимальное значение при x=2,5, соответственно. Очевидно, что С<1. Кроме того, откуда следует, что . Таким образом, условия теоремы выполнены, то есть последовательность x(k) метода простых итераций должна сходиться к точному решению уравнения.
Рисунок 3 - Функция на отрезке [2,5, 3,5]
Таблица 2 -Решение уравнения методом простых итераций
№ итерации (k)x?x(k)12,9734721441039600,47347223,0110670767832600,03759533,0111116726402304,46E-0543,0111116059013706,67E-0853,0111116060014401E-1063,0111116060012901,5E-13
С помощью вычислительной программы, при начальном приближении x(0)=2,5 получено решение заданного уравнения с погрешностью значительно меньше заданной ?x=10-6. Подстановка этой величины в уравнение дает значение модуля функции , не превышающее заданную погрешность ?y=10-6.
Рисунок 4 - Погрешность решения алгебраического уравнения методом простых итераций в зависимости от номера итерации k
2.3 Метод ньютона
Для проверки условий сходимости последовательности решений, получаемых методом Ньютона, определяются первая и вторая производные функции f(x):
, .
Основываясь на графиках функций и (Рисунок 5) видно, что они непрерывны и на отрезке . Тогда и . Поскольку разность при и , то , т.е. . Таким образом, условия теоремы выполнены и последовательность x(k) метода Ньютона должна сходиться к точному решению заданного уравнения.
Решение уравнения с помощью программы, при начальном приближении дает результат уже на 3-ей и последующих итерациях, соответственно не превышает заданной погрешности ?x=10-6. Подстановка этой величины в исходное уравнение дает значение модуля функции , т.е. не превышает заданное значение погрешности ?y=10-6.
Рисунок 5 - Вид функций f(x), f(x)
Рисунок 6 - Погрешность решения алгебраического уравнения методом Ньютона в зависимости от номера итерации k
Вывод
Для каждого итерационного метода на выбранном отрезке проверены условия применимости. Разработана программа, реализующая каждый метод решения. Найден корень уравнения с погрешностью не превышающей 10-6:
- методом половинного деления: ;
методом простых итераций: ;
методом Ньютона: .
Уменьшение погрешности с ростом числа итераций свидетельствует о сходимости решений заданного нелинейного уравнения, получаемых каждым рассмотренным методом.