2010-05-15 12 views
7

मैं सी # में tanh -1 की गणना करनी है
(और सिंह -1 और सोंटा-1)सी # गणित वर्ग सवाल

मैं इसे गणित पुस्तकालय में .. नहीं मिला था कोई सुझाव?

संपादित करें: तन नहीं टैन !!

उत्तर

20

आप उन्हें अपने आप को जैसे प्राप्त करने के लिए मौजूदा कार्यों का उपयोग कर की जरूरत है गणित.पाप

आप मिल सकती है इस उपयोगी:

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

बस जोड़ना चाहता था: 'asec (x) = acos (1/x), एसीएससी (x) = asin (1/x), एकोट (x) = atan (1/x)' – SepehrM

8

आपको उन्हें स्वयं परिभाषित करने की आवश्यकता है।

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

ध्यान दें कि प्राकृतिक लघुगणक भी मानक गणित वर्ग में कोई समारोह है, तथापि, सामान्य लघुगणक है। आप बेस _e_ के साथ सामान्य लॉगरिदम का उपयोग कर सकते हैं (जो गणित वर्ग में स्थिर है)। जो निश्चित रूप से प्राकृतिक लघुगणक की परिभाषा है। पूर्णता मैथ-कला के लिए @ केनीटीएम +1 के लिए सिर्फ एक नोट :) – Henri

+2

@ हेनरी: 'Math.Log' * * प्राकृतिक लॉगरिदम है ... – kennytm

+0

आप सही हैं, मैं बहुत तेज़ था:) वास्तव में Math.Log का डिफ़ॉल्ट अधिभार जो केवल एक डबल लेता है प्राकृतिक लॉग है। – Henri

9
नेट-ify डेविड 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

वहाँ भी, कंप्यूटिंग tanh के लिए तेजी से सूत्र है केवल एक exp की आवश्यकता होती है (), क्योंकि tanh रसद समारोह से संबंधित है:

tanh (x) = 2/(1 + exp (-2 * x)) - 1 भी
+०१२३८००७३१tanh (x) = 1 - 2/(1 + exp (2 * x))

देखें: http://en.wikipedia.org/wiki/Logistic_function

संबंधित मुद्दे