Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: вопрос по тригонометрии
Форум разработчиков электроники ELECTRONIX.ru > Cистемный уровень проектирования > Математика и Физика
RHnd
Известны два числа x1=sin(a+b), x2=tg(b). Надо найти y=sin(a).
Делать это придется в реальном времени, так что хочется быстрое и не сильно ресурсоемкое решение.

PS: Вариант в лоб a=arcsin(x1)-arctg(x2); y=sin(a) - пытаюсь сообразить, там никаких затыков с областью определения не будет?
_Pasha
Цитата(RHnd @ Feb 3 2011, 22:35) *
Известны два числа x1=sin(a+cool.gif, x2=tg(cool.gif. Надо найти y=sin(a).
Делать это придется в реальном времени, так что хочется быстрое и не сильно ресурсоемкое решение.

Что может быть проще cordic в работе?
scifi
Делаем подстановку: a = sin a, b = cos a, c = sin b, d = cos b. Тогда исходные данные можно представить как 2 уравнения: x = a*d + c*b, y = c/d. Дополним эту систему уравнений с 4 неизвестными до 4х уравнений: a^2 + b^2 = 1, c^2 + d^2 = 1 (всем ясно, откуда они взялись). Теперь решим эту систему уравнений при помощи Wolfram Alpha:
Решение
Наслаждаемся результатом. Хотя результат, конечно, выглядит не очень симпатично.
Миша Т
Цитата(RHnd @ Feb 3 2011, 22:35) *
Известны два числа x1=sin(a+cool.gif, x2=tg(cool.gif. Надо найти y=sin(a).

А что известно про a и b --- у задачи, вообще говоря, несколько решений (если b от $-pi/2$ до $pi/2$, то два)?
_Pasha
Цитата(scifi @ Feb 4 2011, 13:42) *
Хотя результат, конечно, выглядит не очень симпатично.

Нормально выглядит, предварительно вычислив sqrt(Y^2+1)
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.