Делимся опытом Наступив на грабли - сообщи другим! Обмен опытом разработки и ремонта электронных устройств. |
03.08.2013, 02:46
|
|
Вид на жительство
Регистрация: 15.07.2007
Адрес: Одесса
Сообщений: 434
Сказал спасибо: 71
Сказали Спасибо 125 раз(а) в 78 сообщении(ях)
|
Re: Новый метод расчёта arccos, cos, sin.
Сообщение от ilyamp
|
Извините, не очень понял - а как корень то считать из этой формулы на МК?
|
Можно так, (только в двоичной форме):
__________________
И если б не было Одессы, шоб я делал?!
|
|
|
|
03.08.2013, 10:26
|
|
Гражданин KAZUS.RU
Регистрация: 10.06.2010
Сообщений: 598
Сказал спасибо: 222
Сказали Спасибо 234 раз(а) в 154 сообщении(ях)
|
Re: Новый метод расчёта arccos, cos, sin.
Сообщение от val_ka
|
Можно так, (только в двоичной форме):
|
вы это серьезно ![Голова кругом](images/smilies/icon_rolleyes.gif) это для МК ![Вопрос](images/smilies/icon_question.gif) ![Бьюсь об стену](images/smilies/icon_obstenu.gif)
может так...:
Код:
|
k= number;
n=0;
sum=0;
while (sum‹k)
{
n++;
sum=sum+((n‹‹1)-1);
}
result=n; |
Последний раз редактировалось DmitriyVDN; 03.08.2013 в 10:44.
|
|
|
Сказали "Спасибо" DmitriyVDN
|
|
|
03.08.2013, 10:53
|
|
Почётный гражданин KAZUS.RU
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,627
Сказал спасибо: 115
Сказали Спасибо 814 раз(а) в 591 сообщении(ях)
|
Re: Новый метод расчёта arccos, cos, sin
val_ka, даже кубическая интерполяция по таблицам будет быстрей! Да и точность будет намного выше. А с точностью в десятки минут вычислять арксинусы/арккосинусы, по-моему, бесполезно!
__________________
Союз Советских Социалистических Округов Северной Америки
|
|
|
|
03.08.2013, 19:02
|
|
Прописка
Регистрация: 29.08.2007
Адрес: Рязань
Сообщений: 203
Сказал спасибо: 54
Сказали Спасибо 19 раз(а) в 16 сообщении(ях)
|
Re: Новый метод расчёта arccos, cos, sin
Сообщение от DmitriyVDN
|
может так...:
|
Красиво, хотя небыстро, для k=70..90 тактов 300 получится...
Ща почти все МК умножают в один - два такта, может по Тейлору быстрее?
Сразу arccox(x)...? ))))
Да и флэш - не проблема - таблица 16бит с 10' дискретом на pi/2 займёт килобайт.
С интерполяцией - минуту можно получить
|
|
|
|
03.08.2013, 19:15
|
|
Вид на жительство
Регистрация: 15.07.2007
Адрес: Одесса
Сообщений: 434
Сказал спасибо: 71
Сказали Спасибо 125 раз(а) в 78 сообщении(ях)
|
Re: Новый метод расчёта arccos, cos, sin
Сообщение от ilyamp
|
Красиво, хотя небыстро, для k=70..90 тактов 300 получится...
Ща почти все МК умножают в один - два такта, может по Тейлору быстрее?
Сразу arccox(x)...? ))))
Да и флэш - не проблема - таблица 16бит с 10' дискретом на pi/2 займёт килобайт.
С интерполяцией - минуту можно получить
|
Если на четыре, то да. Но это же не ВМ80.
Вообщем, у меня пока нет dll для pic16. Но уверен, что будет быстрее, при кварце 20 МГц.
ps: кубическая интерполяция не на много лучше. Формула Тейлора - это такое же приближение, как и всё остальное подобное.
Я просто предложил ещё одну приблизительную формулу.
(сам рассчитал, между прочим).
__________________
И если б не было Одессы, шоб я делал?!
|
|
|
|
03.08.2013, 19:53
|
|
Почётный гражданин KAZUS.RU
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,627
Сказал спасибо: 115
Сказали Спасибо 814 раз(а) в 591 сообщении(ях)
|
Re: Новый метод расчёта arccos, cos, sin
Сообщение от ilyamp
|
таблица 16бит
|
Слишком плохо. Минимум 32 бита (float), но все-таки, лучше 64 бита (double).
__________________
Союз Советских Социалистических Округов Северной Америки
|
|
|
|
03.08.2013, 23:18
|
|
Прописка
Регистрация: 29.08.2007
Адрес: Рязань
Сообщений: 203
Сказал спасибо: 54
Сказали Спасибо 19 раз(а) в 16 сообщении(ях)
|
Re: Новый метод расчёта arccos, cos, sin
Сообщение от eddy
|
Минимум 32 бита (float)
|
Вся проблема в точности - вблизи 1.
Там, кстати, arccos(x) плохо в ряд раскладывается и вычислять его непосредственно в МК(хоть по Тейлору, хоть по ф-ле ТС) - нерационально - очень низкая точность: arccos(1 - 0.0001) = 0.81 градуса.
Улучшить точность в районе 0,95..1 можно "перевернув" таблицу - искать арккосинус по таблице косинуса поиском. Только в этой зоне нужно 32 разряда, а от 0 до 0,95 - вполне хватит и 16
|
|
|
|
04.08.2013, 11:40
|
|
Частый гость
Регистрация: 21.02.2013
Адрес: Волгодонск
Сообщений: 30
Сказал спасибо: 0
Сказали Спасибо 6 раз(а) в 6 сообщении(ях)
|
Re: Новый метод расчёта arccos, cos, sin
А если вспомнить тригонометрию Sin^2+Cos^2 =1.
|
|
|
|
04.08.2013, 12:27
|
|
Почётный гражданин KAZUS.RU
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,627
Сказал спасибо: 115
Сказали Спасибо 814 раз(а) в 591 сообщении(ях)
|
Re: Новый метод расчёта arccos, cos, sin
Сообщение от MaslovVG
|
А если вспомнить тригонометрию Sin^2+Cos^2 =1.
|
А корень вы считать как собираетесь?
__________________
Союз Советских Социалистических Округов Северной Америки
|
|
|
|
04.08.2013, 14:34
|
|
Вид на жительство
Регистрация: 15.07.2007
Адрес: Одесса
Сообщений: 434
Сказал спасибо: 71
Сказали Спасибо 125 раз(а) в 78 сообщении(ях)
|
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.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 05:03.
|
|