pascalabcnet/InstallerSamples/NumLibABC/FMinN_4.pas

24 lines
717 B
ObjectPascal
Raw Permalink Normal View History

2017-10-05 22:55:56 +03:00
uses NumLibABC;
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> BestP
begin
var f:function(x:array of real):real:= x->Power(x[0],4)+
Power(x[1],4)-2*Sqr(x[0])+4*x[0]*x[1]-2*Sqr(x[1])+3;
var a:=Arr(-20.0,-20.0); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
var b:=Arr(20.0,20.0); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
var x:=new real[a.Length]; // <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> MinHJ
var oL:=new FMinN(x,f);
var r:=oL.BestP(a,b,0.01);
var y:real;
var fet:=f(Arr(Sqrt(2),-Sqrt(2)));
foreach var t in r do begin
(y,x):=(t[0],t[1]);
Write('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: '); x.Println;
Write('<27><><EFBFBD>.<2E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: ');
x.Foreach(z->WriteFormat('{0:0.0e0} ',Abs(z)-Sqrt(2)));
Writeln;
Writeln('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: ', y, ', <20><><EFBFBD>.<2E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: ',Abs(y-fet));
Writeln
end
end.