ПРОГРАММИСТЫ СРОЧНО НУЖНА ПОМОЩЬ!!!!
МАТЛАБ(MATLAB)
ТЕМА: Оптимизация одномерной функции метод дихотомии и золотого сечения
Необходимо : найти минимум унимодальной функции T(u) m:n T(u)
унимодальная интервала u [a b]
задать аналитическим образом унимодальную интервала .
найти решение изобразить на графике в матлаб

Ответы

Ответ дал: YolandaProgramme
0

Ответ:

Оптимизация одномерной функции - это процесс поиска минимума или максимума функции на некотором интервале. Для унимодальной функции, то есть функции, у которой существует только один экстремум на заданном интервале, метод дихотомии и метод золотого сечения являются эффективными методами оптимизации.

Метод дихотомии заключается в разделении интервала на две равные части и выборе той части, на которой функция принимает меньшее значение. Этот процесс повторяется до тех пор, пока интервал не станет достаточно мал.

Метод золотого сечения заключается в делении интервала в пропорции золотого сечения, то есть отношение длины всего интервала к большей части интервала равно отношению большей части к меньшей. Затем выбирается та часть интервала, на которой функция принимает меньшее значение, и процесс повторяется до тех пор, пока интервал не станет достаточно мал

Используем метод дихотомии и метод золотого сечения, чтобы оптимизировать функцию и найти минимум.

a = 0; % левый конец интервала

b = 5; % правый конец интервала

% Метод дихотомии

epsilon = 1e-6; % задаем точность

while (b-a) > epsilon

x1 = (a+b)/2 - epsilon/2;

x2 = (a+b)/2 + epsilon/2;

if T(x1) < T(x2)

b = x2;

else

a = x1;

end

end

disp(['Минимум функции методом дихотомии: ', num2str((a+b)/2)]);

% Метод золотого сечения

epsilon = 1e-6; % задаем точность

phi = (1+sqrt(5))/2; % золотое сечение

x1 = b - (b-a)/phi;

x2 = a + (b-a)/phi;

while (b-a) > epsilon

if T(x1) < T(x2)

b = x2;

x2 = x1;

x1 = b - (b-a)/phi;

else

a = x1;

x1 = x2;

x2 = a + (b-a)/phi;

end

end

disp(['


aiken055a: код не работает
Вас заинтересует