Метод деления пополам
Автор Glyk задал вопрос в разделе ВУЗы, Колледжи
метод деления отрезка по полам и получил лучший ответ
Ответ от JoKa Fern Lowd[гуру]
метод деления отрезка пополам заключается в следующем
есть точка, где какая-то непрерывная на отрезке функция меняет знак, нужно найти эту точку. на концах отрезка функция имеет разный знак. смотрим знак в середине и из двух образовавшихся отрезков выбираем тот, на концах которого знаки функции разные. Проделав эту операцию некоторое количество раз, можно приближённо найти точку, где знак меняется.
для поиска минимума нужно искать знак производной (в точке минимума производная меняет знак)
f(x)=x⁴-x³-2x²+3x-3
f'(x)=4x³-3x²-4x+3
вообще у этой функции два минимума, один на промежутке от -2 до 0, второй, на промежутке от 2 до 4
выбираем промежуток поиска минимума
на концах этого промежутка знаки f'(x) должны быть разными
и действуем по плану ища точку где знак f'(x) меняется
для поиска минимума на левом конце знак f'(x) отрицателен, на правом положителен (знак меняется с минума на плюс)
вот примерная реализация (возможны ошибки)
function dfdx(x:real):real;
begin
return ((4*x-3)*x-4)*x+3;
end;
var a,b,c:real;
begin
a:=2.0;
b:=4.0;
while ((b-a) > 1.0E-5) do
begin
c := (a+b)/2;
if (dfdx(c) > 0) then b:=c else a:=c;
end;
writeln('x=',c); // в Delphi можно записать c в какое-нибудь текстовое поле
end;
соеденить концы, а в месте сгиба - разрезать