Зауваження 1'. Іноді на практиці комбінують обидва методи: перші кроки роблять по методу золотого перерізу, а коли оптимум достатньо близький, обраховують число m і переходять до методу Фібоначі.
3. Текст програми
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Menus, TeEngine, Series, ExtCtrls, TeeProcs, Chart;
type
TForm1 = class(TForm)
Button1: TButton;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Label1: TLabel;
Edit4: TEdit;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Memo1: TMemo;
Label5: TLabel;
Chart1: TChart;
Series1: TLineSeries;
procedure Button1Click(Sender: TObject);
procedure FormActivate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
eps:real;
a,b,ao,bo:real;
alpha:real;
x1,x2:real;
f1,f2:real;
x_opt:real;
implementation
{$R *.dfm}
function f(x:real):extended;
begin
f:=sin(x+1); //zadannja potribnoji fynkchiji !!!
end;
procedure TForm1.FormActivate(Sender: TObject);
begin
Memo1.Lines.Clear;
Memo1.Lines.Add('F(x)= sin(x+1)');
end;
procedure TForm1.Button1Click(Sender: TObject);
var h:real;xx:real; i:integer;
begin
eps:=StrToFloat(Edit1.Text);
ao:=StrToFloat(Edit2.Text);
bo:=StrToFloat(Edit3.Text);
a:=ao; b:=bo;
alpha:=(sqrt(5)-1)/2;
x1:=bo-alpha*(bo-ao);
x2:=ao+alpha*(bo-ao);
f1:=f(x1);
f2:=f(x2);
while abs(a-b)>eps do
BEGIN
if f1>{<}f2 then
begin
b:=x2;
x2:=x1;
f2:=f1;
x1:=b-alpha*(b-a);
f1:=f(x1);
end ELSE
begin
a:=x1;
x1:=x2;
f1:=f2;
x2:=a+alpha*(b-a);
f2:=f(x2);
end;
END;
x_opt:=(a+b)/2;
Edit4.Text:=FloatToStr(x_opt);
{--------------------------------}
xx:=ao;
h:=(bo-ao)/20;
for i:=1 to 20 do
begin
Series1.AddXY(xx,f(xx),'',clblue);
xx:=xx+h;
end;
end;
end.
4. Результат роботи програми
Рис. 1
Розв’язок вручну:
Розв’язок рівняння в роботі Розв’язок прикладу 2
Отже максимум = -1 при х = ±1, у = 4 – т. мінімума
а мінімум = 0,57 при х = ±2, у =13 – т. максимума
Висновок
Метод золотого перерізу належить до симетричних методів. Використовуючи цю ідею, можна будувати й інші симетричні методи, але як і в методі золотого поділу, їх потрібно досліджувати на стійкість.
Список використаної літератури
1. Сторнгин Р.Г. Численные методы в многоэкстремальных задачах (Информационно-статистические алгоритмы). – М.: Наука, 1978. –240 с.
2. Бейко И.В., Бублик Б.Н., Зинько П.Н. Методы и алгоритмы решения задач оптимизации. – К.: Вища школа, 1983. –512 с.
3. Стахов О.П. За принципом золотої пропорції: перспективний шлях розвитку обчислювальної техніки. Журнал "Вісник Академії наук Української РСР", №1-2, 1990 г.
4. Ю.В. Васильков, Н.Н. Василькова. «Компютерные технологии вычислений в математическом моделирование» Москва, «финансы и статистика» 2002. – 249 с.