Для извлечения корня есть итерационный алгоритм (+)
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено Палыч 17 декабря 2004 г. 09:40
В ответ на: Подскажите алгоритм извлечения квадратного корня или, если не жалко, подпрограмку для АВР на асме. отправлено Sinelogic 17 декабря 2004 г. 01:27

Если требуется найти y=sqrt(x), то y[i]= (y[i-1]+x/y[i-1])/2, где y[i] - i-ая итерация. Необходимо только оапределить y[0]. Можно брать его любым, но, если вспомнить, что для float x= m*(2**p), то y[0]= m1*(2**(p/2)). Значение m1 хорошо бы взять равным корню из m (шутка), за неимением корня берем m1=m. Каждая итерация дает 1-2 верных десятичных цифр результата (для float достаточно 4 итераций)

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru