Автор: Пользователь скрыл имя, 01 Декабря 2010 в 00:31, реферат
Все методы спуска решения задачи безусловной минимизации различаются либо выбором направления спуска, либо способом движения вдоль направления спуска. Это позволяет написать общую схему методов спуска.
1. Методы спуска (Общая схема) _________________________ 3
2. Метод покоординатного спуска._____________________ 4
3. Метод градиентного спуска.________________________________ 7
4. Метод наискорейшего спуска.______________________________ 9
5. Описание программы._____________________________________10
6. Общая блок схема.________________________________________ 11
7. Руководство для пользования.______________________________12
8. Приложение А (Листинг программы)__________________________13
IX. Приложение B
(Исследование функции U=A*x1^3+B*x2^2-C*x1-D*x2 (изменение шага))_____ 25
//------------------------
void __fastcall TForm1::Sh2NextClick(TObject *Sender)
{
ii++;
PageControl1->ActivePageIndex=
g=3;
}
//------------------------
void __fastcall TForm1::Sh3BackClick(TObject *Sender)
{
ii--;
PageControl1->ActivePageIndex=
Panel5->Visible=false;
Sh2Next->Visible=false;
g=2;
}
//------------------------
void __fastcall TForm1::Sh2BackClick(TObject *Sender)
{
if (g ==1 )
{
ii--;
PageControl1->ActivePageIndex=
Panel2->Visible=true;
Panel3->Visible=false;
Panel4->Visible=false;
Panel5->Visible=false;
}
if (g == 2)
{
Panel3->Visible=true;
Panel4->Visible=false;
Panel5->Visible=false;
n=KolPer[UD->Position];
Per->Caption="X1 =";
s=0;
g=1;
}
if (g == 3)
{
Panel5->Visible=false;
Sh2Next->Visible=false;
g=2;
}
}
//------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Panel3->Visible=true;
n=KolPer[UD->Position];
Per->Caption="X1 =";
}
//------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
PeremenN[s]=StrToFloat(Edit4->
InterN[s]=StrToFloat(Edit3->
InterK[s]=StrToFloat(Edit5->
s++;
Per->Caption="X"+ IntToStr(s+1)+"=";
g=2;
if (s == n)
{Panel4->Visible=true;g=2;}
}
//------------------------
void __fastcall TForm1::Button3Click(TObject *Sender)
{
Param[0]=StrToFloat(Edit6->
Param[1]=StrToFloat(Edit7->
Param[2]=StrToFloat(Edit8->
if(CB1->Checked == true )
{Param[3]=StrToFloat(NT->Text)
else
{Param[3]=-1;}
Sh2Next->Visible=true;
Panel5->Visible=true;
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],
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][
ListT->Items->Add(Tochki[ind][
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][
ListP->Items->Add(Tochki[i][
}
Bild->Visible=false;
CB4->Enabled=false;
CB4->Items->Clear();
Информация о работе Минимизация функций нескольких переменных. Метод спуска