Re: Помогите написать прогу
От: Кодт Россия  
Дата: 12.10.07 10:58
Оценка: 12 (3) +1
Здравствуйте, ilya-b-80, Вы писали:

Вообще же, в символьном виде
f(a,b) = (sin(a+b)-cosa*sinb)/(cos(a-b)-sina*sinb)

sx === sin x
cx === cos x

s(a+b) = sa*cb + ca*sb
c(a-b) = ca*cb + sa*sb

s(a+b)-ca*sb = sa*cb + ca*sb - ca*sb = sa*cb
c(a-b)-sa*sb = ca*cb + sa*sb - sa*sb = ca*cb

f(a,b) = (sa*cb)/(ca*cb)

Отсюда видно, что f(a,b) = tg a, но область определения не содержит точки, где cos b == 0 (т.е. b = (k+0.5)*П).

Поэтому эффективное вычисление этой функции сводится к вычислению тангенса средствами математической библиотеки языка.
Лобовое же решение — даст стремительный рост погрешности, особенно, когда b близко к особым точкам.
... << RSDN@Home 1.2.0 alpha rev. 655>>
Перекуём баги на фичи!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.