Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

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

Delphi , Синтаксис , Математика



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

{ **** UBPFD *********** by delphibase.endimus.com ****
>> 
Зависимости: нет
Автор:       Fenik, chook_nu@uraltc.ru, Новоуральск
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;

Программирование на Delphi: реализация метода Ньютона-Рафсона для расчета квадратных корней!

Код структурирован и легко понятен. Вот подробное описание того, что он делает:

Функция MySqrt

Эта функция рассчитывает квадратный корень заданного значения x с указанной точностью n. Функция принимает два параметра: x (входное значение) и n (число итераций для метода Ньютона-Рафсона).

Вот, как она работает:

  1. Если x меньше или равно 0, функция возвращает 0 немедленно.
  2. В противном случае, начальный guess для квадратного корня устанавливается в 4.
  3. Функция затем итерирует n раз, применяя метод Ньютона-Рафсона для уточнения оценки квадратного корня.

Формула, используемая в каждой итерации, выглядит следующим образом:

Result := (Result + x / Result) / 2

Это классическая формула обновления для приближения корней методом Ньютона-Рафсона.

Процедура FormCreate

Эта процедура демонстрирует, как использовать функцию MySqrt. Она создает форму и устанавливает ее заголовок, чтобы отображать результат расчета квадратного корня значения с помощью функции MySqrt.

Код использует функцию FloatToStrF для форматирования входного значения и рассчитанного квадратного корня как строк с 5 и 10 знаками после запятой, соответственно.

Обзор кода

Код в целом хорошо написан и легко понятен. Однако, есть несколько минимальных предложений:

  • Рассмотрите добавление комментариев, чтобы объяснить, что каждый раздел функции MySqrt делает.
  • Вам может потребоваться более надежный способ обработки недопустимых значений входных данных (например, отрицательных чисел).
  • Переменная Result объявлена как Double, но не ясно, почему вы выбрали этот тип. В целом лучше использовать наиболее точный числовой тип, подходящий для ваших расчетов.
  • Вам может потребоваться добавление проверки ошибок или обработки случаев, когда входное значение очень велико или мало.

В целом код выглядит хорошо и должен работать правильно для расчета квадратных корней с указанной точностью.

В статье описан алгоритм Ньютона для вычисления квадратного корня с помощью программирования на языке Delphi.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Математика ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-04-26 17:05:34/0.0033080577850342/0