2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Сходимость метода
Сообщение12.04.2011, 22:06 
Здравствуйте!
Взбрендило мне для расчета целочисленного квадратного корня ("пол" sqrt(x)) написать целочисленный же алгоритм. Зачем-то я начал пытаться использовать для этого алгоритм Ньютона, притом вот какой:

код: [ скачать ] [ спрятать ]
Используется синтаксис C#
public static long isqrt_newton_simple(long num)
{
   long xPrev = 0, xCur = num;

   while (true)
   {
       xPrev = xCur;
       xCur = (xPrev + num / xPrev) / 2;

       if (xCur == xPrev)
           return xCur;

       else if (xCur > xPrev)
           return xPrev;
    }
}
 


Ну, думал, облом.
Но чудесы великия!
Алгоритм дает верное значение для целой части квадратного корня, хотя бы на диапазоне 32-битного типа int.

Но я, увы, не математик, и мне становится печально, как только я подумаю о доказательстве сходимости метода к целой части квадратного корня. Есть ли у Вас какие-то идеи? Бестолковый метод или толковый? Почему?

 
 
 [ 1 сообщение ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group