Численные методы решения нелинейных уравнений, используемые в прикладных задачах. Нахождение корня уравнения методом простой итерации и методом хорд
Использование повторяющегося процесса. Нахождение решения за определенное количество шагов. Применение метода хорд и метода простой итерации. Методы нахождения приближенного корня уравнения и их применение. Построение последовательного приближения.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 15.06.2013 |
Размер файла | 849,1 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Федеральное агентство по образованию
ФГОУ СПО «Уфимский авиационный техникум»
Курсовая работа
Численные методы решения нелинейных уравнений, используемые в прикладных задачах. Нахождение корня уравнения методом простой итерации и методом хорд
по дисциплине «Численные методы»
КР 080802.10.038.03 ПЗ
Студент А.Б. Бобронников
Руководитель работы Э.Р. Ахматсафина
Содержание
Введение
1. Теоретическая часть
1.1 Метод простой итерации
1.2 Метод хорд
2. Постановка и решение задачи
2.1. Формулировка задачи
2.2 Решение методом простых итераций
2.3 Решение методом хорд
3. Программная реализация
3.1 Метод итераций
3.1.1. Блок схема
3.1.2 Программа
3.1.3 Тестовый пример
3.1.4 Решение задачи с помощью ЭВМ
3.2 Метод хорд
3.2.1 Блок схема
3.2.2 Программа
3.2.3 Тестовый пример
3.2.4 Решение задачи с помощью ЭВМ
Заключение
Список используемой литературы
Введение
Прямые (или точные) методы, позволяют найти решение за определённое количество шагов. Итерационные методы, основаны на использовании повторяющегося процесса и позволяют получить решение в результате последовательных приближений.
Метод хорд и метод простой итерации -- два итерационных метода нахождения корня уравнения.
В этой курсовой речь пойдёт о приближённом нахождении корней уравнения . Дело в том, что решить уравнение "точно", то есть выразить его корни через известные постоянные (целые числа, числа , и другие им подобные) с помощью элементарных функций от этих постоянных, удаётся далеко не всегда. Результат же всё равно получится приближённый, поскольку вычислять дроби и корни в решении придётся приближённо.
Цель: рассмотреть два метода нахождения приближенного корня уравнения и применить их на практике:
- метод хорд
- метод простой итерации.
Состав курсовой работы:
Первая часть - Теоретическая:
В ней описывается теоретическая часть обоих методов.
Вторая часть - Практическая:
В ней реализована практическая реализация обоих методов.
Третья часть - Программная:
В ней реализованы методы с помощью программного языка ЭВМ.
1. Теоретическая часть
1.1 Метод простой итерации
Предположим, что уравнение при помощи некоторых тождественных преобразований приведено к виду.
Заметим, что такое преобразование можно вести разными способами, и при этом будут получаться разные функции в правой части уравнения. Уравнение эквивалентно уравнению при любой функции. Таким образом, можно взять и при этом выбрать функцию (или постоянную) так, чтобы функция удовлетворяла тем свойствам, которые понадобятся нам для обеспечения нахождения корня уравнения.
Для нахождения корня уравнения выберем какое-либо начальное приближение (расположенное, по возможности, близко к корню ). Далее будем вычислять последующие приближения
по формулам
то есть используя каждое вычисленное приближение к корню в качестве аргумента функции в очередном вычислении. Такие вычисления по одной и той же формуле , когда полученное на предыдущем шаге значение используется на последующем шаге, называются итерациями. Итерациями называют часто и сами значения , полученные в этом процессе (то есть, в нашем случае, последовательные приближения к корню).
Заметим: тот факт, что - корень уравнения , означает, что есть абсцисса точки пересечения графика с прямой y=x. Если же при каком-либо вычислено значение и взято в качестве нового аргумента функции, то это означает, что через точку графика проводится горизонталь до прямой y=x, а оттуда опускается перпендикуляр на ось . Там и будет находиться новый аргумент .
Рисунок 1. Точка - решение уравнения . Построение точки x1 по точке x0
Проследим, как изменяются последовательные приближения xi при различных вариантах взаимного расположения графика и прямой y=x.
1). График расположен, по крайней мере в некоторой окрестности корня, включающей начальное приближение x0, в некотором угле со сторонами, имеющими наклон менее к горизонтали (то есть стороны угла - прямые
где ):
Рисунок 2. График пересекает прямую y=x под малым углом: варианты расположения
Если предположить вдобавок, что функция имеет производную , то этот случай соответствует тому, что выполнено неравенство , при , близких к корню . Проследим в этом случае за поведением последовательных приближений
Рисунок 3. Сходящиеся к корню приближения в случае : два варианта
Мы видим, что каждое следующее приближение будет в этом случае расположено ближе к корню , чем предыдущее приближение . При этом, если график при лежит ниже горизонтали , а при -- выше её (что, в случае наличия производной, верно, если ), то приближения ведут себя монотонно: если , то последовательность монотонно возрастает и стремится к , а если , то монотонно убывает и также стремится к . Если же график функции лежит выше горизонтали при и ниже её при (это так, если ), то последовательные приближения ведут себя иначе: они "скачут" вокруг корня , с каждым скачком приближаясь к нему, но так же стремятся к при .
Заметим, что если функция не монотонна в окрестности точки , то последовательные приближения могут вести себя нерегулярно (то есть не монотонно и не оказываясь попеременно то левее, то правее корня, а делая скачки относительно корня при произвольных номерах (см. следующий рисунок):
хорда итерация приближение уравнение
Рисунок 4. В случае немонотонной функции сходящиеся итерации могут вести себя нерегулярно
2). График расположен, по крайней мере в некоторой окрестности корня, вне некоторого угла со сторонами, имеющими наклон более к горизонтали (то есть стороны угла - прямые , где )
Рисунок 5. График пересекает прямую под большим углом: варианты расположения
Если функция имеет производную , то в этом случае при , близких к корню , выполнено неравенство .
Рисунок 6. Числа расходятся в случае : два варианта
Каждая следующая итерация будет в этом случае расположена дальше от корня , чем предыдущая, . При этом, в зависимости от того, пересекает ли график прямую "снизу вверх" или "сверху вниз" (см. рисунок.6 ), последовательность монотонно удаляется от корня или же итерации удаляются от , оказываясь попеременно то справа, то слева от корня.
Ещё одно замечание: если не выполнено ни условие , ни условие , то итерации могут зацикливаться. На чертеже ниже приведён пример зацикливания, когда уравнение имеет вид .
Рисунок 7. Пример зацикливания итераций
Мы видим, что для сходимости итераций к корню, вообще говоря, не обязательно наличие производной у функции . Однако метод итераций гораздо удобнее формулировать в терминах, связанных со значениями производной. Именно так мы и сформулируем наши наблюдения в виде теоремы.
Теорема Если функция имеет производную в некоторой окрестности корня уравнения , причём при , то последовательность итераций , полученных при , начиная с , сходится к корню .
При этом скорость сходимости задаётся неравенствами
где -- длина окрестности , а точность -го приближения -- оценкой
Доказательство. Пусть . По формуле конечных приращений, применённой к отрезку между точками и , получаем
где лежит между и . Значит, то есть (напомним, что и ). Повторяя рассуждения для точек вместо , получаем
Так как , последовательность стремится к 0 при . Значит, при .
Неравенство очевидно, поскольку из того, что и лежат в окрестности длины , следует, что .
Поскольку
мы имеем
так как и
Определение Доказанные оценки показывают, что скорость сходимости итераций к корню не меньше, чем у геометрической прогрессии со знаменателем , где -- величина, ограничивающая сверху абсолютную величину производной. Тем самым, чем меньше , тем быстрее сходятся итерации. Наиболее быстро они будут сходиться, если график пересекает прямую , имея горизонтальную касательную, то есть при (и, разумеется, при выборе начального приближения достаточно близко к корню , так чтобы на отрезке между и производная мало отличалась от 0).
Рисунок 8. Быстрая сходимость итераций при горизонтальной касательной к графику
Выше мы отмечали, что привести уравнение к виду можно, выбирая в виде
где -- произвольная функция. При различных способах выбора получаются разные модификации метода итераций, которые имеют отличающиеся свойства: разную скорость сходимости (но не меньшую той, что гарантирована теоремой) и разную потребность в вычислении значений функции или , а также их производных.
1.2 Метод хорд
Идея метода состоит в том, что по двум точкам и построить прямую (то есть хорду, соединяющую две точки графика ) и взять в качестве следующего приближения абсциссу точки пересечения этой прямой с осью . Иными словами, приближённо заменить на этом шаге функцию её линейной интерполяцией, найденной по двум значениям : и . (Линейной интерполяцией функции назовём такую линейную функцию , значения которой совпадают со значениями в двух фиксированных точках, в данном случае - в точках и )
В зависимости от того, лежат ли точки и по разные стороны от корня или же по одну и ту же сторону, получаем такие чертежи
Рисунок 9. Построение последовательного приближения по методу хорд: два случая
Итак, очередное последовательное приближение будет зависеть от двух предыдущих: . Найдём выражение для функции .
Интерполяционную линейную функцию будем искать как функцию с угловым коэффициентом, равным разностному отношению
построенному для отрезка между и , график которой проходит через точку
Решая уравнение , находим
Заметим, что величина может рассматриваться как разностное приближение для производной в точке . Тем самым полученная формула (1) -- это разностный аналог итерационной формулы метода Ньютона.
Вычисление по формуле (1) гораздо предпочтительнее вычисления по другой полученной нами формуле
хотя эти две формулы математически тождественны, поскольку при использовании формулы (1) в случае вычислений с округлениями (например, на компьютере) достигается меньшая потеря значащих цифр.
Вычисления ведутся непосредственно по формуле (1) при , начиная с двух приближений и , взятых, по возможности, поближе к корню . При этом не предполагается, что лежит между и (и что значения функции f в точках и имеют разные знаки). При этом не гарантируется, что корень попадёт на отрезок между и на каком-либо следующем шаге (хотя это и не исключено). В таком случае затруднительно дать оценку погрешности, с которой приближает истинное значение корня , и поэтому довольствуются таким эмпирическим правилом: вычисления прекращают, когда будет выполнено неравенство , где - желаемая точность нахождения корня. При этом полагают приближённое значение корня равным .
2. Постановка и решение задачи
2.1 Формулировка задачи
Численные методы решения нелинейных уравнений, используемые в прикладных задачах. Нахождение корня уравнения методом простой итерации и методом хорд (на примере уравнения ).
Решение:
Разделяем уравнение на две составляющие:
Составляем таблицу значений для обоих уравнений:
Y |
-2,00 |
-1,00 |
0,00 |
1,00 |
2,00 |
3,00 |
|
X1 |
-8 |
-1 |
0 |
1 |
8 |
27 |
|
X2 |
13 |
6 |
3 |
4 |
9 |
18 |
Рисунок 10. График пересечения двух функций
Ответ: Корень находится на отрезке [2;3]
2.2 Решение методом простой итерации
Уравнение: x3-2x2+x-3=0
Заменим уравнение на x=x-1/5(x3-2x2+x-3);
Погрешность E=0,0001;
Отрезок [2;3];
Найдем корень равнения с помощью последовательности итераций:
X0=2;
X1=2-1/5(23-2*22+2-3)= 2,2 2,2-2>0,0001
X2=2,2-1/5(2,23-2*2,22+2,2-3)= 2,1664 2,1664-2,2>0,0001
X3=2,1664-1/5(2,16643-2*2,16642+2,1664-3)= 2,17693 2,17693-2,1664>0,0001
X4=2,17693-1/5(2,176933-2*2,176932+2,17693-3)= 2,17385 2,17385-2,17693>0,0001
X5=2,17385-1/5(2,173853-2*2,173852+2,17385-3)= 2,17477 2,17477-2,17385>0,0001
X6=2,17477-1/5(2,174773-2*2,174772+2,17477-3)= 2,1745 2,1745-2,17477>0,0001
X7=2,1745-1/5(2,17453-2*2,17452+2,1745-3)= 2,17458 2,17458-2,1745<0,0001
Рисунок 11. График пересечения функции с y=x
Ответ: Корень уравнения с точностью 0,0001 равен 2,1745;
2.3 Решение методом хорд
Уравнение: x3-2x2+x-3=0
Формула для решения:
Погрешность: Е=0,00001;
X0=0;
X1=3;
Последовательность итераций:
X2=3-(f(3)*(3-0))/(f(3)-f(0))= 1,5;
|1,5-3|>0,00001 Продолжаем считать
X3=1,5-(f(1,5)*(1,5-3))/(f(1,5)-f(3))= 1,838709;
|1,838709-1,5|>0,00001 Продолжаем считать
X4=1,838709-(f(1,838709)*( 1,838709-1,5))/(f(1,838709)-f(1,5))= 2,46809;
|2,46809-1,838709|>0,00001 Продолжаем считать
X5=2,46809-(f(2,46809)*( 2,46809-1,838709))/(f(2,46809)-f(1,838709))= 2,10549;
|2,10549-2,468709|>0,00001 Продолжаем считать
X6=2,10549-(f(2,10549)*(2,10549-2,46809))/(f(2,10549)-f(2,46809))= 2,16185;
|2,16185-2,10549|>0,00001 Продолжаем считать
X7=2,16185-(f(2,16185)*( 2,16185-2,10549))/(f(2,16185)-f(2,10549))= 2,17519;
|2,17519-2,16185|>0,00001 Продолжаем считать
X8=2,17519-(f(2,17519)*( 2,17519-2,16185))/(f(2,17519)-f(2,16185))= 2,174553;
|2,174-2,175|>0,00001 Продолжаем считать
X9=2,174553-(f(2,174553)*( 2,174553-2,17519))/(f(2,174553)-f(2,17519))= 2,174559;
|2,174553-2,174559|<0,00001 Требуема точность была достигнута
Ответ: Корень уравнения, на отрезке [2;3], с точностью 0,00001, равен 2,174559.
3. Программная реализация
3.1 Метод простой итерации
3.1.1 Блок схема
3.1.2 Программа
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Button1: TButton;
Edit3: TEdit;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var x0,e,y:real;
function f(c:real):real;
begin
f:=c*c*c-2*c*c+c-3;
end;
begin
x0:=strtofloat(edit1.text);
e:=strtofloat(edit2.text);
y:=x0-f(x0)/5;
while (abs(y-x0)>e) do
begin
x0:=y;
y:=x0-f(x0)/5;
end;
edit3.text:=floattostrf(y,ffFixed, 20,5);
end;
end.
3.1.3 Тестовый пример
Для тестового примера возьмем уравнение х-3=0
Начальная точка: 0
Погрешность: Е=0,0001
Ответ: 3
3.1.4 Решение задачи с помощью ЭВМ
3.2 Метод хорд
3.2.1 Блок схема
3.2.2 Программа
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Label1: TLabel;
Label2: TLabel;
Label3: 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);
var
x0,x1,y,e:real; k:integer;
function F(c:real):real;
begin
f:=c*c*c-2*c*c+c-3;
end;
begin
x0:=strtofloat(edit1.Text);
x1:=strtofloat(edit2.Text);
e:=strtofloat(edit3.Text);
repeat
y:=x1-(f(x1)*(x1-x0))/(f(x1)-f(x0));
if ((abs(y-x1))<e) then k:=1 else begin x0:=x1; x1:=y end
until k=1;
Edit4.text:='Ioaao:'+floattostrf(y,ffFixed, 20,6);
end;
end
3.2.3 Тестовый пример
В качестве тестового примера возьмем уравнение x-3=0
Отрезок: [0;2]
Погрешность: Е=0,00001
Ответ: 3
3.2.4 Решение задачи с помощью ЭВМ
Заключение
В этой курсовой мы разобрали два итерационных метода нахождения корня уравнения.
Мы выяснили, что в методе хорд на ось абсцисс опускаются хорды, последовательно приближаясь к корню уравнения. А в методе простых итераций уравнение заменяется на равносильное ему типа , а дальше идет поиск точки пересечения с прямой y=x.
В любом методе последовательных приближений корень уравнения ищут, учитывая определенную погрешность, тем самым увеличивая точность значения корня.
В итоге мы выяснили что метод простых итераций является более простым в исполнении в отличии от метода хорд, тем самым выигрывая в этом тяжелом сравнении.
Список литературы
1. Каханер Д., Моулер К., Нэш С. Численные методы и программное обеспечение (пер. с англ.). М.: Мир, 2001, 575 c.
2. Самарский А. А., Гулин А. В. Численные методы: Учеб. пособие для вузов. -- М.: Наука. Гл. ред. физ-мат. лит., 1989. -- 432 с.
Размещено на Allbest.ru
Подобные документы
Изучение численных методов решения нелинейных уравнений, используемых в прикладных задачах. Нахождение корня уравнения методом простой итерации и методом касательных (на примере уравнения). Отделение корней графически. Программная реализация, алгоритм.
курсовая работа [1,7 M], добавлен 15.06.2013Особенности точных и итерационных методов решения нелинейных уравнений. Последовательность процесса нахождения корня уравнения. Разработка программы для проверки решения нелинейных функций с помощью метода дихотомии (половинного деления) и метода хорд.
курсовая работа [539,2 K], добавлен 15.06.2013Обзор существующих методов по решению нелинейных уравнений. Решение нелинейных уравнений комбинированным методом и методом хорд на конкретных примерах. Разработка программы для решения нелинейных уравнений, блок-схемы алгоритма и листинг программы.
курсовая работа [435,8 K], добавлен 15.06.2013Методы решения нелинейных уравнений: прямые и итерационные. Методы решения трансцендентных, алгебраических уравнений. Метод деления отрезка пополам, Ньютона, простой итерации. Поиск корня уравнения методом простой итерации с помощью электронных таблиц.
контрольная работа [2,4 M], добавлен 16.12.2011Исследование количества, характера и расположения корней. Определение их приближенных значений итерационными методами: половинного деления (дихотомии) и хорд. Тексты программ. Решение уравнений на языках программирования Borland Delfi и Turbo Pascal.
курсовая работа [500,3 K], добавлен 15.06.2013Изучение способов решения линейных и квадратных уравнений методом простой итерации: доказательство теоремы о сходимости и геометрическая интерпретация. Анализ математического решения задачи, ее функциональной модели, блок-схемы и программной реализации.
реферат [411,5 K], добавлен 25.01.2010Применение методов касательных (Ньютона) и комбинированного (хорд и касательных) для определения корня уравнения. Разработка алгоритма решения и его описание его в виде блок-схем. Тексты программ на языке Delphi. тестовый пример и результат его решения.
курсовая работа [923,7 K], добавлен 15.06.2013Численные методы решения нелинейных уравнений, используемых в прикладных задачах. Составление логической схемы алгоритма, таблицы индентификаторов и программы нахождения корня уравнения методом дихотомии и методом Ньютона. Ввод программы в компьютер.
курсовая работа [220,0 K], добавлен 19.12.2009Решение нелинейного уравнения шаговым методом, методом половинного деления, методом Ньютона и простой итерации с помощью программы Mathcad. Разбиение промежутка на число n интервалов. Условия сходимости корня. Составление программы для решения на С++.
лабораторная работа [207,5 K], добавлен 10.05.2012Рассмотрение двух способов решения систем линейных алгебраических уравнений: точечные и приближенные. Использование при программировании метода Гаусса с выбором главного элемента в матрице и принципа Зейделя. Применение простой итерации решения уравнения.
курсовая работа [879,8 K], добавлен 05.06.2012