Реклама на сайте DatasheetsDatasheets

KAZUS.RUN - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Книги и журналы
FAQ по электронике

  Datasheets
Поиск SMD
Онлайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Схемы и проекты
Принципиальные схемы
  Программы
Каталог сайтов
Калькуляторы
  Форумы по электронике
Помощь проекту

Делимся опытом Наступив на грабли - сообщи другим! Обмен опытом разработки и ремонта электронных устройств.

 
Опции темы

Новый метод расчёта arccos, cos, sin

Непрочитано 03.08.2013, 02:46  
val_ka
Вид на жительство
 
Регистрация: 15.07.2007
Адрес: Одесса
Сообщений: 425
Сказал спасибо: 71
Сказали Спасибо 125 раз(а) в 78 сообщении(ях)
val_ka на пути к лучшему
По умолчанию Re: Новый метод расчёта arccos, cos, sin.

Сообщение от ilyamp Посмотреть сообщение
Извините, не очень понял - а как корень то считать из этой формулы на МК?
Можно так, (только в двоичной форме):
Миниатюры:
Нажмите на изображение для увеличения
Название: p0077.png
Просмотров: 163
Размер:	288.9 Кб
ID:	50351   Нажмите на изображение для увеличения
Название: p0078.png
Просмотров: 169
Размер:	468.4 Кб
ID:	50352   Нажмите на изображение для увеличения
Название: p0079.png
Просмотров: 131
Размер:	84.0 Кб
ID:	50353  

__________________
И если б не было Одессы, шоб я делал?!
val_ka вне форума  
Непрочитано 03.08.2013, 10:26  
DmitriyVDN
Гражданин KAZUS.RUN
 
Регистрация: 10.06.2010
Сообщений: 598
Сказал спасибо: 224
Сказали Спасибо 235 раз(а) в 154 сообщении(ях)
DmitriyVDN на пути к лучшему
По умолчанию Re: Новый метод расчёта arccos, cos, sin.

Сообщение от val_ka Посмотреть сообщение
Можно так, (только в двоичной форме):
вы это серьезно это для МК
может так...:

Код:
k= number;
n=0;
sum=0;
 while (sum‹k)
{
  n++;
  sum=sum+((n‹‹1)-1);
 }   
result=n;
Миниатюры:
Нажмите на изображение для увеличения
Название: koren.jpg
Просмотров: 548
Размер:	7.5 Кб
ID:	50356  

Последний раз редактировалось DmitriyVDN; 03.08.2013 в 10:44.
DmitriyVDN вне форума  
Сказали "Спасибо" DmitriyVDN
ilyamp (03.08.2013)
Непрочитано 03.08.2013, 10:53  
eddy
Почётный гражданин KAZUS.RUN
 
Аватар для eddy
 
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,684
Сказал спасибо: 116
Сказали Спасибо 823 раз(а) в 597 сообщении(ях)
eddy на пути к лучшему
По умолчанию Re: Новый метод расчёта arccos, cos, sin

val_ka, даже кубическая интерполяция по таблицам будет быстрей! Да и точность будет намного выше. А с точностью в десятки минут вычислять арксинусы/арккосинусы, по-моему, бесполезно!
__________________
Если ты пользуешься Windows, то ты финансируешь мировой терроризм!
eddy вне форума  
Непрочитано 03.08.2013, 19:02  
ilyamp
Прописка
 
Регистрация: 29.08.2007
Адрес: Рязань
Сообщений: 203
Сказал спасибо: 54
Сказали Спасибо 19 раз(а) в 16 сообщении(ях)
ilyamp на пути к лучшему
По умолчанию Re: Новый метод расчёта arccos, cos, sin

Сообщение от DmitriyVDN Посмотреть сообщение
может так...:
Красиво, хотя небыстро, для k=70..90 тактов 300 получится...
Ща почти все МК умножают в один - два такта, может по Тейлору быстрее?
Сразу arccox(x)...? ))))
Да и флэш - не проблема - таблица 16бит с 10' дискретом на pi/2 займёт килобайт.
С интерполяцией - минуту можно получить
ilyamp вне форума  
Непрочитано 03.08.2013, 19:15  
val_ka
Вид на жительство
 
Регистрация: 15.07.2007
Адрес: Одесса
Сообщений: 425
Сказал спасибо: 71
Сказали Спасибо 125 раз(а) в 78 сообщении(ях)
val_ka на пути к лучшему
По умолчанию Re: Новый метод расчёта arccos, cos, sin

