Вычисление квадратного корня (алгоритм Ньютона)



Автор: Fenik
WEB-сайт: http://delphibase.endimus.com

{ **** UBPFD *********** by delphibase.endimus.com ****
>> Вычисление квадратного корня (алгоритм Ньютона)
Зависимости: нет
Автор:       Fenik, [email protected], Новоуральск
Copyright:   Автор: Федоровских Николай
Дата:        20 апреля 2003 г.
***************************************************** }
function MySqrt(x: Double; n: Byte): Double;
{ x - аргумент
n - точность вычисления (советую брать 7-8) }
var
i: Integer;
begin
if x <= 0 then
begin
Result := 0;
Exit;
end
else
Result := 4;
for i := 0 to n do
begin
Result := (Result + x / Result) / 2;
end;
end;

Пример использования:

procedure TForm1.FormCreate(Sender: TObject);
var
n: Double;
begin
//Тест (сверить с калькулятором)
n := 29.7665342;
Caption := 'Sqrt(' + FloatToStrF(n, ffFixed, 10, 5) + ') = ' +
FloatToStrF(MySqrt(n, 7), ffFixed, 10, 10);
end;

Далее: Вычисление наибольшего общего делителя двух целых неотрицательных чисел »»