Отчет по лабораторной работе
Метод простых итераций
Содержание
1 Постановка задачи………………………………………………………………..3
2 Краткие теоретические сведения………………………………………………..4
2.1 Метод Ньютона…………………………………………………………..4
2.2 Метод простых итераций………………………………………………..6
3 Практическая часть………………………………………………………………8
3.1 Алгоритм…………………………………………………………………8
3.2 Блок схема………………………………………………………………..9
3.3 Текст программы……………………………………………………….10
3.4 Тестовые примеры……………………………………………………...12
3.5 Проверка в MathCad……………………………………………………13
4 Список использованной литературы…………………………………………..15
1 Постановка задачи
Пусть функция f(x)=0 монотонная на отрезке [a,b], причем выполнено условие: f(a)*f(b)<0.
Требуется найти корень функции:
x3-0,1x2+0,4x-1,5=0,
используя метод простых итераций.
2 Краткие теоретические сведения
2.1 Метод Ньютона
Если известно начальное приближение к корню уравнения f(x)=0, то эффективным методом уточнения корней является метод Ньютона (метод касательных).
Пусть функция f(x) имеет первую и вторую производную на отрезке [a,b], причем выполнено условие знакопеременности функции f(a)*f(b)<0, а производные f '(x), f'''(x) сохраняют знак на отрезке [a,b]. Тогда, исходя из начального приближения x0[a,b], удовлетворяющего неравенству f(x)*f''(x)>0, можно построить итерационную последовательность
, n=0,1,2,...
сходящуюся к единственному на [a,b] решению x уравнения f(x)=0.
В данном методе процесс итераций состоит в том, что в качестве приближений к корню принимаются значения x0,x1,x2... точек пересечения касательной к кривой y=f(x) с осью абсцисс. То есть, геометрически метод Ньютона эквивалентен замене небольшой дуги кривой y=f(x) касательной. При этом не обязательно задавать отрезок [a,b], содержащий корень уравнения, а достаточно лишь найти некоторое начальное приближение корня х=х0 (рисунок 1).
Рисунок 1 –Метод касательных
В качестве начального приближения выберем х0=a, для которого выполняется условие f(x0)* f'І(x0)>0. Проведем касательную в точке A0[x0,f(x0)]. Первым приближением корня будет точка пересечения этой касательной с осью абсцисс х1. Через точку A1[x1,f(x1)] снова проводим касательную, точка пересечения которой с осью ОХ даст нам второе приближение корня х2 и т.д.
На рисунке 2 приведены возможные варианты выбора правого или левого конца отрезка в качестве начального приближения.
Условие выбора: f(x)*f ''(x)>0.
Рисунок 2 – Выбор отрезка
Вывод формулы Ньютона.
Уравнение касательной, проведенной к кривой y=f(x) в точке А0[x0,f(x0)], имеет вид:
y -f(x0) = f '(x0)(x-x0).
Отсюда найдем следующее приближение корня. Примем х=х1 (y=0), тогда
-f (x0) = f ' (x0) (x1-x0),
.
Аналогично могут быть найдены и следующие приближения, как точки пересечения с осью ОХ касательных, проведенных в точках А1, А2 и т.д. Формула Ньютона для n+1-го приближения будет иметь вид: .
Для окончания итерационного процесса может быть использовано условие: .
2.1 Метод простых итераций
Одним из наиболее важных численных методов решения нелинейных уравнений является метод итераций. Сущность метода заключается в следующем.
Пусть функция f(x) монотонная на отрезке [a,b], причем выполнено условие: f(a)*f(b)<0.
Заменим исходное нелинейное уравнение f(x)=0 эквивалентным ему уравнением вида: x=φ(x).
Пусть известно начальное приближение корня х=х0. Подставляя это значение в правую часть уравнения, получаем новое приближение: x1= φ(x0).
Затем аналогичным образом получим: x2 = φ(x1) .
Далее, подставляя каждый раз новое значение корня, получаем последовательность значений
xn+1 = φ(xn) , n=1,2, ... .
Итерационный процесс продолжается до тех пор, пока не станут близки результаты двух последовательных итераций:
.
Достаточным условием сходимости метода простых итераций является условие: | φl(x)| < 1,vвыполненное для любого x, принадлежащего некоторому отрезку [a,b], содержащему корень уравнения.
Рассмотрим геометрическую интерпретацию метода. Построим графики функций y=x и y= (x) (рисунок 3). Корнем уравнения x=(x) является абсцисса точки пересечения кривой y= (x) с прямой y=x.
Рисунок 3 – Метод простых итераций
Из графиков видно, что при φl(x)>0 (а, б) и при φl(x)<0 (в, г) возможны как сходящиеся, так и расходящиеся итерационные процессы. Скорость сходимости зависит от абсолютной величины производной φl(x). Чем меньше |φl(x)| вблизи корня, тем быстрее сходится процесс
Итерационные процессы могут быть односторонними, если φl(x)>0 и двусторонними, если φl(x)<0.
3 Практическая часть
3.1 Алгоритм
Шаг 1: Вводим исходные данные для нахождения корня, а именно, x0 и e, где
е - требуемая точность вычислений.
Шаг 2: Вычисляем значение функции в точке х0.
Шаг 3: Проверяем условие (0.052/(1-0.052))*|x-x0|>e, где q=0,052. Если условие выполняется x0:=x и снова считаем значение функции. Если не выполняется – выходим из цикла.
Шаг 4: Выводим полученный результат.
Шаг 5: Конец задачи.
3.2 Блок схема
3.3 Текст программы
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Edit1: TEdit;
Edit3: TEdit;
Button1: TButton;
Button2: TButton;
Edit2: TEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
Function f(x:real):real;
Begin
f:=exp(1/3*(ln(0.1*x*x)-ln(0.4*x)+ln(1.5)));
end;
procedure TForm1.Button1Click(Sender: TObject);
var
x0,x,e:real;
t:boolean;
begin
x0:=strtofloat(edit1.text);
e:=strtofloat(edit2.text);
while t=false do
begin
x:=f(x0);
if abs(x-x0)>e then
x0:=x
else
t:=true;
end;
Edit3.Text:=floattostr(x);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
close;
end;
end.
3.4 Тестовые примеры
Рисунок 4 – Тестовый пример 1
Рисунок 5 – Тестовый пример 2
3.5 Проверка в MathCad
Рисунок 6 - Функция
Рисунок 7 – Нахождение α и β
Рисунок 8 – Поиск функции φ
Рисунок 9 – Функция φ, удовлетворяющая всем условиям
Список использованной литературы
- Вержбицкий В.М. Численные методы (линейная алгебра и нелинейные уравнения): Учеб. пособие для вузов.- М.: Высш. шк., 2000.- 266с.
Скачать: