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

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

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

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

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

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

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

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

Решил запостить эту тему здесь, т.к. соответствующего раздела нет (или не нашёл), и думаю, что она больше подходит, всё же для программных расчётов.
Дело в том, что два года назад 17 апреля 2011, я вывел новую формулу. Она позволяет довольно сносно рассчитать угол прямоугольного треугольника, без таблиц Брадиса, формул Тейлора, и т.п..
Я опубликовал фотку на форуме nkj.ru в разделе "Полигон". Отзывы от математиков, были: трое были "за" - только просил один увеличить точность до 8-й степени, один сначала против, потом воздержался .
Сегодня хотел дать ссылку, на эту тему, но оказалось, что старого форума нет, а новом форуме нет старого.

осталось только это:
http://www.nkj.ru/search/?q=%ED%EE%E...0&where=&how=r

И больше ничего. Привожу оставшийся текст на всякий случай.
Цитата:
Новый метод нахождения острого угла прямоугольного треугольника.

Автор: Валентин Конон. Здравствуйте. Может метод и не новый, но я его разработал вчера. Хочу сказать, что в нескольких ... ... из-за одного задания и обстоятельств, вычислить угол Альфа любого прямоугольного треугольника, имея только катет и гипотенузу, без таблиц Брадиса,... ... формулу. Т.к. не смог её доказать, то привожу весь ход моего расчёта на прилагаемой фотографии. Формула достаточно проста, и ... ... гипотенуза. точность в радиан: самая грубая +\- 0,0048 точность угла: самая грубая +\- 0,2628 градуса. (это когда подкоренное ...
Изменен: 20.04.2011
Путь: НАУКА И ЖИЗНЬ / Форум журнала «НАУКА И ЖИЗНЬ»
Могу добавить, что "самая высокая точность" e-5. (такую точность можно оставить на всех углах от 0 до 90, если подобрать - exel это очень просто - третье слагаемое для каждых 10, например градусов и менять их по условию).
Собственно, фотка, которую сделал только что ещё раз, и выкладываю чуть ниже.
По сути - это alpha=arccos(x);
Если решить квадратное уравнение, то один из корней - это будет cos(alpha)=x. (возведёте обе части в квадрат и решите).
Думаю, что формула позволит выполнять вычисления углов, даже на pic16f84 и им подобных.
(формулу гонял в exel - вроде всё неплохо). Также она хороша тем, что позволяет непосредственно считать в абсолютных величинах, и применять на практике с достаточной точностью).
(Для египтологов скажу, что эта формула даже показывает, что египтяне могли и не знать числа pi - оно, как видите, сокращается до удобоваримого варианта формулы).
Ссылка на тот адрес на nkj.ru была также дана на форуме hatcha (по ассемблеру), в ответе на вопрос (кого-то) - Знает ли кто-то формулу полегче (побыстрее) из-за слабого микроконтроллера в проекте для заказчика.
Думаю, что они уже пользуются во всю, хотя бы в игрушках на микроконтроллерах, или роботах. (скорость обработки и соответственно реагирования, повышается на несколько порядков).
Хотя формула позволяет себя реализовать даже на аналоговых элементах.

Вообщем, вот фотка вывода формулы. Заметки, к сожалению, я писал на английском, но ведь математика и так понятна, я думаю. (Если кому-то пригодится - буду рад).
Миниатюры:
Нажмите на изображение для увеличения
Название: GEDC0279.JPG
Просмотров: 522
Размер:	344.0 Кб
ID:	50328  
__________________
И если б не было Одессы, шоб я делал?!
val_ka вне форума  
Сказали "Спасибо" val_ka
lsa (02.08.2013)
Непрочитано 02.08.2013, 09:15   #2
eddy
Почётный гражданин KAZUS.RU
 
Аватар для eddy
 
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,628
Сказал спасибо: 115
Сказали Спасибо 813 раз(а) в 590 сообщении(ях)
eddy на пути к лучшему
По умолчанию Re: Новый метод расчёта arccos, cos, sin.

Так у вас там просто первые 2-3 члена разложения в ряд Тейлора используются что ли?
__________________
Союз Советских Социалистических Округов Северной Америки
eddy вне форума  
Непрочитано 02.08.2013, 09:21   #3
val_ka
Вид на жительство
 
Регистрация: 15.07.2007
Адрес: Одесса
Сообщений: 434
Сказал спасибо: 71
Сказали Спасибо 125 раз(а) в 78 сообщении(ях)
val_ka на пути к лучшему
По умолчанию Re: Новый метод расчёта arccos, cos, sin.

там нет "тейлора" вообще.
Там корень. И начало вывода из геометрии.

ps: один из математиков (на "науке и жизнь") тоже так сначала сказал, но потом "всмотрелся по внимательнее".
__________________
И если б не было Одессы, шоб я делал?!

Последний раз редактировалось val_ka; 02.08.2013 в 09:24. Причина: ps:
val_ka вне форума  
Непрочитано 02.08.2013, 09:27   #4
eddy
Почётный гражданин KAZUS.RU
 
Аватар для eddy
 
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,628
Сказал спасибо: 115
Сказали Спасибо 813 раз(а) в 590 сообщении(ях)
eddy на пути к лучшему
По умолчанию Re: Новый метод расчёта arccos, cos, sin.

val_ka, батенька, точность у вас жутчайшая. Для проверки накатал быстренько в octave:

arc.m:
Код:
function d = arc(k, h)
	Cos = k./h;
	d = 120.*sqrt((0.559-0.111.*Cos).*(1-Cos));
endfunction
проверяем:
Код:
H=1;                % гипотенуза
K=[0:0.01:1];       % набор катетов
App=arc(K,H);       % примерный арккосинус
Rea=acos(K)*180/pi; % настоящий арккосинус
D = Rea-App;        % разность
plot(D);            % график, если надо - выложу, но вы и сами повторить в силах
std(D)              % среднеквадратичное отклонение

ans =  0.15108

max(abs(D))         % предельное абсолютное отклонение

ans =  0.28044
Т.е. предельная ошибка составляет почти 17'!!!
Такое грубое приближение годится лишь для указания угла наклона дороги на знаках!

// в общем, вы бы сначала точно все проверили, чтобы очередным Петриком не прослыть.
__________________
Союз Советских Социалистических Округов Северной Америки

Последний раз редактировалось eddy; 02.08.2013 в 09:32.
eddy вне форума  
Непрочитано 02.08.2013, 09:51   #5
val_ka
Вид на жительство
 
Регистрация: 15.07.2007
Адрес: Одесса
Сообщений: 434
Сказал спасибо: 71
Сказали Спасибо 125 раз(а) в 78 сообщении(ях)
val_ka на пути к лучшему
По умолчанию Re: Новый метод расчёта arccos, cos, sin.

Проверьте сами (прежде чем быстренько). У меня всё точно. (вы ошиблись в своей быстренькой программе).
Лучше проверьте в exel.
Прекратите переходы на личность. Мы не на базаре. (так, рекомендация).

ps: точность такая, как было заявлено раньше. (тем более, что для повышения точности, надо создать табличку с третьим слагаемым, в зависимости от группы углов).
__________________
И если б не было Одессы, шоб я делал?!

Последний раз редактировалось val_ka; 02.08.2013 в 10:01.
val_ka вне форума  
Непрочитано 02.08.2013, 10:00   #6
pambaru
Почётный гражданин KAZUS.RU
 
Регистрация: 24.03.2007
Сообщений: 1,352
Сказал спасибо: 85
Сказали Спасибо 610 раз(а) в 369 сообщении(ях)
pambaru на пути к лучшему
По умолчанию Re: Новый метод расчёта arccos, cos, sin.

Сообщение от eddy Посмотреть сообщение
Т.е. предельная ошибка составляет почти 17'!!!
Такое грубое приближение годится лишь для указания угла наклона дороги на знаках!
// в общем, вы бы сначала точно все проверили, чтобы очередным Петриком не прослыть.
Ну так автор и написал: +\- 0,2628 градуса.
Какие могут быть претензии? Кому хватит этой точности, будут использовать.
pambaru вне форума  
Непрочитано 02.08.2013, 10:19   #7
val_ka
Вид на жительство
 
