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