Автор работы: Пользователь скрыл имя, 18 Апреля 2015 в 15:07, курсовая работа
Уравнение типа F(x)=0 или x=f(x) называется нелинейным. Решить уравнение - это значит найти такое x, при котором уравнение превращается в тождество. В общем случае уравнение может иметь 0; 1; 2;...∞ корней. Рассмотренные ниже численные методы решения нелинейных уравнений позволяют находить один корень на заданном интервале [a,b]. Сразу оговоримся, что любой метод является приближенным, и по сути дела лишь уточняющим значение корня. Однако уточняющим до любой точности, заданной Нами.
Введение
. Теоретическая часть
.1 Метод половинного деления
.2 Метод хорд
. Постановка и решение задачи
.1 Формулировка задачи
.2 Решение уравнения методом половинного деления
.3 Решение уравнения методом хорд
. Программная реализация
.1 Блок-схемы
.2 Тексты программ
.3 Тестовый пример
.4 Решение задачи с помощью ЭВМ
Заключение
Список литературы
Федеральное агентство по образованию
ФГОУ СПО «Уфимский авиационный техникум»
Курсовая работа
по дисциплине «Численные методы»
Численные методы решения нелинейных уравнений, используемые в прикладных задачах. Нахождение корня уравнения методом дихотомии и методом хорд
Студент Г. Р. Хайбуллина
Руководитель работы
Э.Р. Ахматсафина
Содержание
Введение
. Теоретическая часть
.1 Метод половинного деления
.2 Метод хорд
. Постановка и решение задачи
.1 Формулировка задачи
.2 Решение уравнения методом половинного деления
.3 Решение уравнения методом хорд
. Программная реализация
.1 Блок-схемы
.2 Тексты программ
.3 Тестовый пример
.4 Решение задачи с помощью ЭВМ
Заключение
Список литературы
Введение
Уравнение типа F(x)=0 или x=f(x) называется нелинейным. Решить уравнение - это значит найти такое x, при котором уравнение превращается в тождество. В общем случае уравнение может иметь 0; 1; 2;...∞ корней. Рассмотренные ниже численные методы решения нелинейных уравнений позволяют находить один корень на заданном интервале [a,b]. Сразу оговоримся, что любой метод является приближенным, и по сути дела лишь уточняющим значение корня. Однако уточняющим до любой точности, заданной Нами.
Нелинейные уравнения можно разделить на 2 класса - алгебраические и трансцендентные. Алгебраическими уравнениями называют уравнения, содержащие только алгебраические функции (целые, рациональные, иррациональные). В частности, многочлен является целой алгебраической функцией. Уравнения, содержащие другие функции (тригонометрические, показательные, логарифмические и другие) называются трансцендентными.
Целью данной курсовой работы является раскрытие содержания темы «Нахождение корня нелинейного уравнения методом половинного деления и методом хорд» и дальнейшее ее закрепление путем выполнения задания.
Данная работа состоит из трех частей. В первой части мы рассматриваем теоретическую часть. Во второй части на основе усвоенной теории решаем задание. Третья часть состоит из программ и блок схем.
1.
Теоретическая часть
Методы решения нелинейных уравнений делятся на две группы:
1. точные методы;
2. итерационные методы.
Точные методы позволяют записать корни в виде некоторого конечного соотношения (формулы), для решения тригонометрических, логарифмических, показательных, а также простейших алгебраических уравнений.
Многие уравнения и системы уравнений не имеют аналитических решений. В первую очередь это относится к большинству трансцендентных уравнений. Доказано также, что нельзя построить формулу, по которой можно было бы решить произвольное алгебраическое уравнение степени выше четвертой. Кроме того, в некоторых случаях уравнение содержит коэффициенты, известные лишь приблизительно, и, следовательно, сама задача о точном определении корней уравнения теряет смысл. Для их решения используются итерационные методы с заданной степенью точности.
Итерационный процесс состоит в последовательном уточнении начального приближения х0. Каждый такой шаг называется итерацией. В результате итераций находится последовательность приближенных значений корня х1, х2,..., хn. Если эти значения с увеличением числа итераций n приближаются к истинному значению корня, то говорят, что итерационный процесс сходится.
Можно выделить два типа итерационных методов:
. Методы сужения интервала, содержащего корень (например, метод половинного деления). Здесь используется только знак функции y = f(x), а не ее значения. Они являются относительно простыми, но имеют низкую скорость сходимости.
. Методы аппроксимации, в которых функция y = f(x) заменяется некоторой более простой функцией y = φ(x), для которой и отыскивается корень (например, метод хорд). Используют значения функции y = f(x). Скорость сходимости у них выше.
Пусть дано уравнение f(x) = 0, где функция f(x) определена и непрерывна на некотором интервале (a, b). Всякое значение x, обращающее функцию f(x) в нуль, то есть такое, при котором f(x) = 0, называется корнем уравнения, а процесс нахождения x - решением уравнения. Решить уравнение f(x) = 0 итерационным методом значит установить, имеет ли оно корни, сколько корней и найти значения корней с нужной точностью.
Задача нахождения корня уравнения f(x) = 0 итерационным методом состоит из двух этапов:
1. отделение корней - отыскание приближенного значения корня или содержащего его отрезка;
2. уточнение приближенных корней - доведение их до заданной степени точности.
Процесс отделения корней начинается с установления знаков функции f (x) в граничных x = a и x = b точках области ее существования. Для отделения корней используют следующую теорему. Теорема. Если непрерывная функция f(x) принимает значения разных знаков на концах отрезка [a,b], т.е. f(a)f(b)<0, то внутри этого отрезка находится по крайней мере один корень уравнения f(x)=0. Необходимо тем или иным способом проверить, является ли этот корень единственным.
1.1 Метод половинного деления
Метод половинного деления или дихотомии (дихотомия - сопоставленность или противопоставленность двух частей целого) при нахождении корня уравнения f(x)=0 состоит в делении пополам отрезка [a; b], где находится корень. Затем анализируется изменение знака функции на половинных отрезках, и одна из границ отрезка [a; b] переносится в его середину. Переносится та граница, со стороны которой функция на половине отрезка знака не меняет. Далее процесс повторяется. Итерации прекращаются при выполнении одного из условий: либо длина интервала [a; b] становится меньше заданной погрешности нахождения корня ε, либо значение функции сравнимо с погрешностью расчетов.
Пусть:
. функция y=F(x) определена и непрерывна на отрезке [a; b]
. F(a)*F(b)<0
Требуется найти корень на отрезке с точностью ε
Разделим отрезок [a; b] пополам точкой c = (a + b)/2, как показано на рисунке 1.
Рисунок 1. Построение последовательного приближения по методу половинного деления
Если F(c) не равно 0, то возможны два случая:
) F(x) меняет знак на отрезке [a; c];
) F(x) меняет знак на отрезке [c; b].
Выбираем тот отрезок, на котором функция меняет знак. Если F(x) меняет знак на отрезке [a; c], то b:=c; если F(x) меняет знак на отрезке [c; b], то a:=c.
Условие окончания счета: b - a < ε
Корень уравнения: x = (a + b)/2
Погрешность метода: dx = (b - a)/2
Рассмотрим положительные и отрицательные стороны метода половинного деления
«+»
. надежность
. не требует приведения к специальному виду
. не требует дифференцируемости функции
. устойчивость к ошибкам округления
«-»
. медленная сходимость
. метод не применим для корней четной кратности
. метод половинного деления практически неудобен для вычисления корня с большой точностью ручным способом, так как требует большого объема вычислительной работы. Но он легко реализуется на ЭВМ.
1.2 Метод хорд
В основе метода лежит линейная интерполяция по двум значениям функции f(x), имеющим противоположные знаки. Через точки, соединяющие значения функции f(a) и f(b) на концах отрезка [a,b], проводят прямую, которая пересекает ось x в точке.
Значение функции f(x) сравнивается со значениями функций f(a) и f(b) и в дальнейшем используется вместо того из них, с которым оно совпадает по знаку. Если значение f(x) недостаточно близко к нулю, то вся процедура повторяется до тех пор, пока не будет достигнута необходимая степень сходимости ε.
Пусть дано уравнение , где - непрерывная функция, имеющая в интервале (a,b) производные первого и второго порядков. Корень считается отделенным и находится на отрезке [a,b].
Идея метода хорд состоит в том, что на достаточно малом промежутке [a,b] дугу кривой можно заменить хордой и в качестве приближенного значения корня принять точку пересечения с осью абсцисс. Рассмотрим случай, показанный на рисунке 2, когда первая и вторая производные имеют одинаковые знаки, т.е. .
Рисунок 2. График функции f(x), (первая и вторая производные имеют одинаковые знаки)
Уравнение хорды - это уравнение прямой, проходящей через две точки (a, f(a)) и (b, f(b)).
Общий вид уравнения прямой, проходящей через две точки:
Подставляя в эту формулу значения, получим уравнение хорды AB:
.
Пусть x1 - точка пересечения хорды с осью x, так как y = 0, то
1 может считаться приближенным значением корня.
Аналогично для хорды, проходящей через точки и , вычисляется следующее приближение корня:
В общем случае формулу метода хорд имеет вид:
Если первая и вторая производные имеют разные знаки, т.е. , то все приближения к корню выполняются со стороны правой границы отрезка как показано на рисунке 3 и вычисляются по формуле:
Выбор формулы в каждом конкретном случае зависит от вида функции и осуществляется по правилу: неподвижной является такая граница отрезка изоляции корня, для которой знак функции совпадает со знаком второй производной. Формула (4) используется в том случае, когда . Если справедливо неравенство , то целесообразно применять формулу (5).
Итерационный процесс метода хорд продолжается до тех пор, пока не будет получен приближенный корень с заданной степенью точности. При оценке погрешности приближения можно пользоваться соотношением
Если обозначить через m наименьшее значение |f'(x)| на промежутке [a, b], которое можно определить заранее, то получим формулу для оценки точности вычисления корня:
или
где - заданная погрешность вычислений.
Если дважды непрерывно дифференцируемая функция и знак сохраняется на рассматриваемом промежутке, то полученные приближения будут сходиться к корню монотонно. Если корень уравнения находится на отрезке , производные и на этом промежутке непрерывны и сохраняют постоянные знаки и , то можно доказать, что погрешность приближенного решения стремится к нулю при n→∞, то есть метод сходится и имеет при этом линейную скорость сходимости. (Сходится со скоростью геометрической прогрессии.)
2.
Постановка и решение задачи
2.1 Формулировка задачи
Нахождение корня уравнения методом дихотомии и методом хорд (на примере уравнения ).
Решить уравнение, значит, установить имеет ли оно корни, сколько корней и найти значение корней с требуемой точностью. Решение данного уравнения в общем случае начинают с отделения корней, то есть установление количества корней, а так же наиболее тесных промежутков, каждый из которых содержит только один корень. Грубое отделение корней во многих случаях можно произвести методом графической прикидки. При этом задачу часто удается сильно упростить, заменив уравнение равносильным ему уравнением .
В этом случае строятся графики функций и , а затем на оси ОХ отмечаются по возможности наименьшие отрезки, локализующие абсциссы точек пересечения этих графиков.
Отделение корней графически
Дано уравнение , отделим корни уравнения графическим методом, для этого преобразуем его к равносильному ему уравнению .
Вычислим координаты точек графика функции F( )
x |
-2 |
-1 |
0 |
1 |
2 |
3 |
4 |
y |
-8 |
-1 |
0 |
1 |
8 |
27 |
64 |
Вычислим координаты точек второй функции F( )
x |
-1 |
0 |
1 |
2 |
3 |
4 |
y |
14 |
-20 |
-14 |
4 |
34 |
76 |
Рисунок 4. Отделение корней графически.
2.2 Решение уравнения методом половинного деления
Разделим отрезок [a, b] пополам точкой
с = 1/2*(a + b)
Получим с = 1/2(-2 - 1)=-3/2=-1.5
Если F(c)=0, то возможны два случая, либо F(x) меняет знак на отрезке [a, с], либо на отрезке [с, b]. Выбирая в каждом случае тот из отрезков на котором функция меняет знак и продолжая процесс половинного деления так же можно дойти до столь угодного малого отрезка, содержащего корень уравнения.
Определим, где фикция меняет знак, для этого начнем цикл и вычислим F(a)*F(c) <= 0
1-й Шаг.
Найдем F(a) =
F(b) = (a)*F(c) = -12*3.125 = -37.5(a)*F(c) <= 0
Если -37.5 <= 0, то b:=c, так как функция меняет знак
Промежуток сократиться до [-2;-1.5]
2-й Шаг. Вычисление погрешности
d = (b - a)/2 = (-1.5 + 2)/2=0.25
Сравним полученную погрешность с погрешностью заданной по условию d > ε
Информация о работе Численные методы решения нелинейных уравнений, используемые в прикладных задачах