By Alvin Alexander. Last updated: February 8, 2019
One of my nieces had a homework problem where she had to graph the x and y values of this cotangent equation:
y = 3 * cotangent(4 * x)
I couldn’t remember how to graph things like that just by looking at the equation, so I wrote this Scala “cotangent” program:
package cotangent
object CotangentProblem extends App {
 
    // create a simpler name for PI, then use it
    val PI = Math.PI
    val xValues = List(0, PI/16, PI/8, 3*PI/16, PI/4)
    // a cotangent function
    def cotan(x: Double) = 1 / Math.tan(x)
    // the equation we're supposed to solve and graph
    def yOfX(x: Double) = 3 * cotan(4 * x)
    // a method to print the results
    def printResult(x: Double, y: Double) { println(f"y($x%-6.4f) = $y%-6.4f") }
    // loop through the x values and print the results
    for (x <- xValues) {
        val y = yOfX(x)
        printResult(x, y)
    }
}
Cotangent output
Here’s what the output of the program looks like:
y(0.0000) = Infinity y(0.1963) = 3.0000 y(0.3927) = 0.0000 y(0.5890) = -3.0000 y(0.7854) = -24496859029793056.0000
My niece tells me that the values where x equals 0 and PI/4 are the asymptotes of this problem.
Comments
A few comments on the Scala code:
- A cotangent is just the inverse of the tangent.
- The Math.tanfunction expects the value it’s given to be expressed in radians (not degrees).
- The xValueswere given to her by her teacher.
- I could have printed the output differently, but I used Scala’s “f interpolator” to control the way the output was printed.
If for any reason you wanted to see how to calculate the cotangent of numbers in Scala, I hope this code is helpful.










