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

 
 
> Как рекуррентно посчитать 1/X?, Нужен алгоритм
bve
сообщение Aug 30 2005, 05:37
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 316
Регистрация: 20-02-05
Из: Ленинградская обл.
Пользователь №: 2 765



Есть задача - при вычислении длинного набора данных каждую точку необходимо
умножать на коэффициент 1/(A+nd), где n - номер точки, A и d - постоянные.
Кто-нибудь знает, как можно быстро реализовать такое умножение ( деление ).
Рассуждая в терминах сигнальных процессоров - за один-два такта?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
PowerF1
сообщение Aug 30 2005, 15:09
Сообщение #2


Участник
*

Группа: Новичок
Сообщений: 34
Регистрация: 12-03-05
Из: Новосибирск
Пользователь №: 3 288



Тогда можно использовать следующий алгоритм, только точность его невелика.
Призводная от ln(A+nd) =1/(A+nd). Т.е. необходимо посчитать производную ln в точке n. Лучшая точность будет, если известны значения функции в соседних точках слева и справа (n-1, n+1). Но по-условию известны только предыдущие значения. Значит можно взять только один вариант- определять производную по 2-м предыдущим точкам (n-2, n-1). Конечно, точность может оказаться маленькой и ошибка будет накапливаться. Но это будет зависеть от вас. Можно, например, затабулировать с десяток первых значений, а считать начиная с 11-ой точки.
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 21:13
Рейтинг@Mail.ru


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