Добавил:
Studfiles2
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Различные алгоритмы минимизации, реализованные в С++ / all / HOOKJ1
.CPP#include <iostream.h>
#include <conio.h>
double f(double x1, double x2)
{
return((x1-3)*(x1-3)+10*(5-x2)*(5-x2));
}
main()
{
clrscr();
double h=0.5;
//double eps=0.01;
double x[2]={0};
double x1[2]={0};
double x2[2]={0};
double xold[2]={0};
xold[0]=x[0];
xold[1]=x[1];
for(int i=0; i<2; i++)
{
x1[0]=x[0];
x1[1]=x[1];
x1[i]=x1[i]+h;
if(f(x1[0],x1[1])<f(x[0],x[1]))
{
x[0]=x1[0];
x[1]=x1[1];
}
x1[i]-=h;
if(f(x1[0],x1[1])<f(x[0],x[1]))
{
x[0]=x1[0];
x[1]=x1[1];
}
}
cout<<"x2=>> "<<x[0]<<" , "<<x[1]<<endl;
x2[0]=x[0];
x2[1]=x[1];
double x3[2]={0};
x3[0]=2*x2[0]-xold[0];
x3[1]=2*x2[1]-xold[1];
cout<<"skachok==>"<<x3[0]<<" , "<<x3[1]<<endl;
for(i=0; i<2; i++)
{
x1[0]=x3[0];
x1[1]=x3[1];
x1[i]=x1[i]+h;
if(f(x1[0],x1[1])<f(x3[0],x3[1]))
{
x3[0]=x1[0];
x3[1]=x1[1];
}
x1[i]-=h;
if(f(x1[0],x1[1])<f(x3[0],x3[1]))
{
x3[0]=x1[0];
x3[1]=x1[1];
}
}
cout<<"x2=>> "<<x3[0]<<" , "<<x3[1]<<endl;
x2[0]=x3[0];
x2[1]=x3[1];
}
Соседние файлы в папке all