Реферат: Минимизация функций нескольких переменных. Метод спуска
double TForm1::F3( double T[]) //Formula3 U=X1^2+X2^2
{ double U = 0;
U =T[0]*T[0]+T[1]*T[1]+1;
return U; }
//---------------------------------------------------------------------------
void TForm1::Tochka(double shag) // функция считает координаты следующей точки
{ // n - количество переменных
for (int i = 0; i < n; i++)
{
TempT[i]=T2[i]-shag*Gr(i);
//точка X[j+1]=точка X[j]- h козф шага *градиет grad R(X[j])
}
}
//---------------------------------------------------------------------------
double TForm1::Gr( int i) //gradient i-номер переменной
{
double dR=0; // dR - градиент по i
for (int j=0;j<n;j++) //BB,B==T1;
{
BB[j]=T2[j];
B[j]=T2[j];
}
BB[i]=T2[i]+ Param[1] ; // добавляем и отнимаем пробный шаг
B[i]=T2[i]- Param[1] ; // к i-ой переменной
switch (UD->Position) {
case 0: dR = (F1(BB)- F1(B))/(2*Param[1]) ; break;
case 1: dR = (F2(BB)-F2(B))/(2*Param[1]); break;
case 2: dR = (F3(BB)-F3(B))/(2*Param[1]); break;
}