Регистрация: 15.07.2007
Адрес: Одесса
Сообщений: 434
Сказал спасибо: 71
Сказали Спасибо 125 раз(а) в 78 сообщении(ях)
val_ka на пути к лучшему
По умолчанию Re: Новый метод расчёта arccos, cos, sin.

Сообщение от pambaru Посмотреть сообщение
Ну так автор и написал: +\- 0,2628 градуса.
Какие могут быть претензии? Кому хватит этой точности, будут использовать.
Максимальная точность при расчётах близких к 30 градусам e-5
Минимальная при близких к 60: +/- 0,2628

Если менять третье слагаемое, в зависимости от угла, с интервалом в 10 градусов (или пять), то получится гораздо большая точность во всём диапазоне от 0 до 90. (десятые или точнее).
При этом таблица для третьего слагаемого (общий случай 0,559) будет состоять из девяти, или 18 чисел, соответственно.
__________________
И если б не было Одессы, шоб я делал?!

Последний раз редактировалось val_ka; 02.08.2013 в 10:22.
val_ka вне форума  
Непрочитано 02.08.2013, 10:34   #8
eddy
Почётный гражданин KAZUS.RU
 
Аватар для eddy
 
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,628
Сказал спасибо: 115
Сказали Спасибо 813 раз(а) в 590 сообщении(ях)
eddy на пути к лучшему
По умолчанию Re: Новый метод расчёта arccos, cos, sin.

Сообщение от val_ka Посмотреть сообщение
вы ошиблись в своей быстренькой программе
Где?
Сообщение от val_ka Посмотреть сообщение
Лучше проверьте в exel
Ага, проверять формулу на точность в "охфисной" программке. Ну и затейник вы, батенька!
Сообщение от pambaru Посмотреть сообщение
Ну так автор и написал: +\- 0,2628 градуса.
Черт, а я и не обратил на это внимания. В глаза попалось E-5.
Сообщение от val_ka Посмотреть сообщение
Максимальная точность при расчётах близких к 30 градусам e-5
Ага, при линейной интерполяции по таблицам Брадиса точность еще выше…

Но для МК сойдет, согласен: проще разбить интервал 0..1 на десяток-другой подынтервалов и задать на каждом простенькую квадратичную интерполяцию, нежели табулировать Брадиса.
Кстати, еще вариант: затабулировать штук 100 значений и вычислять арккосинус и арксинус интерполяцией B-сплайнами. Это легко и быстро. И точность выше будет.
__________________
Союз Советских Социалистических Округов Северной Америки
eddy вне форума  
Непрочитано 02.08.2013, 11:11   #9
pambaru
Почётный гражданин KAZUS.RU
 
Регистрация: 24.03.2007
Сообщений: 1,352
Сказал спасибо: 85
Сказали Спасибо 610 раз(а) в 369 сообщении(ях)
pambaru на пути к лучшему
По умолчанию Re: Новый метод расчёта arccos, cos, sin.

Налобал наскоряк программку, тестирование в заданном диапазоне с шагом 0.01 градус.
Максимум получилось 0.2792 градуса
Вложения:
Тип файла: rar testarc.rar (165.2 Кб, 62 просмотров)
pambaru вне форума  
Непрочитано 02.08.2013, 11:15   #10
eddy
Почётный гражданин KAZUS.RU
 
Аватар для eddy
 
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,628
Сказал спасибо: 115
Сказали Спасибо 813 раз(а) в 590 сообщении(ях)
eddy на пути к лучшему
По умолчанию Re: Новый метод расчёта arccos, cos, sin.

pambaru, а чего бинарник-то выкладываете? Выкладывайте исходники, каждый сам себе соберет. Это проще, чем пытаться ваш вендовый бинарник запустить (да и мало ли: вдруг там вирье какое…).

Вот, кстати, обещанный график погрешностей.
Миниатюры:
Нажмите на изображение для увеличения
Название: diff.png
Просмотров: 163
Размер:	18.2 Кб
ID:	50334  
__________________
Союз Советских Социалистических Округов Северной Америки

Последний раз редактировалось eddy; 02.08.2013 в 11:22.
eddy вне форума  
Закрытая тема

Закладки


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

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

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


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


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot