Comments 13
почему-то, вспомнил о методе градиентного спуска.
Какая сходимость метода? То есть сколько итераций корректировок нужно для достижения заданной точности? Что-то мне подсказывает, что даже метод Герона менее вычислительно затратен
Чем метод ньютона не подходит? Берем какой-то x и вычисляем несколько раз (N/x+x)/2.
Вот начнем с x=100 для N=97344
(100+97344/100)/2 = 536,72
(536,72+97344/536,72)/2 = 359,04
(359,04+97344/359,04)/2 = 315,08
(315,08+97344/315,08)/2=312,015
Всего 4 итерации и очень простое правило. У вас какие-то похожие этапы есть с делением N на "делитель".
А про ваш метод надо сначала доказать вообще, что он работает. Формулы записать в общем виде хотя бы, а не не в виде пары скриншотов с конкретным числом. Без этих всяких напридумыванных терминов. Что вообще за бессмысленный суп из слов "эталонность четвертой части динамического делителя".
Отдельный минус в карму за наглость называния этого по своей фамилии. Это звенящая пошлость. Особенно после " я не профессор математических познаний". Фамилию к вашему методу может быть представят потомки, если он чем-то выдающийся окажется.
Данный метод проверялся автоматически через скрипт js от 2-x до 10-значных чисел, все результаты верны. По поводу максимально возможной итерации, во всей проверке не было больше 5 итераций. Большое спасибо за критику по поводу того, что не ввел понятие формулы, после упрощения,рефакторинга и дай бог доведения этого метода до двух шагов, обязательно представлю формулу, сейчас он чересчур громоздкий и по этой причине разложен пошагово, на данном этапе его стоит рассматривать от части лишь как общий эскиз, который отражает в себе основную идею, на базе которой и будут происходить все последующие итерации оптимизаций и упрощений. Еще раз спасибо за проявленное горячее внимание, а то что Вас зацепила моя фамилия в наименовании метода... нету законов которые регламентировали бы это, надеюсь Вам это не испортило настроение, желаю Вам как можно больше позитивного восприятия всего что смогло дотянутся до вашего взора в этой временной точке.
Данный метод проверялся автоматически через скрипт js от 2-x до 10-значных чисел
Это не гарантия истинности. Хорошо бы формулы с доказательствами сходимости получить. Так-то, есть в математике закономерности, которые внезапно ломаются только на очень больших числах. Вот тут второй пример прикольный - очень похожие интегралы и дают ровно пи/2, пока туда не вставишь 42-значное число: https://www.youtube.com/watch?v=n4VWgquP8D0
Так что проверка на компьютере - первый необходимый шаг, но совсем не достаточный.
сейчас он чересчур громоздкий
У вас там кроме деления N на x, умножения на 2 ничего и нету практически. Не особо громоздко. Правда, если его таки записать формально. может получится тот же самый метод Ньютона, только вид сбоку.
нету законов которые регламентировали бы это
Нету законов, есть правила приличия.
Так это он по сути и есть, просто выведеный через одно место.
Вспоминается 0x5f3759df. Велосипед изобретён заново, но отличий от классического подхода не вижу. Выбор начального значения причудлив, бинарный поиск ближайшей сепени двойки IMHO будет быстрее. А дальше у вас применяется обычный метод Герона.
Ребята я его сейчас оптимизирую до двух шагов, обязательно выложу статью. Спасибо за комментарии.
"Правило первоначального делителя - десять в степени (количества пар в нашем числе, с вычетом одного нуля)..."
Поясните процитированное правило: в примере пятизначное число 97344 из которого можно составить 10 пар ( 97, 93, 94, 94, 73, 74, 74 и т.д.). Что я не понял?
навели меня на мысль что тут явно что-то не так
Обычно "что-то не так" значит отсутствие знания. Потому что в теме старой как мир перепробовано уже всё всеми. Знакомство с методом Ньютона поможет вам не только квадратные корни находить, но вообще практически любые обратные функции. Ну а ваш метод отличается от него лишь запутанным ходом рассуждения и отсутствием формализации.
А начальное значение удобно находить через рациональную аппроксимацию, например

Которая получена например аппроксимацией Паде (здесь в точке 100).
Извлечение квадратного корня методом Маятникова