Реферат: Минимизация функций нескольких переменных. Метод спуска
g=3;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::PuskClick(TObject *Sender)
{
ss=0; //количество точек которых получилось
Diapozon=true;
Min();
if (Diapozon==false)
ss=ss-1;
Sh3Back->Visible=true;
Panel6->Visible=true;
Series1->Clear();
for(int i = 0; i <ss; i++)
{
Series1->AddXY(i,Tochki[i][2],"",clBlue);
Nomer->Items->Add(i);
}
Nomer->Items->Add(ss);
//Nomer->Items->St
//ListT->Items->Add(123);
//if ( Diapozon=true )
//{ Itog->Caption="Точка минимума в указанном диапозоне "; }
}
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
void __fastcall TForm1::CB1Click(TObject *Sender)
{
if(CB1->Checked == true )
NT->Visible=true;
if(CB1->Checked == false )
NT->Visible=false;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button8Click(TObject *Sender)
{
Panel6->Visible=false;
ListT->Items->Clear();
Nomer->Items->Clear();
Nomer->ItemIndex=-1;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::NomerChange(TObject *Sender)
{
int ind=Nomer->ItemIndex;
ListT->Items->Clear();
for (int i=0;i<n;i++)
ListT->Items->Add(Tochki[ind][i]);
ListT->Items->Add(Tochki[ind][2]);
if (ind == ss)
if( Diapozon==true)
{ ListT->Items->Add(" Минимум");}
else
{
ListT->Items->Add(" Минимум");
ListT->Items->Add("Следующая точка в");
ListT->Items->Add("диапозон не входит");
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Pr1Click(TObject *Sender)
{
if(Pr1->Checked == true )
DD=true;
if(Pr1->Checked == false )
{
DD=false;
MessageDlg("Вы отключили проверку диапозона точки,"
"убедитесь в этом",mtWarning,
TMsgDlgButtons() << mbOK , 0);
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::CB2Click(TObject *Sender)
{
if(CB2->Checked == true )
{
Panel7->Visible=true;
Series1->Active=false;
Series2->Clear();
Perem->Text="Xi";
Perem->Items->Clear();
CB3->ItemIndex=-1;
CB3->Items->Clear();
CB4->ItemIndex=-1;
CB4->Items->Clear();
for(int i = 0; i < n; i++)
Perem->Items->Add(i+1);
for(int i = 0; i <= ss; i++)
{
CB3->Items->Add(i);
}
}
if(CB2->Checked == false )
{
Series2->Clear();
Series2->Active=false;
Series1->Active=true;
Panel7->Visible=false;
CB4->Enabled=false;
CB3->Enabled=false;
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::PeremChange(TObject *Sender)
{
int ind=Nomer->ItemIndex;
CB3->Enabled=true;
CB3->ItemIndex=0;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::CB3Change(TObject *Sender)
{
CB4->Items->Clear();
CB4->ItemIndex=-1;
int in=CB3->ItemIndex;
CB4->Enabled=true;
for(int i = in; i <=ss ; i++)
CB4->Items->Add(i);
CB4->ItemIndex=0;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::CB4Change(TObject *Sender)
{
Bild->Visible=true;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::BildClick(TObject *Sender)
{
Series2->Clear();
ListP->Items->Clear();
int nh=CB3->ItemIndex;
int nk=CB4->ItemIndex;
Series2->Active=true;
for(int i = nh; i <=nk+nh; i++)
{
Series2->AddXY(i,Tochki[i][ind],"",clBlue);
ListP->Items->Add(Tochki[i][ind]);
}
Bild->Visible=false;
CB4->Enabled=false;
CB4->Items->Clear();
CB4->ItemIndex=-1;
}
//---------------------------------------------------------------------------
Приложение B
Исследование функции U=1*x1^3+2*x2^2-3*x1-4*x2 (изменением шага).
h=0,1; x1 =-0,5; x2=-1 ; x1нач=-2, x1кон=2, x2нач=-2, x2кон=2
№ |
x1 |
x2 |
R |
0 | -0,5 | -1 | 7,375 |
1 | -0,2750 | -0,1999 | 1,6842 |
2 | 0,0023 | 0,2800 | -0,9701 |
3 | 0,3023 | 0,5680 | -2,5059 |
4 | 0,5749 | 0,7408 | -3,4002 |
5 | 0,7757 | 0,8445 | -3,8120 |
6 | 0,8952 | 0,9067 | -3,9508 |
7 | 0,9548 | 0,9440 | -3,9877 |
8 | 0,9813 | 0,9664 | -3,9967 |
9 | 0,9924 | 0,9798 | -3,9990 |
10 | 0,9969 | 0,9879 | -3,9997 |
11 | 0,9988 | 0,9927 | -3,9999 |
12 | 0,9995 | 0,9956 | -4,0000 |
13 | 0,9998 | 0,9974 | -4,0000 |
14 | 1,0000 | 0,9984 | -4,0000 |
h=0,2; x1 =-0,5; x2=-1 ; x1нач=-2, x1кон=2, x2нач=-2, x2кон=2
№ |
x1 |
x2 |
R |
0 | -0,5 | -1 | 7,375 |
1 | 0,0500 | 0,6000 | -1,5301 |
2 | 0,5485 | 0,9200 | -3,4676 |
3 | 0,9680 | 0,9840 | -3,9964 |
4 | 1,0058 | 0,9968 | -3,9999 |
5 | 0,9988 | 0,9994 | -4,0000 |
h=0,3; x1 =-0,5; x2=-1 ; x1нач=-2, x1кон=2, x2нач=-2, x2кон=2
№ |
x1 |
x2 |
R |
0 | -0,5 | -1 | 7,375 |
1 | 0,1750 | 1,4 | -2,1996 |
2 | 1,0473 | 0,9200 | -3,9804 |
3 | 0,9600 | 1,016 | -3,9948 |
4 | 1,0305 | 0,9968 | -3,9972 |
5 | 0,9747 | 0,0006 | -3,9981 |
6 | 1,0196 | 0,9999 | -3,9988 |
7 | 0,9839 | 1,0000 | -3,9992 |
8 | 1,0126 | 1,0000 | -3,9995 |
9 | 0,9898 | 1,0000 | -3,9997 |
10 | 1,0081 | 1,0000 | -39998 |
11 | 0,9935 | 1,0000 | -3,9999 |
12 | 1,0052 | 1,0000 | -3,9999 |
13 | 0,9958 | 1.0000 | -3,9999 |
14 | 1,0033 | 1,0000 | -4,0000 |
15 | 0,9973 | 1,0000 | -4,0000 |
16 | 1,0021 | 1,0000 | -4,0000 |
17 | 0,9983 | 1,0000 | -4,0000 |
18 | 1,0013 | 1,0000 | -4,0000 |
h=1; x1 =-0,5; x2=-1 ; x1нач=-2, x1кон=2, x2нач=-2, x2кон=2
№ |
x1 |
x2 |
R |
0 | -0,5 | -1 | 7,375 |
1 | 0,6250 | 3 | 4,3692 |
2 | 1,5391 | -1,0000 | 5,0283 |
3 | 0,5125 | 1 | -3,4029 |
4 | 1,0655 | 1 | -3,9869 |
5 | 0,9640 | 1 | -3,9961 |
6 | 1,0170 | 1 | -3,9991 |
7 | 0,9913 | 1,0000 | -3,9998 |
8 | 1,0043 | 1 | -3,9999 |
9 | 0,9978 | 1 | -4,0000 |
10 | 1,0011 | 1 | -4,0000 |