Open In App

C# Program to Find the Value of Sin(x)

Last Updated : 20 Feb, 2023
Improve
Improve
Like Article
Like
Save
Share
Report

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,

  1. sin 0°  = 0
  2. sin 30° = 1 / 2
  3. sin 45° = 1 / √2
  4. sin 60° = √3 / 2
  5. 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));
}
}


Output

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):

  1. Initialize a variable angleInDegree that stores the angle (in degree) to be calculated.
  2. Initialize another variable terms that stores the number of terms for which we can approximate the value of sin(x).
  3. Declare a global function findSinx.
  4. Declare a variable current. It stores the angle in radians.
  5. Initialize a variable answer with current. It will store our final answer.
  6. Initialize another variable temp with current.
  7. 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.
  8. Eventually, return the answer from findSinX function.
  9. 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);
}
}


Output

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).



Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads