logo
ГОСы - ответы [2012]

3. Записать алгоритм поиска экстремума функции Розенброка овражным методом.

f(x)=100(x2-x12)2+(1-x1)2

  1. выбираем начальную точку A0 i=0; x1=A0x; x2=A0y

  2. выбираем шаг градиента gr и шаг оврага h, gr<<h

  3. вычисляем частные производные

Px1=-400(x2-x12)x1-2(1-x1); Px2=200(x2-x12);

  1. dx1=-Px1*gr; dx2=-Px2*gr

x1+=dx1; x2+=dx2;

  1. Если 1-(f(x1,x2)-f(x1-dx1, x2-dx2))/f(x1,x2)>= e, то переход к шагу 3

  2. x1= x1 + (rand()-0.5)*2*h;

x2= x2 + (rand()-0.5)*2*h;

  1. gr=gr/2;

2) пока gr>e переход к 3.