реклама на сайте
подробности

 
 
> алгоритмы извлечения квадратного корня
vovan1313
сообщение Oct 13 2007, 07:10
Сообщение #1





Группа: Новичок
Сообщений: 10
Регистрация: 13-10-07
Пользователь №: 31 313



Подскажите пожалуйста ламеру какой-нибудь из алгоритмов извлечения квадратного корня (еще лучше привести соответствующий код на VHDL).

Сообщение отредактировал vovan1313 - Oct 13 2007, 07:12
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
SergVZ
сообщение Oct 15 2007, 06:38
Сообщение #2


Участник
*

Группа: Новичок
Сообщений: 47
Регистрация: 26-05-06
Пользователь №: 17 478



Xn+1=(Xn+Y/Xn)/2; Y - это то, из чего корень извлекают. X0 - скажем Y/2.
Формулу отAlex255 чуток поправил.
Go to the top of the page
 
+Quote Post
Палыч
сообщение Oct 8 2009, 14:29
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954



Цитата(SergVZ @ Oct 15 2007, 09:38) *
Xn+1=(Xn+Y/Xn)/2; Y - это то, из чего корень извлекают. X0 - скажем Y/2.

Брать за Х0 число Y/2 - не самый лучший вариант...
Когда-то давно самому пришлось писать функцию вычисления корня квадратного. Программулину ту что-то найти не удаётся... По-памяти:
Если вспомнить, что вещественные числа в памяти хранятся в виде 2^N*M, то квадратный корень от числа будет равен 2^(N/2)*sqtr(M). Плохо то, что N может быть нечётным, да и корень от мантисы взять неоткуда... Но за X0 очень хорошо взять число хотя бы со степенью N/2, тем более, что получить его, обычно, очень просто - сдвигом вправо на 1 разряд. При этом получаем промежуточный результат с 1-2 верными первыми десятичными цифрами.
Ну, а дальше - Ньютон: каждая итерация добавляет ещё 1-2 верные цифры. Правда, если итерация дала 2 верные цифры, то следующая скорее всего даст только одну. Для получения шести верных первых цифр всегда достаточно взять Х0 по правилу изложенному выше и сделать 3 итерации.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- vovan1313   алгоритмы извлечения квадратного корня   Oct 13 2007, 07:10
- - petrov   http://www.google.ru/search?complete=1&...1%D0%...   Oct 13 2007, 08:58
- - PSP   Сам я VHDL не использую, но вот есть исходник из к...   Oct 13 2007, 09:15
- - Doka   от точности всё зависит, и от того сколько тактов ...   Oct 13 2007, 13:19
- - Alex255   Цитата(vovan1313 @ Oct 13 2007, 11:10) По...   Oct 15 2007, 05:36
|- - vovan1313   Цитата(SergVZ @ Oct 15 2007, 10:38) Xn+1=...   Oct 17 2007, 14:38
- - GetSmart   у меня с двух итераций получилась точность 0.175% ...   Oct 17 2007, 16:13
- - SergVZ   GetSmart, Вам похоже повезло с цифрами, возьмите д...   Oct 18 2007, 14:40
- - SergVZ   К сожалению, уже потерял право на релактирование с...   Oct 18 2007, 18:12
- - GetSmart   Понятно. Чем дальше логарифмически аргумент находи...   Oct 18 2007, 21:01
- - vovan1313   спасибо за помощь всем, кто ответил, попробую вспо...   Oct 19 2007, 12:38
- - JBM   Код///////////////////////////////////////////////...   Oct 5 2009, 12:45
- - LordVader   JBM, эта процедурка для 1/sqrt(x), вообще-то. О чё...   Oct 5 2009, 13:34
- - Serhiy_UA   Есть несколько устройств и алгоритмы прямого извле...   Oct 6 2009, 07:41


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th August 2025 - 14:21
Рейтинг@Mail.ru


Страница сгенерированна за 0.01403 секунд с 7
ELECTRONIX ©2004-2016