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

 
 
> Табличное предстваление нелинейной функции - проблема точности
syoma
сообщение Jan 22 2014, 11:41
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 817
Регистрация: 14-02-07
Из: наших, которые работают за бугром
Пользователь №: 25 368



Народ - примитивный вопрос - вроде как в универе учил, а забыл как делается.

В общем есть такая функция:
y = (pi-0.5*((2.6829)*u.^(1/3)+0.1984*u+0.2602*u.^(5/3)))*(180/pi)
Для значений аргумента u от 0 до 1 она дает угол y от 180° до 90°. График данной функции представлен на рисунке.
Прикрепленное изображение

Так как вычислят нужно в ПЛИС и быстро - хотим сделать таблицу значений. Но проблема в том, что точность результата должна быть в пределах 0,1°, а как видно из графика в начале функции маленькие значения аргумента вызывают значительное изменение результата. В реале это 1/(2^29) для начальных значений. Ессно лепить таблицу с таким количеством записей нерентабельно и ессно при больших значениях аргумента точность будет избыточной. С другой стороны можно было бы сделать обратную таблицу с 900 записями и 29 битами входного параметра. Но тогда нужно сравнивать аргумент с каждым значением, а это в худшем случае 900 итераций. А хотелось бы одну.

Я думаю есть более простые алгоритмы вычисления. Подскажите.


Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
_Ivana
сообщение Feb 5 2014, 20:38
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 352
Регистрация: 13-08-11
Из: Воронеж
Пользователь №: 66 710



Цитата(sifadin @ Feb 4 2014, 18:55) *
Вот если бы как-то просто вычислить u.(1/3), то...
Только надо как-то умудриться взять степень 1/3...

Вам писали выше про Ньютона. Берете х(0) = 1 (или любое другое приближение искомого корня), считаете х(к+1) = 2х(к)/3+ а/(3х(к)^2), все это сходится к кубическому корню из а. Например, при а = 64 и х(0) = 1 за 10 итераций получаем маскимальную точность для Экселя.
Go to the top of the page
 
+Quote Post
sifadin
сообщение Feb 6 2014, 00:16
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 443
Регистрация: 11-02-09
Пользователь №: 44 698



Цитата(_Ivana @ Feb 5 2014, 23:38) *
Вам писали выше про Ньютона.


Это не мне. Я не ТС.


Можно и так. Но тогда можно наверное и NIOS внедрить и посчитать.




Go to the top of the page
 
+Quote Post



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

 


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


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