Курсовая работа
Численные методы решения нелинейных уравнений, используемые в прикладных задачах. Нахождение корня уравнения методом хорд и комбинированным методом
по дисциплине «Численные методы»
КР 080802.10.038.05 ПЗ
Студент А.Т. Валитова
Руководитель работы Э.Р. Ахматсафина
Содержание
Введение
. Теоретическая часть
.1 Решение нелинейных уравнений методом хорд
.2 Решение нелинейных уравнений комбинированным методом
. Постановка и решение задач
.1 Формулировка задачи
.2 Решение нелинейного уравнения методом хорд
.3 Решение нелинейного уравнения комбинированным методом
. Программная реализация
.1 Блок-схемы алгоритма
.2 Тексты программ
.3 Тестовый пример
.4 Решение задачи с помощью ЭВМ
Заключение
Список литературы
Введение
Данная работа ориентирована на изучение некоторых численных методов приближенного решения нелинейных уравнений с любым числом неизвестных, составление на базе этих методов вычислительных схем алгоритмов и программ на алгоритмическом языке Pascal и Delphi.
Внедрение ЭВМ во все сферы человеческой деятельности требует от специалистов разного профиля овладения навыками использования вычислительной техники. Повышается уровень подготовки студентов вузов, которые уже с первых курсов приобщаются к использованию ЭВМ и простейших численных методов, не говоря уже о том, при что выполнении курсовых и дипломных проектов применение вычислительной техники становится нормой в подавляющем большинстве вузов.
Численные методы разрабатывают и исследуют, как правило, высококвалифицированные специалисты-математики. Для большинства пользователей главной задачей является понимание основных идей и методов, особенностей и областей применения. Однако, пользователи хотят работать с ЭВМ не только как с высокоинтеллектуальным калькулятором, а еще и как с помощником в повседневной работе, хранилищем информации с быстрым и упорядоченным доступом, а так же с источником и обработчиком графической информации. Все эти функции современной ЭВМ я предполагаю продемонстрировать в настоящей курсовой работе.
Целью данной курсовой работы является изучение и реализация в программном продукте решения нелинейных уравнений при помощи метода хорд и комбинированного метода.
Для этого необходимо выполнить следующие задачи:
. Изучить необходимую литературу.
2. Обзорно рассмотреть существующие методы по решению нелинейных уравнений.
. Изучить комбинированный метод для решения нелинейных уравнений.
. Изучить метод Хорд для решения нелинейных уравнений
. Рассмотреть решение нелинейных уравнений комбинированным методом и методом хорд на конкретных примерах.
6. Разработать программу для решения нелинейных уравнений комбинированным методом и методом хорд.
7. Проанализировать получившиеся результаты.
Данная работа состоит из трех разделов, введения и заключения. Первый раздел - теоретический и содержит общие сведения о методе хорд и комбинированном методе. Второй - это практическая часть. Здесь описывается метод хорд и комбинированный метод, разобранный на конкретных примерах. Третий раздел - это программная реализация. В нем описывается тестируемая программа и анализ получившихся результатов. В заключении представлен вывод о проделанной работе.
1. Теоретическая часть
.1. Решение нелинейных уравнений методом хорд
Пусть дано уравнение
f(x) = 0, (1)
где функция f(x) определена и непрерывна на интервале [a, b] и выполняется соотношение f(a)·f(b) < 0.
Пусть для определенности f(a) < 0, f(b) > 0. Тогда вместо того, чтобы делить отрезок [a, b] пополам, более естественно разделить его в отношении
- f(a):f(b). При этом новое значение корня определяется из соотношения
x1 = a + h1, (2)
где
. (3)
нелинейное уравнение программа
Далее этот прием применяем к одному из отрезков [a, x1] или [x1, b], на концах которого функция f(x) имеет противоположные знаки. Аналогично находим второе приближение x2 и т.д. (см. рис. 1.).
Геометрически этот способ эквивалентен замене кривой y = f(x) хордой, проходящей через точки А(a, f(a)) и B(b, f(b)).
Действительно, уравнение хорды АВ имеет вид
(4)
Рисунок 1. Уточнение корня уравнения методом хорд
а) f(a) >0, неподвижен конец a, а последовательные приближения: x0 = b;
b) f(b) < 0, неподвижен конец b, а последовательные приближения: x0 = а;
Учитывая, что при х = х1 => y = 0, получим
(5)
Полагая, что на отрезке [a, b] вторая производная f''(x) сохраняет постоянный знак, метод хорд сводится к двум различным вариантам:
Из рис. 1, a видно, что неподвижна точка а, а точка b приближается к ξ, то есть:
(6)
Преобразовав выражение (6), окончательно получим:
(7)
Из рис. 1,b видно, что точка b остается неподвижной, а точка а приближается к ξ, тогда вычислительная формула примет вид:
(8)
Таким образом, для вычисления корня уравнения имеем две различные вычислительные формулы (7) и (8).
Рекомендуется в качестве неподвижной выбирать ту точку, в которой выполняется соотношение:
f(x)·f”(x) > 0. (9)
.2 Решение нелинейных уравнений комбинированным методом
При решении уравнений часто комбинируют методы хорд и Ньютона. Если график функции y=f(x) обращён вогнутостью вверх, то находят точки а1 и х1 по формулам:
(10)
(11)
Если же график функции y=f(x) обращён вогнутостью вниз, то точку а1 находят по формуле (1.10), а точку х1 - по формуле:
(12)
Как видно из рис. 2 и корень x уравнения f(x)=0 лежит обычно между полученными точками а1 и х1. Применяя снова к этим точкам формулы метода хорд и метода Ньютона, получают новую пару точек а2 и х2 и т. д.
Таким путём получают две последовательности точек а1, а2, а3, …, an, … и x1, x2, x3, … , xn, …, приближаются с разных сторон к искомому корню x. Преимущество описанного метода состоит в том, что при нём получаются приближённые значения как с избытком так и с достатком.
Рисунок 2. Наглядное представление нахождения x
Условия применения метода:
1) ,
) и сохраняют знак на отрезке ,
то приближения корня уравнения по методу хорд и по методу касательных подходят к значению этого корня с противоположных сторон. Поэтому для быстроты нахождения корня удобно применять оба метода одновременно. Т.к. один метод даёт значение корня с недостатком, а другой - с избытком, то достаточно легко получить заданную степень точности корня.
Схема решения уравнения методом хорд и касательных:
1. Вычислить значения функции и .
. Проверить выполнение условия . Если условие не выполняется, то неправильно выбран отрезок .
. Найти производные и .
. Проверить постоянство знака производных на отрезке . Если нет постоянства знака, то неверно выбран отрезок .
. Для метода касательных выбирается за тот из концов отрезка , в котором выполняется условие , т.е. и одного знака.
. Приближения корней находятся:
а) по методу касательных: ,
б) по методу хорд: .
. Вычисляется первое приближение корня: .
. Проверяется выполнение условия: , где - заданная точность.
Если условие не выполняется, то нужно продолжить применение метода по схеме 1-8.
В этом случае отрезок изоляции корня сужается и имеет вид . Приближённые значения корня находятся по формулам:
и .
Вычисления продолжаются до тех пор, пока не будет найдено такое значение , при котором и совпадут с точностью .
Рисунок 3. Уточнение корня комбинированным методом
2. Постановка и решение задач
.1 Формулировка задачи
Нахождения корня уравнения 5x3+10x2+5x-1=0 методом хорд и комбинированным методом.
Графическое отделение корней
Графически отделить корни уравнения 5x3+10x2+5x-1=0.
Упрощаем уравнение, заменив его равносильным ему уравнением:
х3 = -10х2-5х+1
Теперь построим графики этих функций:
h
|
x
|
-2
|
-1,5
|
-1
|
-0,5
|
0
|
0,5
|
1
|
1,5
|
2
|
0,5
|
y
|
-40
|
-16,875
|
-5
|
-0,625
|
0
|
0,625
|
5
|
16,875
|
40
|
х3=0
х2-5х+1=0
h
|
x
|
-3
|
-2,5
|
-2
|
-1,5
|
-1
|
-1
|
0
|
0,5
|
1
|
1,5
|
2
|
2,5
|
3
|
0,5
|
y
|
-74
|
-49
|
-29
|
-14
|
-4
|
1
|
1
|
-4
|
-14
|
-29
|
-49
|
-74
|
-104
|
Рисунок 4. Графическое отделение корней
Ответ: Корень находится на промежутке [0;0,5].
.2 Решение нелинейного уравнения методом хорд
Найти положительный корень уравнения:
f(x) = 5x3+10x2+5x-1 = 0
с точностью ξ = 10-5=0,00001.
Прежде всего, отделяем корень. Так как
f(0)=-1 < 0 и f(0,5)=4,625 > 0,
то искомый корень лежит на [0, 0,5].
Так как f’’(x)= 30x+20 > 0 при 0 < x < 0,5 и f(0,5) > 0, то воспользуемся формулой поставленной задачи:
Найдем первое приближенное значение по формуле:
Найдем точность:
[x1 - x0] = [0 - 0,08] = 0,08 > ξ
Так как f(x1)=f(0,08)=-0,53, то, применяем вторично способ хорд к отрезку
[0,08 ; 0,5].
Найдем второе приближение к корню:
Найдем точность:
[x2 - x1]=[0,12 - 0,08] = 0,4 > ξ
Так как f(x2)=f(0,12)=-0,24736 то, опять применяем способ хорд к отрезку
[0,12 ; 0,5].
Найдем третье приближение к корню:
Найдем точность:
[x3 - x2] = [0,14 - 0,12] = 0,02 > ξ
Так как f(x3)=f(0,14)=-0,9028 то, опять применяем способ хорд к отрезку
[0,14 ; 0,5].
Найдем четвертое приближение к корню:
Найдем точность:
[x4 - x3] = [0,147 - 0,14] = 0,007 > ξ
Так как f(x4)=f(0,147)=-0,033027385 то, опять применяем способ хорд к отрезку
[0,147 ; 0,5].
Найдем пятое приближение к корню:
Найдем точность:
[x5 - x4] = [0,14950 - 0,147] = 0,0025 > ξ
Так как f(0,14950)=-0,01229068815 то, опять применяем способ хорд к отрезку
[0,14950 ; 0,5].
Найдем шестое приближение к корню:
Найдем точность:
[x6 - x5] = [0,15043 - 0,14950] = 0,00093 > ξ
Так как f(x6) = f(0,15043) = -0,0045376096 то, опять применяем способ хорд к отрезку [0,15043; 0,5].
Найдем седьмое приближение к корню:
Найдем точность:
[x7 - x6] = [0,15077 - 0,15043] = 0,00034 > ξ
Так как f(x7) = f(0,15077) = -0,0010978597 то, опять применяем способ хорд к отрезку [0,15077; 0,5].
Найдем восьмое приближение к корню:
Найдем точность:
[x8 - x7] = [0,15085 - 0,15077] = 0,00008 > ξ
Так как f(x8) = f(0,15085) = -0,00102927135 то, опять применяем способ хорд к отрезку [0,15085; 0,5].
Найдем девятое приближение к корню:
Найдем точность:
[x9 - x8] = [0,15092 - 0,15085] = 0,00007 > ξ
Так как f(x9) = f(0,15092) = -0,00044374535 то, опять применяем способ хорд к отрезку [0,15092; 0,5].
Найдем десятое приближение к корню:
Найдем точность:
[x10 - x9] = [0,15095 - 0,15092] = 0,00003 > ξ
Так как f(x10) = f(0,15095) = -0,0001933151 то, опять применяем способ хорд к отрезку [0,15095; 0,5].
Найдем одиннадцатое приближение к корню:
Найдем точность:
[x11 - x10] = [0,15096 - 0,15095] = 0,00001 = ξ
Так как точность совпала, корень уравнения равен 0,15096.
Ответ: корень равен 0,15096 = 0,151 при ξ = 10-5 = 0,00001.
2.3 Решение нелинейного уравнения комбинированным методом
Найти положительный корень уравнения:
f(x) = 5x3+10x2+5x-1 = 0
с точностью ξ = 10-5=0,00001.
Прежде всего, отделяем корень. Так как
f(0)=-1 < 0 и f(0,5)=4,625 > 0,
то искомый корень лежит на [0, 0,5].
Так как f’(x)= 15x+20x+5 > 0 при 0 < x < 0,5 и f(0,5) > 0, то воспользуемся формулой поставленной задачи:
Найдем первое приближение, x1 по формуле хорд и a1 по формуле касательных:
Найдем необходимые данные для вычисления дальнейшего приближения:
f(0,08) = -0,53344
f(0,253) = 0,986061
f’(0,253) = 11,02014
Найдем второе приближение, x2 по формуле хорд и a2 по формуле касательных:
Найдем необходимые данные для вычисления дальнейшего приближения:
f(0,164) = 0,111 f’(0,164) = 8,68 f(0,14) = 0,46
Найдем третье приближение, x3 по формуле хорд и a3 по формуле касательных:
Найдем необходимые данные для вычисления дальнейшего приближения:
f(0,151) = 0,000224755
f’(0,151) = 8,362015
f(0,159) = 0,068
Найдем четвертое приближение, x4 по формуле хорд и a4 по формуле касательных:
x4 = a4 = 0,15096
Так как x4 и a4 совпадают, то корень уравнения равен 0,15096.
Ответ: корень уравнения равен 0,15096=0,151 с точностью ξ = 10-5 = 0,00001.3. Программная реализация
.1 Блок-схемы алгоритма
Метод хорд
+ -
+ -
Комбинированный метод
- +
- +
3.2 Тексты программ
Программная реализация комбинированного метода
{Комбинированный метод решения нелинейного уравнения}
F - основная функция
F1 - первая производная
F2 - вторая производная
A - левая граница интервала
B - правая граница интервала
E - точность
E1 - погрешность
X0 - начальное приближение
X1 - вычисления методом касательных
X2 - вычисления методом хорд
unit Unit1;
interface, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, StdCtrls;= class(TForm): TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TEdit;: TEdit;: TButton;: TEdit;: TLabel;: TEdit;: TLabel;Button1Click(Sender: TObject);
{ Private declarations }
{ Public declarations };: TForm1;
{$R *.dfm}TForm1.Button1Click(Sender: TObject);f(x:real):real;
f:=5*x*x*x+10*x*x+5*x-1; {Исходная функция}
end;f1(x:real):real;
f1:=15*x*x+20*x+5; {Первая производная функции}
end;f2(x:real):real;
f2:=30*x+20; {Вторая производная функции}
end;a,b,e,e1,x0,x1,x2:real;:=strtofloat(edit1.Text);:= strtofloat(edit2.Text);:=strtofloat(edit3.Text);f(a)*f2(a)>=0 then x0:=a else x0:=b;:=x0-f(x0)/f1(x0);:=a-((b-a)*f(a)/(f(b)-f(a)));:=(x11+x12)/2;abs(e1-x1)>e do:=x1;:=x2;:=a-f(a)/f1(a);:=a-((b-a)*f(a)/(f(b)-f(a)));:=(x1+x2)/2;;.text:='x = '+floattostrf(x1,fffixed, 10,8);;.
Рисунок 5. Вид окна программы комбинированного метода
Программная реализация метода хорд
{Решения нелинейного уравнения методом хорд}
F - Основная функция
F1 - Первая производная
A - Левая граница интервала
B - Правая граница интервала
X - Корень уравнения
Eps - Точность
unit Unit1;
interface, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,, Dialogs, StdCtrls;= class(TForm): TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TEdit;: TEdit;: TLabel;: TLabel;: TEdit;: TButton;: TEdit;Button1Click(sender:TObject);
{ Private declarations }
{ Public declarations };: TForm1;
{$R *.DFM}TForm1.Button1Click(Sender:TObject);f(x:real):real;:=5*x*x*x+10*x*x+5*x-1;;f1(x:real):real;:=15*x*x+20*x+5;;a,b,x,eps:real;:=strtofloat(edit1.Text);:=strtofloat(edit2.Text);:=strtofloat(edit3.Text);:=a-f(a)*(b-a)/(f(b)-f(a));f(a)*f1(x)<=0 then b:=x else a:=x;abs(f(x))<=eps;.Text:='Ответ:корень ='+floattostrf(x,fffixed ,10,8);
end;.
Рисунок 6. Вид окна программы метода хорд
.3 Тестовый пример
В качестве тестового примера возьмем уравнение x2-5=0 на промежутке [1;2]. Решим аналитически. Корень X=2,236.
Проверим правильность работы программ для тестового примера.
Комбинированный метод
Рисунок 7. Результат работы тестовой программы комбинированного метода
Метод хорд
Рисунок 8. Результат работы тестовой программы метода хорд
Сравнив результаты мы можем сказать, что программа работает верно.
.4 Решение задачи с помощью ЭВМ
При нахождении корня уравнения на языке программирования Delphi мы получаем следующие результаты. На рис.9 представлено решение нелинейных уравнений методом хорд, на рис.10 решение нелинейных уравнений комбинированным методом.
Рисунок 9. Метод хорд Рисунок
10. Комбинированный метод
Заключение
Ситуация, когда одну и ту же задачу можно решить многими способами, является довольно типичной. В таких случаях естественно возникает необходимость сравнения их между собой.
В данной курсовой работе мы рассмотрели комбинированный метод и метод хорд.
Комбинированный метод основан на построении схематического графика функции, определении интервалов его пересечения с осью абсцисс и последующим «сжатием» этого интервала при помощи строимых хорд и касательных к графику этой функции.
Однако преимущество комбинированного метода заключается в «двустороннем сжатии» рассматриваемого отрезка.
Недостатком этого метода является то, что для решения поставленной задачи требуется отыскание производной функции F(x), метод хорд и касательных достаточно трудно реализуем на программном уровне, т.к. правила вычисления производных в общем виде довольно громоздки для «понимания» ЭВМ; при непосредственном указании производной для каждой степени многочлена память компьютера серьезно загружается, что очень замедляет работу, а задание функции и, соответственно, ее производной непосредственно в программном коде - недопустимо.
Однако, используя данный метод, сходимость интервала к корню происходит наиболее быстро.
Недостатком метода хорд является то, что он не всегда сходится. А если сходится то, на нахождения корня уходит много времени.
В данной курсовой работе были изучены два метода решения нелинейных уравнений: метод хорд и комбинированный метод, рассмотрено решение уравнения этими методами, также был разработан алгоритм решения поставленной задачи. По этому алгоритму на языке Delphi составлена и отлажена программа.
Список литературы
1. Н. Н. Калиткин «Численные методы» М.:«Наука», 1978. с. 400
. В.Д. Колдаев «Численные методы и программирование» М: ИД «ФОРУМ» - ИНФРА - М 2008, с. 328
. Д. Каханер, К. Моулер «Численные методы и программное обеспечение» Мир 2001, с. 450
Достарыңызбен бөлісу: |