Paul Ngugi

Posted on

# Common Mathematical Functions

Java provides many useful methods in the Math class for performing common mathematical functions. A method is a group of statements that performs a specific task. You have already used the pow(a, b) method to compute a^b, Exponent Operations and the random() method for generating a random number. This section introduces other useful methods in the Math class. They can be categorized as trigonometric methods, exponent methods, and service methods. Service methods include the rounding, min, max, absolute, and random methods. In addition to methods, the Math class provides two useful double constants, PI and E (the base of natural logarithms). You can use these constants as Math.PI and Math.E in any program.

## Trigonometric Methods

The Math class contains the following methods as shown below for performing trigonometric functions:

The parameter for sin, cos, and tan is an angle in radians. The return value for asin, acos, and atan is a degree in radians in the range between -pie/2 and pie/2. One degree is equal to pie/180 in radians, 90 degrees is equal to pie/2 in radians, and 30 degrees is equal to p/6 in radians.
For example,

``````Math.toDegrees(Math.PI / 2) returns 90.0
Math.toRadians(30) returns 0.5236 (same as π/6)
Math.sin(0) returns 0.0
Math.sin(Math.PI / 6) returns 0.5
Math.sin(Math.PI / 2) returns 1.0
Math.cos(0) returns 1.0
Math.cos(Math.PI / 6) returns 0.866
Math.cos(Math.PI / 2) returns 0
Math.asin(0.5) returns 0.523598333 (same as π/6)
Math.acos(0.5) returns 1.0472 (same as π/3)
Math.atan(1.0) returns 0.785398 (same as π/4)
``````

## Exponent Methods

There are five methods related to exponents in the Math class as shown below:

For example,

``````Math.exp(1) returns 2.71828
Math.log(Math.E) returns 1.0
Math.log10(10) returns 1.0
Math.pow(2, 3) returns 8.0
Math.pow(3, 2) returns 9.0
Math.pow(4.5, 2.5) returns 22.91765
Math.sqrt(4) returns 2.0
Math.sqrt(10.5) returns 4.24
``````

## The Rounding Methods

The Math class contains five rounding methods as shown below:

For example,

``````Math.ceil(2.1) returns 3.0
Math.ceil(2.0) returns 2.0
Math.ceil(-2.0) returns -2.0
Math.ceil(-2.1) returns -2.0
Math.floor(2.1) returns 2.0
Math.floor(2.0) returns 2.0
Math.floor(-2.0) returns –2.0
Math.floor(-2.1) returns -3.0
Math.rint(2.1) returns 2.0
Math.rint(-2.0) returns –2.0
Math.rint(-2.1) returns -2.0
Math.rint(2.5) returns 2.0
Math.rint(4.5) returns 4.0
Math.rint(-2.5) returns -2.0
Math.round(2.6f) returns 3 // Returns int
Math.round(2.0) returns 2 // Returns long
Math.round(-2.0f) returns -2 // Returns int
Math.round(-2.6) returns -3 // Returns long
Math.round(-2.4) returns -2 // Returns long
``````

## The min, max, and abs Methods

The min and max methods return the minimum and maximum numbers of two numbers (int, long, float, or double). For example, max(4.4, 5.0) returns 5.0, and min(3, 2) returns 2.

The abs method returns the absolute value of the number (int, long, float, or double).
For example,

``````Math.max(2, 3) returns 3
Math.max(2.5, 3) returns 4.0
Math.min(2.5, 4.6) returns 2.5
Math.abs(-2) returns 2
Math.abs(-2.1) returns 2.1
``````

## The random Method

This method generates a random double value greater than or equal to 0.0 and less than 1.0 (0 <= Math.random() < 1.0). You can use it to write a simple expression to generate random numbers in any range.
For example,

``````(int)(Math.random() * 10) // Returns a random integer
between 0 and 9.
50 + (int)(Math.random() * 50) // Returns a random integer between 50 and 99
``````

In general,

``````a + Math.random() * b // Returns a random number between a and a + b, excluding a + b.
``````

## Case Study: Computing Angles of a Triangle

You can use the math methods to solve many computational problems. Given the three sides of a triangle, for example, you can compute the angles by using the following formula:

Don’t be intimidated by the mathematic formula. You don’t have to know how the mathematical formula is derived in order to write a program for computing this. Here in this example, given the length of three sides, you can use this formula to write a program to compute the angles without having to know how the formula is derived. In order to compute the lengths of the sides, we need to
know the coordinates of three corner points and compute the distances between the points.
Below is a program that prompts the user to enter the x- and y-coordinates of the three corner points in a triangle and then displays the three angles.

Note that the distance between two points (x1, y1) and (x2, y2) can be computed using the formula sqrt of ((x2 - x1)^2 + (y2 - y1)^2). The program computes the distances between two points (lines 19–21), and applies the formula to compute the angles (lines 24–26). The angles are rounded to display up to two digits after the decimal point (lines 29).

The Math class is used in the program, but not imported, because it is in the java. lang package. All the classes in the java.lang package are implicitly imported in a Java program.