2010-05-15 10 views

Respuesta

20

Necesitas derivarlos a sí mismo usando las funciones existentes, por ejemplo, Math.sin

Usted puede encontrar esto útil:

Secant Sec(X) = 1/Cos(X) 
Cosecant Cosec(X) = 1/Sin(X) 
Cotangent Cotan(X) = 1/Tan(X) 
Inverse Sine Arcsin(X) = Atn(X/Sqr(-X * X + 1)) 
Inverse Cosine Arccos(X) = Atn(-X/Sqr(-X * X + 1)) + 2 * Atn(1) 
Inverse Secant Arcsec(X) = 2 * Atn(1) - Atn(Sgn(X)/Sqr(X * X - 1)) 
Inverse Cosecant Arccosec(X) = Atn(Sgn(X)/Sqr(X * X - 1)) 
Inverse Cotangent Arccotan(X) = 2 * Atn(1) - Atn(X) 
Hyperbolic Sine HSin(X) = (Exp(X) - Exp(-X))/2 
Hyperbolic Cosine HCos(X) = (Exp(X) + Exp(-X))/2 
Hyperbolic Tangent HTan(X) = (Exp(X) - Exp(-X))/(Exp(X) + Exp(-X)) 
Hyperbolic Secant HSec(X) = 2/(Exp(X) + Exp(-X)) 
Hyperbolic Cosecant HCosec(X) = 2/(Exp(X) - Exp(-X)) 
Hyperbolic Cotangent HCotan(X) = (Exp(X) + Exp(-X))/(Exp(X) - Exp(-X)) 
Inverse Hyperbolic Sine HArcsin(X) = Log(X + Sqr(X * X + 1)) 
Inverse Hyperbolic Cosine HArccos(X) = Log(X + Sqr(X * X - 1)) 
Inverse Hyperbolic Tangent HArctan(X) = Log((1 + X)/(1 - X))/2 
Inverse Hyperbolic Secant HArcsec(X) = Log((Sqr(-X * X + 1) + 1)/X) 
Inverse Hyperbolic Cosecant HArccosec(X) = Log((Sgn(X) * Sqr(X * X + 1) + 1)/X) 
Inverse Hyperbolic Cotangent HArccotan(X) = Log((X + 1)/(X - 1))/2 
Logarithm to base N LogN(X) = Log(X)/Log(N) 
+1

Solo quería agregar: 'asec (x) = acos (1/x), acsc (x) = asin (1/x), acot (x) = atan (1/x)' – SepehrM

8

Debe definirlos usted mismo.

http://en.wikipedia.org/wiki/Hyperbolic_function#Inverse_functions_as_logarithms

-1  1 1 + x 
tanh x = — ln ————— 
      2 1 - x 

    -1    _______ 
sinh x = ln (x + √ x² + 1) 

    -1    _______ 
cosh x = ln (x + √ x² - 1) 
+1

Tenga en cuenta que el logaritmo natural también es ninguna función en la clase de matemáticas estándar, sin embargo, el logaritmo en general es. Puede usar el logaritmo general con base _e_ (que es una constante en la clase de matemática). Lo cual es, por supuesto, exactamente la definición del logaritmo natural. Solo una nota en aras de la exhaustividad @KennyTM +1 para Math-art :) – Henri

+2

@Henri: 'Math.Log' * es * el logaritmo natural ... – kennytm

+0

Tienes razón, era demasiado rápido:) De hecho, la sobrecarga predeterminada de Math.Log, que solo requiere un doble, es el registro natural. – Henri

9

Para fórmulas de NET-ify David Relihan:

public static class MathHelper 
{ 
    // Secant 
    public static double Sec(double x) 
    { 
     return 1/Math.Cos(x); 
    } 

    // Cosecant 
    public static double Cosec(double x) 
    { 
     return 1/Math.Sin(x); 
    } 

    // Cotangent 
    public static double Cotan(double x) 
    { 
     return 1/Math.Tan(x); 
    } 

    // Inverse Sine 
    public static double Arcsin(double x) 
    { 
     return Math.Atan(x/Math.Sqrt(-x * x + 1)); 
    } 

    // Inverse Cosine 
    public static double Arccos(double x) 
    { 
     return Math.Atan(-x/Math.Sqrt(-x * x + 1)) + 2 * Math.Atan(1); 
    } 


    // Inverse Secant 
    public static double Arcsec(double x) 
    { 
     return 2 * Math.Atan(1) - Math.Atan(Math.Sign(x)/Math.Sqrt(x * x - 1)); 
    } 

    // Inverse Cosecant 
    public static double Arccosec(double x) 
    { 
     return Math.Atan(Math.Sign(x)/Math.Sqrt(x * x - 1)); 
    } 

    // Inverse Cotangent 
    public static double Arccotan(double x) 
    { 
     return 2 * Math.Atan(1) - Math.Atan(x); 
    } 

    // Hyperbolic Sine 
    public static double HSin(double x) 
    { 
     return (Math.Exp(x) - Math.Exp(-x))/2 ; 
    } 

    // Hyperbolic Cosine 
    public static double HCos(double x) 
    { 
     return (Math.Exp(x) + Math.Exp(-x))/2 ; 
    } 

    // Hyperbolic Tangent 
    public static double HTan(double x) 
    { 
     return (Math.Exp(x) - Math.Exp(-x))/(Math.Exp(x) + Math.Exp(-x)); 
    } 

    // Hyperbolic Secant 
    public static double HSec(double x) 
    { 
     return 2/(Math.Exp(x) + Math.Exp(-x)); 
    } 

    // Hyperbolic Cosecant 
    public static double HCosec(double x) 
    { 
     return 2/(Math.Exp(x) - Math.Exp(-x)); 
    } 

    // Hyperbolic Cotangent 
    public static double HCotan(double x) 
    { 
     return (Math.Exp(x) + Math.Exp(-x))/(Math.Exp(x) - Math.Exp(-x)); 
    } 

    // Inverse Hyperbolic Sine 
    public static double HArcsin(double x) 
    { 
     return Math.Log(x + Math.Sqrt(x * x + 1)) ; 
    } 

    // Inverse Hyperbolic Cosine 
    public static double HArccos(double x) 
    { 
     return Math.Log(x + Math.Sqrt(x * x - 1)); 
    } 

    // Inverse Hyperbolic Tangent 
    public static double HArctan(double x) 
    { 
     return Math.Log((1 + x)/(1 - x))/2 ; 
    } 

    // Inverse Hyperbolic Secant 
    public static double HArcsec(double x) 
    { 
     return Math.Log((Math.Sqrt(-x * x + 1) + 1)/x); 
    } 

    // Inverse Hyperbolic Cosecant 
    public static double HArccosec(double x) 
    { 
     return Math.Log((Math.Sign(x) * Math.Sqrt(x * x + 1) + 1)/x) ; 
    } 

    // Inverse Hyperbolic Cotangent 
    public static double HArccotan(double x) 
    { 
     return Math.Log((x + 1)/(x - 1))/2; 
    } 

    // Logarithm to base N 
    public static double LogN(double x, double n) 
    { 
     return Math.Log(x)/Math.Log(n); 
    } 
} 
0

También hay fórmula más rápida para tanh la computación, que requieren sólo una exp (), porque tanh se relaciona con función logística:

tanh (x) = 2/(1 + exp (-2 * x)) - 1
también
tanh (x) = 1 - 2/(1 + exp (2 * x))

Ver: http://en.wikipedia.org/wiki/Logistic_function