Поиск минимума методом дихотомии
Запись от simonovada размещена 07.12.2019 в 18:43
Метки matlab, поиск минимума функции
clear all; x = linspace(0.5,1,10); % х принимает значения от 0.5 до 1, рассматриваем 10 точек A = -1/2; B =10; f = @(x)(A.*(x.^2)+(B.*x).*log(x)); % исходная формула plot(x,f(x)); % строим график a = 0.5; % промежуток [a,b] b = 1; e = 0.05; %точность D = e/2; while abs(b-a) > 2*e % на каждой итерации получаем отрезок, содержащий т мин(локализующий отрезок) c1 = ((a+b)/2)-D; %длина каждого следующего отрезка меньше предыдущего d1=((a+b)/2)+D; if f(c1) < f(d1) b = d1; else a = c1; end end if b-a<2*e X=(a+b)/2; %получаем минимум, т мин будет найдена с погрешностью end disp(['X = ' num2str(X,4)]); disp(['f(X) = ' num2str(f(X),5)]); |
Всего комментариев 0
Комментарии