Verfahren von Archimedes mit Subtraktionskatastrophe
zum Verfahren siehe etwas Lambacher-Schweizer LS10,
S.90
procedure TForm1.bRechneClick(Sender: TObject);
var
i : integer;
n : int64;
s,u : single;
begin
mAus.Lines.Add('n sn un pi');
mAus.Lines.Add('------------------------------------------------------------------------------------');
n := 6; s := 1;
u := n*s;
for i := 1 to 38 do
begin
mAus.Lines.Add(Format('%-8d',[n])+#9+Format('%1.18f',[s])+#9+
Format('%1.18f',[u])+#9+Format('%1.18f',[u/2]));
n := 2*n;
s := sqrt(2-sqrt(4-s*s));
u := n*s;
end;
end;
archimedes1.zip
Verfahren von Archimedes ohne Subtraktionskatastrophe
procedure TForm1.bRechneClick(Sender: TObject);
var
i : integer;
n : int64;
s,u : extended;
begin
mAus.Lines.Add('n sn un pi');
mAus.Lines.Add('------------------------------------------------------------------------------------');
n := 6; s := 1;
u := n*s;
for i := 1 to 38 do
begin
mAus.Lines.Add(Format('%-8d',[n])+#9+Format('%1.18f',[s])+#9+
Format('%1.18f',[u])+#9+Format('%1.18f',[u/2]));
n := 2*n;
s := s/sqrt(2+sqrt(4-s*s));
u := n*s;
end;
end;
archimedes2.zip
Links