Нахождение корня уравнения методом касательных и комбинированным методом
Применение методов касательных (Ньютона) и комбинированного (хорд и касательных) для определения корня уравнения. Разработка алгоритма решения и его описание его в виде блок-схем. Тексты программ на языке Delphi. тестовый пример и результат его решения.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 15.06.2013 |
Размер файла | 923,7 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Федеральное агентство по образованию
ФГОУ СПО «Уфимский авиационный техникум»
Курсовая работа
Нахождение корня уравнения методом касательных и комбинированным методом
По дисциплине «Численные методы»
Введение
Процедура подготовки и решения задачи на ЭВМ достаточно сложный и трудоемкий процесс, состоящий из следующих этапов:
Постановка задачи (задача, которую предстоит решать на ЭВМ, формулируется пользователем или получается им в виде задания).
Математическая формулировка задачи.
Разработка алгоритма решения задачи.
Написание программы на языке программирования.
Подготовка исходных данных.
Ввод программы и исходных данных в ЭВМ.
Отладка программы.
В настоящей курсовой работе условие задачи дано в математической формулировке, поэтому необходимость в выполнении этапов 1 и 2 отпадает и сразу можно приступить к разработке алгоритма решения задачи на ЭВМ. Под алгоритмом понимается последовательность арифметических и логических действий над числовыми значениями переменных, приводящих к вычислению результата решения. Таким образом, при разработке алгоритма решения задачи математическая формулировка преобразуется в процедуру решения, представляющую собой последовательность арифметических действий и логических связей между ними.
Наиболее наглядным способом описания алгоритмов является описание его в виде схем. При этом алгоритм представляется последовательность блоков, выполняющих определенные функции, и связей между ними. Внутри блоков указывается информация, характеризующая выполняемые ими функции.
На этапе 4 составляется программа на языке Delphi. При описании программы необходимо использовать характерные приемы программирования и учитывать специфику языка.
Отладка программы состоит в обнаружении и исправлении ошибок, допущенных на всех этапах подготовки задач к решению на ПЭВМ. Синтаксис ошибки обнаруживается компилятором, который выдает сообщение, указывающее место и тип ошибки.
Задание при обработке на ЭВМ проходит ряд шагов: компиляцию, редактирование (компоновку) и выполнение.
Обработка результатов решения задачи осуществляется с помощью ЭВМ. Выводимые результаты оформлены в виде, удобном для восприятия.
Цель курсовой работы: освоить два метода решения нелинейных уравнений, а именно - метод касательных (Ньютона) и комбинированный метод (хорд и касательных) и применить их на практике.
Данная курсовая работа состоит из трех частей: в первой части (теоретической) содержатся краткие описания методов, во второй части (практической) содержатся формулировка задачи и ее решение требуемыми методами, третья часть (программная) включает в себя блок-схемы алгоритмов, тексты (листинги) программ на языке Delphi, тестовый пример и результат его решения, а также результат решения поставленной задачи.
1 Теоретическая часть
1.1 Краткое описание метода касательных
Метод Ньютона, алгоритм Ньютона (также известный как метод касательных) -- это итерационный численный метод нахождения корня (нуля) заданной функции. Метод был впервые предложен английским физиком, математиком и астрономом Исааком Ньютоном (1643--1727), под именем которого и обрёл свою известность. Поиск решения осуществляется путём построения последовательных приближений и основан на принципах простой итерации. Метод обладает квадратичной сходимостью. Улучшением метода является метод хорд и касательных. Также метод Ньютона может быть использован для решения задач оптимизации, в которых требуется определить нуль первой производной либо градиент в случае многомерного пространства.
Этот метод применяется, если уравнение имеет корень, и выполняются следующие условия: 1) - функция принимает значения разных знаков на концах отрезка [a;b]; 2) производные и сохраняют знак на отрезке (т.е. функция либо возрастает, либо убывает на отрезке , сохраняя при этом направление выпуклости).
Суть метода заключается в том, что в точке приближения к функции строится касательная (рис. 1). Следующая точка приближения - это точка пересечения полученной прямой с осью Ox. На отрезке выбирается такое число , при котором имеет тот же знак, что и , т. е. выполняется условие . Таким образом, выбирается точка с абсциссой , в которой касательная к кривой на отрезке пересекает ось . За точку сначала удобно выбирать один из концов отрезка. Вычисления ведутся до совпадения десятичных знаков, которые необходимы в ответе, или при заданной точности - до выполнения неравенства .
Рисунок 1. Касательная к функции
Пусть уравнение F(x)=0 имеет единственный корень на промежутке (a;b), преобразуем его к равносильному уравнению x=x-(x)*F(x), где F(x) - любая функция и не обращающаяся в 0, пусть . Тогда рекуррентное соотношение для итерационной последовательности будет иметь вид:
Достоинства метода: простота, быстрота сходимости.
Недостатки метода: вычисление производной и трудность выбора начального положения.
1.2 Краткое описание комбинированного метода
При решении уравнений часто комбинируют методы хорд и Ньютона. Если график функции y=f(x) обращён вогнутостью вверх, то находят точки а1 и х1 по формулам:
(1)
(2)
Если же график функции y=f(x) обращён вогнутостью вниз, то точку а1 находят по формуле (1), а точку х1 - по формуле:
(3)
Как видно из рисунка 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.
В этом случае отрезок изоляции корня сужается и имеет вид . Приближённые значения корня находятся по формулам:
и.
Вычисления продолжаются до тех пор, пока не будет найдено такое значение , при котором и совпадут с точностью .
· Комбинированный метод наиболее трудоемок.
· Метод, как и метод Ньютона не всегда сходится
· Комбинированный метод сходится быстрее всех ранее рассмотренных, (если он сходится).
касательный хорда корень уравнение
2 Постановка и решение задачи
2.1 Формулировка задачи
Применение метода касательных и комбинированного метода для решения нелинейных уравнений (на примере уравнения 0,1x2-xln(x)=0)
Графическое отделение корней
Уравнению 0,1x2-xln(x)=0 соответствует эквивалентное уравнение 0,1x=ln(x). Если построить графики функций y1=0,1x и y2=ln(x), то абсциссы точек пересечения графиков этих функций дадут искомые корни данного уравнения. Из рисунка 3 видно, что корень уравнения лежит на промежутке [1;2].
Рисунок 3. Графическое отделение корней
2.2 Решение задачи методом касательных
1. Вычислим значения функции 0,1x2-xln(x)=0 на концах отрезка:
f(a)=f(1)=0,1*12 -1*ln(1)=0,1>0,
f(b)=f(2)= 0,1*22 -2*ln(2)= -0,98629<0
2. Проверим выполнение условия: f(a)*f(b)=0,1*(-0,98629)<0 - условие выполняется.
3. Найдем производные:
f'(x)=(0,1x2 - xln(x))'=0,2x-1+ln(x),
f''(x)=(0,2x-1+ln(x))'=0,2+1/x
4. На отрезке [1;2] производные f'(x)<0 и f''(x)>0, т.е. сохраняют знак, следовательно, условие выполняется.
5. Выберем значение x0 для метода касательных. Т.к. f''(x)>0 и f(1)>0, то x0=1.
6. Итерационная формула метода Ньютона будет такой:
7. Применяя эту формулу, последовательно находим:
Так что x=1,118 с точностью ? = 0,001. Как мы видим, значение корня с нужной нам точностью было получено на четвертом шаге. (Пятый шаг понадобился для того, чтобы можно было убедиться, что с нужной нам точностью значение перестало изменяться).
2.3 Решение задачи комбинированным методом
1. Вычислим значения функции 0,1x2-xln(x)=0 на концах отрезка:
f(a)=f(1)=0,1*12 -1*ln(1)=0,1>0,
f(b)=f(2)= 0,1*22 -2*ln(2)= -0,98629<0
2. Проверим выполнение условия: f(a)*f(b)= 0,1*(-0,98629)<0 - условие выполняется.
3. Найдем производные:
f'(x)=(0,1x2 - xln(x))'=0,2x-1+ln(x),
f''(x)=(0,2x-1+ln(x))'=0,2+1/x
4. На отрезке [1;2] производные f'(x)<0 и f''(x)>0, т.е. сохраняют знак, следовательно, условие выполняется.
5. Выберем значение x0 для метода касательных. Т.к. f''(x)>0 и f(1)>0, то x0=1.
6. Найдем приближения корня:
По методу касательных:
По методу хорд:
7. Найдём первое приближение корня:
8. Проверим выполнение условия: > 0,001 - условие не выполняется, значит нужно продолжить вычисления.
9. Отрезок изоляции корня имеет вид: x [;].
10. Продолжим уточнение корня по схеме. Для этого найдём значения функции на концах суженного отрезка:
f(1,125) = -0,005943415,
f(2,0356) = -1,032518641
11. Возьмем x11=1,125 для метода касательных
12. Вычислим значение производной:
13. f'(x11)= f'(1,125)=-0,65722
14. Найдём новые значения концов отрезка изоляции:
15. Найдём второе приближение корня:
16. Проверим выполнение условия: >0,001- неравенство неверное, значит необходимо продолжить вычисления.
17. Отрезок изоляции корня имеет вид: x[1,1159; 1,1302]
18. Вычислим значения функции:
f(1,1159)=0,002152287,
f(1,1302)=-0,010595182
19. Условие f(1,1159)* f(1,1302)<0 выполняется
20. Так как f''(x)>0 и f(1,1159)>0, то для метода касательных x21=1,1159
21. Вычислим производную: f'(x21)= f'(1,1159)=-0,66716
22. Вычислим:
Найдём третье приближение корня:
23. Проверим выполнение неравенства: < 0,001 - условие выполняется, значит, цель достигнута.
24. Следовательно, - приближённое значение корня с точностью до 0,0001.
Ответ:
3 Программная реализация
3.1 Блок-схемы алгоритмов
Блок-схема алгоритма к методу касательных
Блок-схема алгоритма к комбинированному методу
3.2 Тексты программ
Текст программы метода касательных на языке Delphi
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Edit1: TEdit;
Label4: TLabel;
Label5: TLabel;
Edit2: TEdit;
Label6: TLabel;
Edit3: TEdit;
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:=0.1*sqr(x)-x*ln(x);
end;
function f1(x:real):real;{Первая производная функции}
begin
f1:=0.2*x-1+ln(x);
end;
function f2(x:real):real;{Вторая производная функции}
begin
f2:=0.2+1/x;
end;
var a,b,x,t,eps:real;
begin
a:=strtofloat(edit1.Text); {Преобразует числовую строку в значение с плавающей запятой}
b:= strtofloat(edit2.Text);
eps:=strtofloat(edit3.Text);
if f(a)*f2(a)>=0 then x:=a else x:=b; {Выбор начального приближения}
repeat
t:=f(x)/f1(x);
x:=x-t;
until abs(t)<=eps;
edit4.text:= 'Ответ: корень = '+floattostrf(x,fffixed, 10,6); {Преобразует значение с плавающей запятой в строку}
end;
end.
Текст программы комбинированного метода на языке Delphi:
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;
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:=0.1*sqr(x)-x*ln(x);
end;
function f1(x:real):real;{Первая производная функции}
begin
f1:=0.2*x-1+ln(x);
end;
function f2(x:real):real;{Вторая производная функции}
begin
f2:=0.2+1/x;
end;
var a,b,e,e1,x0,x11,x12: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; {Выбор начального приближения}
begin
x11:=x0-f(x0)/f1(x0); {Вычисление по методу Ньютона}
x12:=a-((b-a)*f(a)/(f(b)-f(a))); {Вычисление по комбинированному методу}
e1:=(x11+x12)/2; {Приближение корня}
while abs(e1-x11)>e do {Проверяется выполнение условия}
begin
a:=x11;
b:=x12;
x11:=a-f(a)/f1(a);
x12:=a-((b-a)*f(a)/(f(b)-f(a)));
e1:=(x11+x12)/2;
end;
edit4.text:='Ioaao: ei?aiu = '+floattostrf(x11,fffixed, 10,6); {Преобразует значение с плавающей запятой в строку}
end;
end;
end.
3.3 Тестовый пример
В качестве тестового примера рассмотрим линейное уравнение x3 - 1=0, корень которого равен 1.
На рисунке 5 представлено решение примера методом касательных.
Рисунок 5. Решение уравнения методом касательных
На рисунке 6 - решение тестового примера комбинированным методом.
Рисунок 6. Решение уравнения комбинированным методом
3.4 Решение задачи с помощью ЭВМ
На рисунке 7 представлен результат работы программы для метода касательных.
Рисунок 7. Результат работы программы для метода касательных на языке Delphi
На рисунке 8 - результат работы программы для комбинированного метода.
Рисунок 8. Результат работы программы для комбинированного метода на языке Delphi
Заключение
Ситуация, когда одну и ту же задачу можно решить многими способами, является довольно типичной. В таких случаях естественно возникает необходимость сравнения их между собой.
При оценке эффективности численных методов существенное значение имеют различные свойства:
1) универсальность;
2) простота организации вычислительного процесса и контроля над точностью;
3) скорость сходимости.
Метод касательных обладает наибольшей скоростью сходимости. В случае, когда подсчёт значений функции f(x) сложен и требует больших затрат машинного времени, это преимущество становится определяющим.
Метод касательных также отличается от других тем, что для определения интервала, в котором заключен корень, не требуется находить значения функции с противоположными знаками. Вместо интерполяции (приближения) по двум значениям функции в методе Ньютона осуществляется экстраполяция (предсказание) с помощью касательной к кривой в данной точке.
Комбинированный метод используют для того, чтобы достичь наиболее точной погрешности, но он отнюдь не обладает простой организацией вычислительного процесса.
Из вышесказанного следует, что ответ на вопрос о наилучшем численном методе решения уравнения не однозначен. Он существенно зависит от того, какую дополнительную информацию о данной функции мы имеем, в соответствие с этим, каким свойствам метода придаём большее значение.
Итак, в данной курсовой работе были изучены два метода решения нелинейных уравнений: метод Ньютона и комбинированный метод, рассмотрено решение уравнения этими методами, также был разработан алгоритм решения поставленной задачи. По этому алгоритму на языке Delphi составлена и отлажена программа.
Список литературы
1. Формалев В.Ф., Ревизников Д.Л. Численные методы. -М.:ФИЗМАТЛИТ, 2004 - 400с.
2. Пирумов У.Г. Численные методы Учебное пособие - М Издательство МАИ, 1998 - 188с. с ил.
3. Кацман Ю.Я. Прикладная математика. Численные методы. Учебное пособие. - Томск: Изд. ТПУ, 2000. - 68 с.
Размещено на Allbest.ru
Подобные документы
Описание методов дихотомии (половинного деления) и касательных. Их применение для решения нелинейных уравнений. Графическое отделение корней. Блок-схемы алгоритмов. Тексты (листинги) программ на языке Delphi. Тестовый пример решения задачи с помощью ЭВМ.
курсовая работа [944,6 K], добавлен 15.06.2013Изучение численных методов решения нелинейных уравнений, используемых в прикладных задачах. Нахождение корня уравнения методом простой итерации и методом касательных (на примере уравнения). Отделение корней графически. Программная реализация, алгоритм.
курсовая работа [1,7 M], добавлен 15.06.2013Этапы численного решения нелинейных уравнений заданного вида: отделение (изоляция, локализация) корней уравнения аналитическим или графическим способами, уточнение конкретного выделенного корня методом касательных (Ньютона). Решение в системе MathCad.
курсовая работа [271,6 K], добавлен 22.08.2012Обзор существующих методов по решению нелинейных уравнений. Решение нелинейных уравнений комбинированным методом и методом хорд на конкретных примерах. Разработка программы для решения нелинейных уравнений, блок-схемы алгоритма и листинг программы.
курсовая работа [435,8 K], добавлен 15.06.2013Рассмотрение процесса разработки системы нахождения нулей функции. Изучение вычисления корня уравнения методом Ньютона или касательных. Основы проектирования графического интерфейса пользователя и описание алгоритма, тестирование готовой программы.
курсовая работа [1,2 M], добавлен 23.02.2014Анализ метода касательных (метода секущих Ньютона), аналитическое решение нелинейного уравнения. Описание алгоритма решения задачи, пользовательских идентификаторов, блок-схем, программного обеспечения. Тестирование программы на контрольном примере.
курсовая работа [97,1 K], добавлен 10.01.2014Программный продукт, способный решать уравнения с одной переменной методом Ньютона (касательных). Он прост в эксплуатации, имеет интуитивно понятный интерфейс, выстраивает график уравнения, что очень важно для пользователя. Реализация решений в программе.
курсовая работа [169,3 K], добавлен 29.01.2009Особенности точных и итерационных методов решения нелинейных уравнений. Последовательность процесса нахождения корня уравнения. Разработка программы для проверки решения нелинейных функций с помощью метода дихотомии (половинного деления) и метода хорд.
курсовая работа [539,2 K], добавлен 15.06.2013Использование повторяющегося процесса. Нахождение решения за определенное количество шагов. Применение метода хорд и метода простой итерации. Методы нахождения приближенного корня уравнения и их применение. Построение последовательного приближения.
курсовая работа [849,1 K], добавлен 15.06.2013Математический алгоритм вычисления корней нелинейного уравнения и его решение методом касательных. Особенности программной реализации решения таких уравнений. Процедура подготовки и решения задачи на ЭВМ, характеристика алгоритма и структуры программы.
курсовая работа [96,6 K], добавлен 02.06.2012