C# Program to Find the Value of Sin(x)
Sin(x) is also known as Sine. It is a trigonometric function of an angle. In a right-angled triangle, the ratio of the length of the perpendicular to the length of the hypotenuse is known as the sine of an angle.
sin θ = perpendicular / hypotenuse
The values of sine of some of the common angles are given below,
- sin 0° = 0
- sin 30° = 1 / 2
- sin 45° = 1 / √2
- sin 60° = √3 / 2
- sin 90° = 1
This article focuses upon how we can calculate the sine of an angle by in C#.
Method 1
We can calculate the sine of an angle by using the inbuilt sin() method. This method is defined under the Math class and is a part of the system namespace. Math class is quite useful as it provides constants and some of the static methods for trigonometric, logarithmic, etc.
Syntax:
public static double Sin (double angle);
Parameter:
- angle: A double value (angle in radian)
Return type:
- double: If “angle” is double
- NaN: If “angle” is equal to NaN, NegativeInfinity, or PositiveInfinity
Example 1:
C#
// C# program to illustrate how we can // calculate the value of sin(x) // using Sin() method using System.IO; using System; class GFG{ static void Main() { // Angle in degree double angleInDegree1 = 0; // Converting angle in radian // since Math.sin() method accepts // angle in radian double angleInRadian1 = (angleInDegree1 * (Math.PI)) / 180; // Using Math.Sin() method to calculate value of sine Console.WriteLine( "The value of sin({0}) = {1} " , angleInDegree1, Math.Sin(angleInRadian1)); // Angle in degree double angleInDegree2 = 45; // Converting angle in radian // since Math.sin() method accepts // angle in radian double angleInRadian2 = (angleInDegree2 * (Math.PI)) / 180; // Using Math.Sin() method to calculate value of sine Console.WriteLine( "The value of sin({0}) = {1} " , angleInDegree2, Math.Sin(angleInRadian2)); // Angle in degree double angleInDegree3 = 90; // Converting angle in radian // since Math.sin() method accepts // angle in radian double angleInRadian3 = (angleInDegree3 * (Math.PI)) / 180; // Using Math.Sin() method to calculate value of sine Console.WriteLine( "The value of sin({0}) = {1} " , angleInDegree3, Math.Sin(angleInRadian3)); // Angle in degree double angleInDegree4 = 135; // Converting angle in radian // since Math.sin() method accepts // angle in radian double angleInRadian4 = (angleInDegree4 * (Math.PI)) / 180; // Using Math.Sin() method to calculate value of sine Console.WriteLine( "The value of sin({0}) = {1} " , angleInDegree4, Math.Sin(angleInRadian4)); } } |
The value of sin(0) = 0 The value of sin(45) = 0.707106781186547 The value of sin(90) = 1 The value of sin(135) = 0.707106781186548
Example 2:
C#
// C# program to illustrate how we can // calculate the value of sin(x) // using Sin() method using System; class GFG{ static public void Main() { // Angle in radian double angle1 = Double.NegativeInfinity; // Angle in radian double angle2 = Double.PositiveInfinity; // Angle in radian double angle3 = Double.NaN; // Using Math.Sin() method to calculate value of sine Console.WriteLine( "The value of sin({0}) = {1} " , angle1, Math.Sin(angle1)); // Using Math.Sin() method to calculate value of sine Console.WriteLine( "The value of sin({0}) = {1} " , angle2, Math.Sin(angle2)); // Using Math.Sin() method to calculate value of sine Console.WriteLine( "The value of sin({0}) = {1} " , angle3, Math.Sin(angle3)); } } |
Output
Sine of angle1: NaN Sine of angle2: NaN Sine of angle3: NaN
Time complexity: O(n), where n is the number of terms calculated for the Maclaurin’s series approximation of sin(x).
Space complexity: O(1).
Method 2
We can calculate the value of sine of an angle using Maclaurin expansion. So the Maclaurin series expansion for sin(x) is:
sin(x) = x - x3 / 3! + x5 / 5! - x7 / 7! + ....
Follow the steps given below to find the value of sin(x):
- Initialize a variable angleInDegree that stores the angle (in degree) to be calculated.
- Initialize another variable terms that stores the number of terms for which we can approximate the value of sin(x).
- Declare a global function findSinx.
- Declare a variable current. It stores the angle in radians.
- Initialize a variable answer with current. It will store our final answer.
- Initialize another variable temp with current.
- Iterate from i = 1 to i = terms. At each step update temp as temp as ((-temp) * current * current) / ((2 * i) * (2 * i + 1)) and answer as answer + temp.
- Eventually, return the answer from findSinX function.
- Print the answer.
This formula can compute the value of sine for all real values of x.
Example:
C#
// C# program to illustrate how we can // calculate the value of sin(x) // using Maclaurin's method using System; class GFG{ static double findSinX( int angleInDegree, int terms) { // Converting angle in degree into radian double current = Math.PI * angleInDegree / 180f; // Declaring variable to calculate final answer double answer = current; double temp = current; // Loop till number of steps provided by the user for ( int i = 1; i <= terms; i++) { // Updating temp and answer accordingly temp = ((-temp) * current * current) / ((2 * i) * (2 * i + 1)); answer = answer + temp; } // Return the final answer return answer; } // Driver code static public void Main() { // Angle in degree int angleInDegree1 = 45; // Number of steps int terms1 = 10; // Calling function to calculate sine of angle double answer1 = findSinX(angleInDegree1, terms1); // Print the final answer Console.WriteLine( "The value of sin({0}) = {1}" , angleInDegree1, answer1); // Angle in degree int angleInDegree2 = 90; // Number of steps int terms2 = 20; // Calling function to calculate sine of angle double result2 = findSinX(angleInDegree2, terms2); // Print the final answer Console.WriteLine( "The value of sin({0}) = {1}" , angleInDegree2, result2); // Angle in degree int angleInDegree3 = 135; // Number of steps int terms3 = 30; // Calling function to calculate sine of angle double result3 = findSinX(angleInDegree3, terms3); // Print the final answer Console.WriteLine( "The value of sin({0}) = {1}" , angleInDegree3, result3); // Angle in degree int angleInDegree4 = 180; // Number of steps int terms4 = 40; // Calling function to calculate sine of angle double result4 = findSinX(angleInDegree4, terms4); // Print the final answer Console.WriteLine( "The value of sin({0}) = {1}" , angleInDegree4, result4); } } |
The value of sin(45) = 0.707106781186547 The value of sin(90) = 1 The value of sin(135) = 0.707106781186548 The value of sin(180) = 2.34898825287367E-16
Time complexity: O(n). //n is the number of terms passed as input.
Space complexity: O(1).
Please Login to comment...