2010-09-17 10 views
17

¿Hay una aplicación más estable para la función cotangente de retorno 1.0/tan (x) ;?cotangente Estable

+0

Asumo que eres un problema con 1/bronceado es que su indefinido en pi/2 cuando la función debe devolver cero? Haciendo – MerickOWA

+0

la inversión es poco fiable cuando está cerca de pi/2 sí ... Me preguntaba si había una mejor manera de hacer esto. –

Respuesta

36

cot(x) = cos(x)/sin(x) debería ser más numéricamente estable cerca de π/2 que cot(x) = 1/tan(x). Puede implementarlo de manera eficiente utilizando sincos en plataformas que lo tengan.

Otra posibilidad es cot(x) = tan(M_PI_2 - x). Esto debería ser más rápido que el anterior (incluso si está disponible sincos), pero también puede ser menos preciso, porque M_PI_2 es, por supuesto, solo una aproximación del número trascendental π/2, por lo que la diferencia M_PI_2 - x no será precisa al máximo ancho de una mantisa double - de hecho, si tiene mala suerte, puede tener solo algunas partes significativas.

+0

Ok. Creo que esto es lo mejor que puedo hacer. También aprendí sobre sincos, ¡que debo admitir que nunca antes había visto! –

+2

Acabo de recordar una identidad trigonométrica que te permite hacer mucho mejor y edité mi respuesta. – zwol

+4

+1. Definitivamente use tan (pi/2 - x). –

Cuestiones relacionadas