РЕШЕНИЕ ОДНОМЕРНЫХ ЗАДАЧ ОПТИМИЗАЦИИ МЕТОДАМИ ПОСЛЕДОВАТЕЛЬНОГО ПОИСКА
Цель задания: приобрести практические навыки разработки алгоритмов и программ для решения одномерных задач оптимизации методами последовательного поиска: дихотомии и золотого сечения. Индивидуальное задание Найти минимум функции f(x) на промежутке [a,b] с точностью . Исходные данные и номера вариантов приведены в таблице 2. Построить график минимизируемой функции. Найдите минимум функции на промежутке [a,b] c точностью ε = 10-4 , методом «золотого сечения»постройте график минимизируемой функции. Блок-схема метода «Золотого сечения» представлена на рисунке3.
Рисунок 3 – Блок-схема метода «Золотого сечения»
На рисунке 4 изображено решение задачи на ЭВМ и график минимизируемой функции. Вывод: Методы последовательного поиска строятся в предположении унимодальности функции на заданном интервале. Исходя из свойств, унимодальности строится такая стратегия последовательного поиска экстремальной точки Х*, при которой любая пара вычислений f(x) позволяет сузить область поиска (интервал неопределённости). Процедура минимизации функции: procedure TForm1.SpeedButton2Click(Sender: TObject); label l2; Var a,b,e,x,x1,x2,y,y1,y2,Xmin,Ymin :real ; n :integer; t:string; Function f(x:real):real; begin f:=tan(x)+exp(-x)+x; { f:=x*x+sin(x);} end;
begin Form1.Series1.Clear; try // ввод начальных условий a:=strtofloat(form1.Edit9.Text); b:=strtofloat(form1.Edit10.Text); e:=strtofloat(form1.Edit11.Text); except showMessage('Неправильно введены начальные условия'); end;
x1:=a+0.382*(b-a); x2:=b-0.382*(b-a); y1:=f(x1); y2:=f(x2); n:=1;
l2: n:=n+1; if y1<= y2 then begin b:=x2; if (b-a) >= e then begin x2:=x1; x1:=a+0.382*(b-a); y2:=y1; y1:=f(x1); goto l2; end; end else begin a:=x1; if (b-a)>=e then begin x1:=x2; x2:=b-0.382*(b-a); y1:=y2; Y2:=f(x2); goto l2; end; end; Xmin:=(a+b)/2; Ymin:=f(Xmin); str(Xmin:10:4,t); form1.Label20.Caption:='Xmin = '+t; str(Ymin:10:4,t); form1.Label21.Caption:='Ymin = '+t; form1.Label22.Caption:='n = '+Inttostr(n); x:=strtofloat(form1.Edit9.Text); while x < strtofloat(form1.Edit10.Text) do begin y:=f(x); form1.Series1.AddXY(x,y); x:=x+0.1; end;
end; Задание 3 ГРАДИЕНТНЫЕ МЕТОДЫ РЕШЕНИЯ МНОГОМЕРНЫХ ЗАДАЧ ОПТИМИЗАЦИИ
Цель задания: закрепить теоретические сведения и приобрести практические навыки поиска безусловного экстремума функции многих переменных градиентным методом. Индивидуальное задание Найдите минимум функции методом наискорейшего спуска, выбрав начальную точку .Дать геометрическую иллюстрацию решения задачи.
Решение 1) В точке f(X0) = = -14,5 Вычислим координаты градиента функции в точке Х0 : . Поскольку , то Х0 не является точкой экстремума 2) Переместимся изХ0 вдоль градиента - в новую точкуХ1 по формуле: т.е. . Для определения координат точки Х1 нужно выбрать значение шага . Получим : Из соотношения ( , )=0 имеем: (-3-3 )(-3)+(1+ )=10+10 =0 откуда = Задание 4
Популярное: Как распознать напряжение: Говоря о мышечном напряжении, мы в первую очередь имеем в виду мускулы, прикрепленные к костям ... Организация как механизм и форма жизни коллектива: Организация не сможет достичь поставленных целей без соответствующей внутренней... Почему двоичная система счисления так распространена?: Каждая цифра должна быть как-то представлена на физическом носителе... ©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (190)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |