ign="justify"> unit Unit1 ;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms ,, StdCtrls, ExtCtrls;=class (TForm): TLabeledEdit ;: TLabeledEdit ;: TLabeledEdit ;: TLabeledEdit ;: TButton ;: TLabel ;: TLabel ;: TLabeledEdit ;: TLabeledEdit ;: TLabel ;: TLabel ;: TLabel ;: TLabel ;: TLabeledEdit ;: TLabel; Button1Click (Sender: TObject);
{Private declarations}
{Public declarations} ;: TForm1 ;, B, C, D, E: real ;: array [0.100] of real ;: array [0.100] of real ;: array [0.100] of real ;: array [0.100] of real ;: array [0.100] of real ;: integer;
{$ R *. dfm} TForm1. Button1Click (Sender: TObject); l1; (LabeledEdit1. Text= ) or (LabeledEdit2. Text= ) or (LabeledEdit3. Text= ) or (LabeledEdit4. Text= raquo ;) or (LabeledEdit5. Text= ) or (LabeledEdit6. Text= ) or (LabeledEdit7. Text= ) then. Caption:= Заповніть всі поля! raquo ;. Caption:= raquo ;;:=strtofloat (LabeledEdit1. Text) ;:=strtofloat (LabeledEdit2. Text) ;:=strtofloat (LabeledEdit3. Text) ;:=strtofloat (LabeledEdit4. Text) ;:=strtofloat (LabeledEdit7. Text); [0]:=strtofloat (LabeledEdit5. Text); [0]:=strtofloat (LabeledEdit6. Text) ;:=0; [i]:=A + 2 * C * x [i]; [i] :=B + 2 * D * y [i]; ((dx [i] lt; gt; 0) and (dy [i] lt; gt; 0)) {or ((dx [i] gt; E) or (dx [i] lt; (0-E))) and ((dy [i] gt; E) or (dy [i] lt; (0-E)))} dot [i]:=(( (A + 2 * C * x [i]) * dx [i]) + ((B + 2 * D * y [i]) * dy [i]))/((2 * C * sqr (dx [ i])) + (2 * D * sqr (dy [i]))); [i + 1]:=x [i] - t [i] * dx [i]; [i + 1]:=y [i] - t [i] * dy [i]; (((x [i + 1] - x [i]) lt;=E) and ((x [i + 1] - x [i]) gt ;=(0-E))) and (((y [i + 1] - y [i]) lt;=E) and ((y [i + 1] - y [i]) gt;=(0-E))) thenl1 else [i + 1]:=A + 2 * C * x [i + 1]; [i + 1]:=B + 2 * D * y [i + 1] ;:=i +1 ;;: begin. Caption:= xmin= + floattostr (x [i]) ;. Caption:= ymin= + floattostr (y [i]) ;. Caption:= Мінімум функції F (x, y)= + floattostr (A) + x + + floattostr (B) + y + + floattostr (C) + (x) ^ 2 + + floattostr (D) + (y) ^ 2 із заданою точністю дорівнює: raquo ;;
end ;;;.
4. Контрольний приклад
Малюнок 1 - Початкове вікно програми
Малюнок 2 - Завдання параметрів в програму
Малюнок 3 - Результат розрахунків за обраним методом
Висновок
У ході даної роботи був вивчений метод багатовимірної нелінійної оптимізації - метод найшвидшого спуску, розроблений алгоритм вирішення поставленого завдання, написана і налагоджена програма в середовищі програмування Borland Delphi 7.0. [3]. За допомогою даної програми можна вирішувати задачу по знаходженню точок мінімуму функції двох змінних, із заданою точністю розрахунків.
Список використаних джерел
1 СТО СГАУ 02068410-004 - 2007. Стандарт організації. Загальні вимоги до навчальних текстових документів [Текст] - Самара: СГАУ, 2007. - 30с.
2 Матюнин, С.А. Методи Гаусса-Зейделя і найшвидшого спуску [Текст] /: методичні вказівки для виконання лабораторних робіт/С.А. Матюнин, Б.В. Скворцов.- Самара: СГАУ, 1996. - 19с.
Баженова, І.Ю. Delphi 7. Самовчитель програміста [Текст] /І.Ю. Баженова.- М .: КУДИЦ - Образ, 2003. - 448с.
Фленов, М.В. Біблія Delphi [Текст]/М.В. Фленов.- СПБ .: БХВ-Петербург, 2011. - 686с.