Лабораторная работа №2.
Название: Метод деления отрезка пополам.
Описание метода:
Метод деления отрезка пополам является простейшим последовательным методом
минимизации. Он позволяет для любой функции (
) унимодальной, построить
последовательность вложенных отрезков:
,
каждый из которых содержит хотя бы одну точку х* минимума функции f(x).
Пусть Е>0 требуемая точность определения х*. Выбираем
.
Задание: Методом деления отрезка пополам найти точку минимума х* функции f(x) на
отрезке [a,b] с точностью Е и минимум функции f(x).
f(x)=
; [0;0.5] ; Е=0,01
Листинг программы в Pascal .
Uses CRT;
Var
a,b,x1,x2,del,eps,eps_n,funk_1,funk_2:real;
n:integer;
BEGIN
Write('Input: a, b, Epsilon: ');
ReadLn (a,b,eps);
del:=eps;
n:=0;
Repeat
x1:=(a+b-del)/2;
x2:=(a+b+del)/2;
funk_1:=3*x1*x1*x1*x1-10*x1*x1*x1+21*x1*x1-12*x1;
funk_2:=3*x2*x2*x2*x2-10*x2*x2*x2+21*x2*x2-12*x2;
if funk_1<=funk_2 then
b:=x2
Else
a:=x1;
Inc(n);
eps_n:=(b-a)/2;
Until eps_n>=eps;
x1:=(a+b)/2;
funk_1:=3*x1*x1*x1*x1-10*x1*x1*x1+21*x1*x1-12*x1;
Write('f*=',funk_1,'x*=',x1,'Eps=',Eps_n,'n=',n);
Read;
END.