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.tan
function expects the value it’s given to be expressed in radians (not degrees). - The
xValues
were 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.