39 lines
913 B
Text
39 lines
913 B
Text
function ComputeEuler(N: int64): double;
|
|
{Compute Eurler number with N-number of iterations}
|
|
var I: integer;
|
|
var A: double;
|
|
begin
|
|
Result:=0;
|
|
for I:=1 to N-1 do
|
|
Result:=Result + 1 / I;
|
|
A:=Ln(N + 0.5 + 1/(24.0*N));
|
|
Result:=Result-A;
|
|
end;
|
|
|
|
|
|
|
|
procedure ShowEulersNumber(Memo: TMemo);
|
|
{Show Euler numbers at various levels of precision}
|
|
var Euler,G,A,Error: double;
|
|
var N: integer;
|
|
const Correct =0.57721566490153286060651209008240243104215933593992;
|
|
|
|
procedure ShowEulerError(N: int64);
|
|
{Show Euler number and Error}
|
|
begin
|
|
Euler:=ComputeEuler(N);
|
|
Error:=Correct-Euler;
|
|
Memo.Lines.Add('N = '+FloatToStrF(N,ffNumber,18,0));
|
|
Memo.Lines.Add('Euler='+FloatToStrF(Euler,ffFixed,18,18));
|
|
Memo.Lines.Add('Error='+FloatToStrF(Error,ffFixed,18,18));
|
|
Memo.Lines.Add('');
|
|
end;
|
|
|
|
begin
|
|
{Compute Euler number with iterations ranging 10 to 10^9}
|
|
for N:=1 to 9 do
|
|
begin
|
|
ShowEulerError(Trunc(Power(10,N)));
|
|
end;
|
|
|
|
end;
|