Численные методы решения нелинейных уравнений, используемые в прикладных задачах. Нахождение корня уравнения методом хорд и комбинированным методом
Обзор существующих методов по решению нелинейных уравнений. Решение нелинейных уравнений комбинированным методом и методом хорд на конкретных примерах. Разработка программы для решения нелинейных уравнений, блок-схемы алгоритма и листинг программы.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 15.06.2013 |
Размер файла | 435,8 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Федеральное агентство по образованию
ФГОУ СПО «Уфимский авиационный техникум»
Курсовая работа
Численные методы решения нелинейных уравнений, используемые в прикладных задачах. Нахождение корня уравнения методом хорд и комбинированным методом
по дисциплине «Численные методы»
КР 080802.10.038.05 ПЗ
Студент А.Т. Валитова
Руководитель работы Э.Р. Ахматсафина
Содержание
Введение
1. Теоретическая часть
1.1 Решение нелинейных уравнений методом хорд
1.2 Решение нелинейных уравнений комбинированным методом
2. Постановка и решение задач
2.1 Формулировка задачи
2.2 Решение нелинейного уравнения методом хорд
2.3 Решение нелинейного уравнения комбинированным методом
3. Программная реализация
3.1 Блок-схемы алгоритма
3.2 Тексты программ
3.3 Тестовый пример
3.4 Решение задачи с помощью ЭВМ
Заключение
Список литературы
Введение
Данная работа ориентирована на изучение некоторых численных методов приближенного решения нелинейных уравнений с любым числом неизвестных, составление на базе этих методов вычислительных схем алгоритмов и программ на алгоритмическом языке Pascal и Delphi.
Внедрение ЭВМ во все сферы человеческой деятельности требует от специалистов разного профиля овладения навыками использования вычислительной техники. Повышается уровень подготовки студентов вузов, которые уже с первых курсов приобщаются к использованию ЭВМ и простейших численных методов, не говоря уже о том, при что выполнении курсовых и дипломных проектов применение вычислительной техники становится нормой в подавляющем большинстве вузов.
Численные методы разрабатывают и исследуют, как правило, высококвалифицированные специалисты-математики. Для большинства пользователей главной задачей является понимание основных идей и методов, особенностей и областей применения. Однако, пользователи хотят работать с ЭВМ не только как с высокоинтеллектуальным калькулятором, а еще и как с помощником в повседневной работе, хранилищем информации с быстрым и упорядоченным доступом, а так же с источником и обработчиком графической информации. Все эти функции современной ЭВМ я предполагаю продемонстрировать в настоящей курсовой работе.
Целью данной курсовой работы является изучение и реализация в программном продукте решения нелинейных уравнений при помощи метода хорд и комбинированного метода.
Для этого необходимо выполнить следующие задачи:
1. Изучить необходимую литературу.
2. Обзорно рассмотреть существующие методы по решению нелинейных уравнений.
3. Изучить комбинированный метод для решения нелинейных уравнений.
4. Изучить метод Хорд для решения нелинейных уравнений
5. Рассмотреть решение нелинейных уравнений комбинированным методом и методом хорд на конкретных примерах.
6. Разработать программу для решения нелинейных уравнений комбинированным методом и методом хорд.
7. Проанализировать получившиеся результаты.
Данная работа состоит из трех разделов, введения и заключения. Первый раздел - теоретический и содержит общие сведения о методе хорд и комбинированном методе. Второй - это практическая часть. Здесь описывается метод хорд и комбинированный метод, разобранный на конкретных примерах. Третий раздел - это программная реализация. В нем описывается тестируемая программа и анализ получившихся результатов. В заключении представлен вывод о проделанной работе.
1. Теоретическая часть
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)
Размещено на http://www.allbest.ru/
Рисунок 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)
1.2 Решение нелинейных уравнений комбинированным методом
При решении уравнений часто комбинируют методы хорд и Ньютона. Если график функции y=f(x) обращён вогнутостью вверх, то находят точки а1 и х1 по формулам:
(10)
(11)
Если же график функции y=f(x) обращён вогнутостью вниз, то точку а1 находят по формуле (1.10), а точку х1 - по формуле:
(12)
Как видно из рис. 2 и корень уравнения f(x)=0 лежит обычно между полученными точками а1 и х1. Применяя снова к этим точкам формулы метода хорд и метода Ньютона, получают новую пару точек а2 и х2 и т. д.
Таким путём получают две последовательности точек а1, а2, а3, …, an, … и x1, x2, x3, … , xn, …, приближаются с разных сторон к искомому корню . Преимущество описанного метода состоит в том, что при нём получаются приближённые значения как с избытком так и с достатком.
Рисунок 2. Наглядное представление нахождения
Условия применения метода:
1) ,
2) и сохраняют знак на отрезке ,
то приближения корня уравнения по методу хорд и по методу касательных подходят к значению этого корня с противоположных сторон. Поэтому для быстроты нахождения корня удобно применять оба метода одновременно. Т.к. один метод даёт значение корня с недостатком, а другой - с избытком, то достаточно легко получить заданную степень точности корня.
Схема решения уравнения методом хорд и касательных:
1. Вычислить значения функции и .
2. Проверить выполнение условия . Если условие не выполняется, то неправильно выбран отрезок .
3. Найти производные и .
4. Проверить постоянство знака производных на отрезке . Если нет постоянства знака, то неверно выбран отрезок .
5. Для метода касательных выбирается за тот из концов отрезка , в котором выполняется условие , т.е. и одного знака.
6. Приближения корней находятся:
а) по методу касательных: ,
б) по методу хорд: .
7. Вычисляется первое приближение корня: .
8. Проверяется выполнение условия: , где - заданная точность.
Если условие не выполняется, то нужно продолжить применение метода по схеме 1-8.
В этом случае отрезок изоляции корня сужается и имеет вид . Приближённые значения корня находятся по формулам:
и .
Вычисления продолжаются до тех пор, пока не будет найдено такое значение , при котором и совпадут с точностью .
Рисунок 3. Уточнение корня комбинированным методом
2. Постановка и решение задач
2.1 Формулировка задачи
Нахождения корня уравнения 5x3+10x2+5x-1=0 методом хорд и комбинированным методом.
Графическое отделение корней
Графически отделить корни уравнения 5x3+10x2+5x-1=0.
Упрощаем уравнение, заменив его равносильным ему уравнением:
5х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 |
5х3=0
-10х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.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. Программная реализация
3.1 Блок-схемы алгоритма
Метод хорд
+ -
+ -
Комбинированный метод
- +
- +
3.2 Тексты программ
Программная реализация комбинированного метода
{Комбинированный метод решения нелинейного уравнения}
F - основная функция
F1 - первая производная
F2 - вторая производная
A - левая граница интервала
B - правая граница интервала
E - точность
E1 - погрешность
X0 - начальное приближение
X1 - вычисления методом касательных
X2 - вычисления методом хорд
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Button1: TButton;
Edit3: TEdit;
Label6: TLabel;
Edit4: TEdit;
Label7: TLabel;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
function f(x:real):real;
begin
f:=5*x*x*x+10*x*x+5*x-1; {Исходная функция}
end;
function f1(x:real):real;
begin
f1:=15*x*x+20*x+5; {Первая производная функции}
end;
function f2(x:real):real;
begin
f2:=30*x+20; {Вторая производная функции}
end;
var a,b,e,e1,x0,x1,x2:real;
begin
a:=strtofloat(edit1.Text);
b:= strtofloat(edit2.Text);
e:=strtofloat(edit3.Text);
if f(a)*f2(a)>=0 then x0:=a else x0:=b;
x1:=x0-f(x0)/f1(x0);
x2:=a-((b-a)*f(a)/(f(b)-f(a)));
e1:=(x11+x12)/2;
while abs(e1-x1)>e do
begin
a:=x1;
b:=x2;
x1:=a-f(a)/f1(a);
x2:=a-((b-a)*f(a)/(f(b)-f(a)));
e1:=(x1+x2)/2;
end;
edit4.text:='x = '+floattostrf(x1,fffixed, 10,8);
end;
end.
Рисунок 5. Вид окна программы комбинированного метода
Программная реализация метода хорд
{Решения нелинейного уравнения методом хорд}
F - Основная функция
F1 - Первая производная
A - Левая граница интервала
B - Правая граница интервала
X - Корень уравнения
Eps - Точность
unit Unit1;
interface
uses
SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
Forms, Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Edit2: TEdit;
Edit1: TEdit;
Label6: TLabel;
Label7: TLabel;
Edit3: TEdit;
Button1: TButton;
Edit4: TEdit;
procedure Button1Click(sender:TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.Button1Click(Sender:TObject);
function f(x:real):real;
begin
f:=5*x*x*x+10*x*x+5*x-1;
end;
function f1(x:real):real;
begin
f1:=15*x*x+20*x+5;
end;
var a,b,x,eps:real;
begin
a:=strtofloat(edit1.Text);
b:=strtofloat(edit2.Text);
eps:=strtofloat(edit3.Text);
repeat
x:=a-f(a)*(b-a)/(f(b)-f(a));
if f(a)*f1(x)<=0 then b:=x else a:=x;
until abs(f(x))<=eps;
edit4.Text:='Ответ:корень ='+floattostrf(x,fffixed ,10,8);
end;
end.
Рисунок 6. Вид окна программы метода хорд
3.3 Тестовый пример
В качестве тестового примера возьмем уравнение x2-5=0 на промежутке [1;2]. Решим аналитически. Корень X=2,236.
Проверим правильность работы программ для тестового примера.
Комбинированный метод
Рисунок 7. Результат работы тестовой программы комбинированного метода
Метод хорд
Рисунок 8. Результат работы тестовой программы метода хорд
Сравнив результаты мы можем сказать, что программа работает верно.
3.4 Решение задачи с помощью ЭВМ
При нахождении корня уравнения на языке программирования Delphi мы получаем следующие результаты. На рис.9 представлено решение нелинейных уравнений методом хорд, на рис.10 решение нелинейных уравнений комбинированным методом.
Рисунок 9. Метод хорд Рисунок
10. Комбинированный метод
Заключение
Ситуация, когда одну и ту же задачу можно решить многими способами, является довольно типичной. В таких случаях естественно возникает необходимость сравнения их между собой.
В данной курсовой работе мы рассмотрели комбинированный метод и метод хорд.
Комбинированный метод основан на построении схематического графика функции, определении интервалов его пересечения с осью абсцисс и последующим «сжатием» этого интервала при помощи строимых хорд и касательных к графику этой функции.
Однако преимущество комбинированного метода заключается в «двустороннем сжатии» рассматриваемого отрезка.
Недостатком этого метода является то, что для решения поставленной задачи требуется отыскание производной функции F(x), метод хорд и касательных достаточно трудно реализуем на программном уровне, т.к. правила вычисления производных в общем виде довольно громоздки для «понимания» ЭВМ; при непосредственном указании производной для каждой степени многочлена память компьютера серьезно загружается, что очень замедляет работу, а задание функции и, соответственно, ее производной непосредственно в программном коде - недопустимо.
Однако, используя данный метод, сходимость интервала к корню происходит наиболее быстро.
Недостатком метода хорд является то, что он не всегда сходится. А если сходится то, на нахождения корня уходит много времени.
В данной курсовой работе были изучены два метода решения нелинейных уравнений: метод хорд и комбинированный метод, рассмотрено решение уравнения этими методами, также был разработан алгоритм решения поставленной задачи. По этому алгоритму на языке Delphi составлена и отлажена программа.
Список литературы
1. Н. Н. Калиткин «Численные методы» М.:«Наука», 1978. с. 400
2. В.Д. Колдаев «Численные методы и программирование» М: ИД «ФОРУМ» - ИНФРА - М 2008, с. 328
3. Д. Каханер, К. Моулер «Численные методы и программное обеспечение» Мир 2001, с. 450
Размещено на Allbest.ru
Подобные документы
Особенности точных и итерационных методов решения нелинейных уравнений. Последовательность процесса нахождения корня уравнения. Разработка программы для проверки решения нелинейных функций с помощью метода дихотомии (половинного деления) и метода хорд.
курсовая работа [539,2 K], добавлен 15.06.2013Изучение численных методов решения нелинейных уравнений, используемых в прикладных задачах. Нахождение корня уравнения методом простой итерации и методом касательных (на примере уравнения). Отделение корней графически. Программная реализация, алгоритм.
курсовая работа [1,7 M], добавлен 15.06.2013Численные методы решения нелинейных уравнений, используемых в прикладных задачах. Составление логической схемы алгоритма, таблицы индентификаторов и программы нахождения корня уравнения методом дихотомии и методом Ньютона. Ввод программы в компьютер.
курсовая работа [220,0 K], добавлен 19.12.2009Использование повторяющегося процесса. Нахождение решения за определенное количество шагов. Применение метода хорд и метода простой итерации. Методы нахождения приближенного корня уравнения и их применение. Построение последовательного приближения.
курсовая работа [849,1 K], добавлен 15.06.2013Исследование количества, характера и расположения корней. Определение их приближенных значений итерационными методами: половинного деления (дихотомии) и хорд. Тексты программ. Решение уравнений на языках программирования Borland Delfi и Turbo Pascal.
курсовая работа [500,3 K], добавлен 15.06.2013Решение нелинейных уравнений методом простых итераций и аналитическим, простым и модифицированным методом Ньютона. Программы на языке программирования Паскаль и С для вычислений по вариантам в порядке указанных методов. Изменение параметров задачи.
лабораторная работа [191,0 K], добавлен 24.06.2008Разработка проекта по вычислению корней нелинейных уравнений методом итераций, в среде программирования Delphi. Интерфейс программы и ее программный код, визуализация метода. Сравнение результатов решения, полученных в Mathcad 14 и методом итераций.
контрольная работа [1,9 M], добавлен 10.12.2010Метод хорд решения нелинейных уравнений. Вычисление интеграла методом Симпсона. Процесс численного решения уравнения. Окно программы расчета корней уравнения методом хорд. Алгоритм вычисления интеграла в виде блок-схемы. Выбор алгоритма для вычислений.
курсовая работа [832,6 K], добавлен 24.07.2012Особенности решения уравнений с одной переменной методом половинного деления. Оценка погрешности метода простой итерации. Суть решения уравнений в пакете Mathcad. Векторная запись нелинейных систем. Метод Ньютона решения систем нелинейных уравнений.
курсовая работа [2,1 M], добавлен 12.12.2013Итерационные методы решения нелинейных уравнений, системы линейных алгебраических уравнений (СЛАУ). Решение нелинейных уравнений методом интерполирования. Программная реализация итерационных методов решения СЛАУ. Практическое применение метода Эйлера.
курсовая работа [1,6 M], добавлен 20.01.2010