Сообщение от ilyamp Посмотреть сообщение
Красиво, хотя небыстро, для k=70..90 тактов 300 получится...
Ща почти все МК умножают в один - два такта, может по Тейлору быстрее?
Сразу arccox(x)...? ))))
Да и флэш - не проблема - таблица 16бит с 10' дискретом на pi/2 займёт килобайт.
С интерполяцией - минуту можно получить
Если на четыре, то да. Но это же не ВМ80.
Вообщем, у меня пока нет dll для pic16. Но уверен, что будет быстрее, при кварце 20 МГц.
ps: кубическая интерполяция не на много лучше. Формула Тейлора - это такое же приближение, как и всё остальное подобное.
Я просто предложил ещё одну приблизительную формулу.
(сам рассчитал, между прочим).
__________________
И если б не было Одессы, шоб я делал?!
val_ka вне форума  
Непрочитано 03.08.2013, 19:53  
eddy
Почётный гражданин KAZUS.RUN
 
Аватар для eddy
 
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,684
Сказал спасибо: 116
Сказали Спасибо 823 раз(а) в 597 сообщении(ях)
eddy на пути к лучшему
По умолчанию Re: Новый метод расчёта arccos, cos, sin

Сообщение от ilyamp Посмотреть сообщение
таблица 16бит
Слишком плохо. Минимум 32 бита (float), но все-таки, лучше 64 бита (double).
__________________
Если ты пользуешься Windows, то ты финансируешь мировой терроризм!
eddy вне форума  
Непрочитано 03.08.2013, 23:18  
ilyamp
Прописка
 
Регистрация: 29.08.2007
Адрес: Рязань
Сообщений: 203
Сказал спасибо: 54
Сказали Спасибо 19 раз(а) в 16 сообщении(ях)
ilyamp на пути к лучшему
По умолчанию Re: Новый метод расчёта arccos, cos, sin

Сообщение от eddy Посмотреть сообщение
Минимум 32 бита (float)
Вся проблема в точности - вблизи 1.
Там, кстати, arccos(x) плохо в ряд раскладывается и вычислять его непосредственно в МК(хоть по Тейлору, хоть по ф-ле ТС) - нерационально - очень низкая точность: arccos(1 - 0.0001) = 0.81 градуса.
Улучшить точность в районе 0,95..1 можно "перевернув" таблицу - искать арккосинус по таблице косинуса поиском. Только в этой зоне нужно 32 разряда, а от 0 до 0,95 - вполне хватит и 16
ilyamp вне форума  
Непрочитано 04.08.2013, 11:40  
MaslovVG
Частый гость
 
Регистрация: 21.02.2013
Адрес: Волгодонск
Сообщений: 30
Сказал спасибо: 0
Сказали Спасибо 6 раз(а) в 6 сообщении(ях)
MaslovVG на пути к лучшему
По умолчанию Re: Новый метод расчёта arccos, cos, sin

А если вспомнить тригонометрию Sin^2+Cos^2 =1.
MaslovVG вне форума  
Непрочитано 04.08.2013, 12:27  
eddy
Почётный гражданин KAZUS.RUN
 
Аватар для eddy
 
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,684
Сказал спасибо: 116
Сказали Спасибо 823 раз(а) в 597 сообщении(ях)
eddy на пути к лучшему
По умолчанию Re: Новый метод расчёта arccos, cos, sin

Сообщение от MaslovVG Посмотреть сообщение
А если вспомнить тригонометрию Sin^2+Cos^2 =1.
А корень вы считать как собираетесь?
__________________
Если ты пользуешься Windows, то ты финансируешь мировой терроризм!
eddy вне форума  
Непрочитано 04.08.2013, 14:34  
val_ka
Вид на жительство
 
Регистрация: 15.07.2007
Адрес: Одесса
Сообщений: 425
Сказал спасибо: 71
Сказали Спасибо 125 раз(а) в 78 сообщении(ях)
val_ka на пути к лучшему
По умолчанию Re: Новый метод расчёта arccos, cos, sin

Формулу же можно и преобразовать.

alpha^2= 1598,4cosx^2 - 9648cosx + 8049,6 ; (это для arccos(x)) ;
1598,4cosx^2 - 9648cosx + 8049,6 - alpha^2 = 0 ; (это для нахождения cos(x), один из корней после решения квадратного уравнения, при этом alpha какое-то чило ]0 ; 90[ );

Насчёт корня. У меня когда-то был относительно простой алгоритм, основанный на приведенных десятичных примерах. Я попробую его найти. Хотя было два переезда. Посмотрю.
__________________
И если б не было Одессы, шоб я делал?!

Последний раз редактировалось val_ka; 04.08.2013 в 14:36.
val_ka вне форума  
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 19:30.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.