Java Math tanh()

The hyperbolic tangent is equivalent to (ex - e-x)/(ex + e-x), where e is Euler's number. Also tanh = sinh/cosh.

The syntax of the tanh() method is:

Math.tanh(double value)

Here, tanh() is a static method. Hence, we are accessing the method using the class name, Math.


tanh() Parameters

The tanh() method takes a single parameter.

  • value - angle whose hyperbolic tangent is to be determined

Note: The value is generally used in radians.


tanh() Return Values

  • returns the hyperbolic tangent of value
  • returns NaN if the argument value is NaN
  • returns 1.0 if the argument is positive infinity
  • returns -1.0 if the argument is negative infinity

Note: If the argument is zero, then the method returns zero with the same sign as the argument.


Example 1: Java Math tanh()

class Main {
  public static void main(String[] args) {

    // create a double variable
    double value1 = 45.0;
    double value2 = 60.0;
    double value3 = 30.0;

    // convert into radians
    value1 = Math.toRadians(value1);
    value2 = Math.toRadians(value2);
    value3 = Math.toRadians(value3);

    // compute the hyperbolic tangent
    System.out.println(Math.tanh(value1));  // 0.6557942026326724
    System.out.println(Math.tanh(value2));  // 0.7807144353592677
    System.out.println(Math.tanh(value3));  // 0.4804727781564516
  }
}

In the above example, notice the expression,

Math.tanh(value1)

Here, we have directly used the class name to call the method. It is because tanh() is a static method.

Note: We have used the Java Math.toRadians() method to convert all the values into radians.


Example 2: Compute tanh() Using sinh() and cosh()

class Main {
  public static void main(String[] args) {

    // create a double variable
    double value1 = 45.0;
    double value2 = 60.0;
    double value3 = 30.0;

    // convert into radians
    value1 = Math.toRadians(value1);
    value2 = Math.toRadians(value2);
    value3 = Math.toRadians(value3);

    // compute the hyperbolic tangent: sinh()/cosh()
    // returns 0.6557942026326724
    System.out.println(Math.sinh(value1)/Math.cosh(value1));

    // returns 0.7807144353592677
    System.out.println(Math.sinh(value2)/Math.cosh(value2));

    // returns 0.4804727781564516
    System.out.println(Math.sinh(value3)/Math.cosh(value3));
  }
}

In the above example, notice the expression,

Math.sinh(value1)/Math.cosh(value2)

Here, we are computing the hyperbolic tangent using sinh()/cosh() formula. As we can see the result of tanh() and sinh()/cosh() is same.


Example 2: tanh() With Zero, NaN and Infinite

class Main {
  public static void main(String[] args) {

    // create a double variable
    double value1 = Double.POSITIVE_INFINITY;
    double value2 = Double.NEGATIVE_INFINITY;
    double value3 = Math.sqrt(-5);
    double value4 = 0.0;

    // convert into radians
    value1 = Math.toRadians(value1);
    value2 = Math.toRadians(value2);
    value3 = Math.toRadians(value3);
    value4 = Math.toRadians(value4);

    // compute the hyperbolic tangent
    System.out.println(Math.tanh(value1));  // 1.0
    System.out.println(Math.tanh(value2));  // -1.0
    System.out.println(Math.tanh(value3));  // NaN
    System.out.println(Math.tanh(value4));  // 0.0
  }
}

In the above example,

  • Double.POSITIVE_INFINITY - implements positive infinity in Java
  • Double.NEGATIVE_INFINITY - implements negative infinity in Java
  • Math.sqrt(-5) - square root of a negative number is not a number

We have used the Java Math.sqrt() method to calculate the square root of a number.

Note: The tanh() method returns 1.0 for the positive infinity argument and -1.0 for the negative infinity argument.


Also Read:

Did you find this article helpful?

Your builder path starts here. Builders don't just know how to code, they create solutions that matter.

Escape tutorial hell and ship real projects.

Try Programiz PRO
  • Real-World Projects
  • On-Demand Learning
  • AI Mentor
  • Builder Community