| f(z) | Complex Numbers and Functions | Tech Note | ||
| Complex Trig Functions | ||||
This page shows how to compute several complex trigonometric functions, including cosine, sine, tangent, secant, cosecant, and cotangent.
![]()
CCos function
| //
z = cos(a) FUNCTION CCos (CONST a: TComplex): TComplex; VAR aTemp: TComplex; BEGIN // Abramowitz formula 4.3.56 on p. 74 aTemp := CConvert(a, cfRectangular); RESULT := CSet ( COS(aTemp.x)*COSH(aTemp.y), -SIN(aTemp.x)*SINH(aTemp.y)) END {CCos}; |
Examples
| Complex
cosine:
CCos = Cos(z) COS(z) COS(z) z rectangular polar ------------ ---------------------------- -------------------------------- 1 0.0 + 0.0i 1.000000000 + 0.000000000i 1.000000000 * CIS( 0.000000000) 2 0.5 + 0.5i 0.989584883 - 0.249826398i 1.020632877 * CIS( -0.247288622) 3 -0.5 + 0.5i 0.989584883 + 0.249826398i 1.020632877 * CIS( 0.247288622) 4 -0.5 - 0.5i 0.989584883 - 0.249826398i 1.020632877 * CIS( -0.247288622) 5 0.5 - 0.5i 0.989584883 + 0.249826398i 1.020632877 * CIS( 0.247288622) 6 1.0 + 0.0i 0.540302306 + 0.000000000i 0.540302306 * CIS( 0.000000000) 7 1.0 + 1.0i 0.833730025 - 0.988897706i 1.293454455 * CIS( -0.870327425) 8 0.0 + 1.0i 1.543080635 + 0.000000000i 1.543080635 * CIS( 0.000000000) 9 -1.0 + 1.0i 0.833730025 + 0.988897706i 1.293454455 * CIS( 0.870327425) 10 -1.0 + 0.0i 0.540302306 + 0.000000000i 0.540302306 * CIS( 0.000000000) 11 -1.0 - 1.0i 0.833730025 - 0.988897706i 1.293454455 * CIS( -0.870327425) 12 0.0 - 1.0i 1.543080635 + 0.000000000i 1.543080635 * CIS( 0.000000000) 13 1.0 - 1.0i 0.833730025 + 0.988897706i 1.293454455 * CIS( 0.870327425) 14 5.0 + 0.0i 0.283662185 + 0.000000000i 0.283662185 * CIS( 0.000000000) 15 5.0 + 3.0i 2.855815004 + 9.606383448i 10.021890156 * CIS( 1.281834004) 16 0.0 + 3.0i 10.067661996 + 0.000000000i 10.067661996 * CIS( 0.000000000) 17 -5.0 + 3.0i 2.855815004 - 9.606383448i 10.021890156 * CIS( -1.281834004) 18 -5.0 + 0.0i 0.283662185 + 0.000000000i 0.283662185 * CIS( 0.000000000) 19 -5.0 - 3.0i 2.855815004 + 9.606383448i 10.021890156 * CIS( 1.281834004) 20 0.0 - 3.0i 10.067661996 + 0.000000000i 10.067661996 * CIS( 0.000000000) 21 -5.0 - 3.0i 2.855815004 + 9.606383448i 10.021890156 * CIS( 1.281834004) |
![]()
CSin function
| //
z = sin(a) FUNCTION CSin (CONST a: TComplex): TComplex; VAR aTemp: TComplex; BEGIN // Abramowitz formula 4.3.55 on p. 74 aTemp := CConvert(a, cfRectangular); RESULT := CSet(SIN(aTemp.x)*COSH(aTemp.y), COS(aTemp.x)*SINH(aTemp.y)) END {CSin}; |
The table below, in addition to showing the complex sine function, also shows the results of the computation, cos2(z) + sin2(z), which is from the mathematical identity cos2(z) + sin2(z) = 1.
Examples
| Complex
sine: CSin
= Sin(z) SIN(z) COS^2(z) + SIN^2(z) = 1 z rectangular rectangular ------------ ---------------------------- --------------------------- 1 0.0 + 0.0i 0.000000000 + 0.000000000i 1.000000000 + 0.000000000i 2 0.5 + 0.5i 0.540612686 + 0.457304153i 1.000000000 + 0.000000000i 3 -0.5 + 0.5i -0.540612686 + 0.457304153i 1.000000000 + 0.000000000i 4 -0.5 - 0.5i -0.540612686 - 0.457304153i 1.000000000 + 0.000000000i 5 0.5 - 0.5i 0.540612686 - 0.457304153i 1.000000000 + 0.000000000i 6 1.0 + 0.0i 0.841470985 + 0.000000000i 1.000000000 + 0.000000000i 7 1.0 + 1.0i 1.298457581 + 0.634963915i 1.000000000 + 0.000000000i 8 0.0 + 1.0i 0.000000000 + 1.175201194i 1.000000000 + 0.000000000i 9 -1.0 + 1.0i -1.298457581 + 0.634963915i 1.000000000 + 0.000000000i 10 -1.0 + 0.0i -0.841470985 + 0.000000000i 1.000000000 + 0.000000000i 11 -1.0 - 1.0i -1.298457581 - 0.634963915i 1.000000000 + 0.000000000i 12 0.0 - 1.0i 0.000000000 - 1.175201194i 1.000000000 + 0.000000000i 13 1.0 - 1.0i 1.298457581 - 0.634963915i 1.000000000 + 0.000000000i 14 5.0 + 0.0i -0.958924275 + 0.000000000i 1.000000000 + 0.000000000i 15 5.0 + 3.0i -9.654125477 + 2.841692296i 1.000000000 + 0.000000000i 16 0.0 + 3.0i 0.000000000 + 10.017874927i 1.000000000 + 0.000000000i 17 -5.0 + 3.0i 9.654125477 + 2.841692296i 1.000000000 + 0.000000000i 18 -5.0 + 0.0i 0.958924275 + 0.000000000i 1.000000000 + 0.000000000i 19 -5.0 - 3.0i 9.654125477 - 2.841692296i 1.000000000 + 0.000000000i 20 0.0 - 3.0i 0.000000000 - 10.017874927i 1.000000000 + 0.000000000i 21 -5.0 - 3.0i 9.654125477 - 2.841692296i 1.000000000 + 0.000000000i |
![]()
CTan function
| //
z = tan(a) FUNCTION CTan (CONST a: TComplex): TComplex; VAR aTemp: TComplex; rTemp: TReal; BEGIN // Abramowitz formula 4.3.57 on p. 74 aTemp := CConvert(a, cfRectangular); rTemp := COS(2.0*aTemp.x) + COSH(2.0*aTemp.y); TRY RESULT := CSet(SIN(2.0*aTemp.x) /rTemp, SINH(2.0*aTemp.y)/rTemp) EXCEPT ON EZeroDivide DO // x/0 RESULT := CSet(Infinity, Infinity); ON EComplexInvalidOp DO // 0/0 RESULT := CSet(Infinity, Infinity) END END {CTan}; |
The table below show the computation of tan(z) directly and via calculation as sin(z)/cos(z).
Examples
|
Complex tangent:
CTan = Tan(z) = Sin(z)/Cos(z) |
![]()
CSec function
| //
z = sec(a) FUNCTION CSec (CONST a: TComplex): TComplex; VAR temp: TComplex; BEGIN {Abramowitz formula 4.3.5 on p. 72} temp := CCos(a); TRY RESULT := CDiv(ComplexOne, temp) EXCEPT ON EComplexZeroDivide DO // x/0 RESULT := CSet(Infinity, Infinity); ON EComplexInvalidOp DO // 0/0 RESULT := CSet(Infinity, Infinity) END END {CSec}; |
The table below, in addition to showing the complex secant function, also shows the results of the mathematical identity sec2(z) - tan2(z) = 1. [This identity is just another version of the more-recognized identity, cos2(z) + sin2(z) = 1. Dividing all the terms in this identity by cos2(z), and rearranging the terms, results in the identity used below.]
Examples
| Complex
secant:
CSec = Sec(z) SEC(z) SEC^2(z) - TAN^2(z) = 1 z rectangular rectangular ------------ ---------------------------- --------------------------- 1 0.0 + 0.0i 1.000000000 + 0.000000000i 1.000000000 + 0.000000000i 2 0.5 + 0.5i 0.949978868 + 0.239827631i 1.000000000 + 0.000000000i 3 -0.5 + 0.5i 0.949978868 - 0.239827631i 1.000000000 + 0.000000000i 4 -0.5 - 0.5i 0.949978868 + 0.239827631i 1.000000000 + 0.000000000i 5 0.5 - 0.5i 0.949978868 - 0.239827631i 1.000000000 + 0.000000000i 6 1.0 + 0.0i 1.850815718 + 0.000000000i 1.000000000 + 0.000000000i 7 1.0 + 1.0i 0.498337031 + 0.591083842i 1.000000000 + 0.000000000i 8 0.0 + 1.0i 0.648054274 + 0.000000000i 1.000000000 + 0.000000000i 9 -1.0 + 1.0i 0.498337031 - 0.591083842i 1.000000000 + 0.000000000i 10 -1.0 + 0.0i 1.850815718 + 0.000000000i 1.000000000 + 0.000000000i 11 -1.0 - 1.0i 0.498337031 + 0.591083842i 1.000000000 + 0.000000000i 12 0.0 - 1.0i 0.648054274 + 0.000000000i 1.000000000 + 0.000000000i 13 1.0 - 1.0i 0.498337031 - 0.591083842i 1.000000000 + 0.000000000i 14 5.0 + 0.0i 3.525320086 + 0.000000000i 1.000000000 + 0.000000000i 15 5.0 + 3.0i 0.028433531 - 0.095644641i 1.000000000 + 0.000000000i 16 0.0 + 3.0i 0.099327927 + 0.000000000i 1.000000000 + 0.000000000i 17 -5.0 + 3.0i 0.028433531 + 0.095644641i 1.000000000 + 0.000000000i 18 -5.0 + 0.0i 3.525320086 + 0.000000000i 1.000000000 + 0.000000000i 19 -5.0 - 3.0i 0.028433531 - 0.095644641i 1.000000000 + 0.000000000i 20 0.0 - 3.0i 0.099327927 + 0.000000000i 1.000000000 + 0.000000000i 21 -5.0 - 3.0i 0.028433531 - 0.095644641i 1.000000000 + 0.000000000i |
![]()
CCsc function
| //
z = csc(a) FUNCTION CCsc (CONST a: TComplex): TComplex; VAR temp: TComplex; BEGIN // Abramowitz formula 4.3.4 on p. 72 temp := CSin(a); TRY RESULT := CDiv(ComplexOne, temp) EXCEPT ON EComplexZeroDivide DO // x/0 RESULT := CSet(Infinity, Infinity); ON EComplexInvalidOp DO // 0/0 RESULT := CSet(Infinity, Infinity) END END {CCsc}; |
The table below, in addition to showing the complex cosecant function, also shows the results of the mathematical identity csc2(z) - cot2(z) = 1. [This identity is just another version of the more-recognized identity, cos2(z) + sin2(z) = 1. Dividing all the terms in this identity by sin2(z), and rearranging the terms, results in the identity used below.]
Examples
| Complex
cosecant:
CCsc = Csc(z) CSC(z) CSC^2(z) - COT^2(z) = 1 z rectangular rectangular ------------ ---------------------------- --------------------------- 1 0.0 + 0.0i INF + INFi 2 0.5 + 0.5i 1.078229695 - 0.912074264i 1.000000000 + 0.000000000i 3 -0.5 + 0.5i -1.078229695 - 0.912074264i 1.000000000 + 0.000000000i 4 -0.5 - 0.5i -1.078229695 + 0.912074264i 1.000000000 + 0.000000000i 5 0.5 - 0.5i 1.078229695 + 0.912074264i 1.000000000 + 0.000000000i 6 1.0 + 0.0i 1.188395106 + 0.000000000i 1.000000000 + 0.000000000i 7 1.0 + 1.0i 0.621518017 - 0.303931002i 1.000000000 + 0.000000000i 8 0.0 + 1.0i 0.000000000 - 0.850918128i 1.000000000 + 0.000000000i 9 -1.0 + 1.0i -0.621518017 - 0.303931002i 1.000000000 + 0.000000000i 10 -1.0 + 0.0i -1.188395106 + 0.000000000i 1.000000000 + 0.000000000i 11 -1.0 - 1.0i -0.621518017 + 0.303931002i 1.000000000 + 0.000000000i 12 0.0 - 1.0i 0.000000000 + 0.850918128i 1.000000000 + 0.000000000i 13 1.0 - 1.0i 0.621518017 + 0.303931002i 1.000000000 + 0.000000000i 14 5.0 + 0.0i -1.042835213 + 0.000000000i 1.000000000 + 0.000000000i 15 5.0 + 3.0i -0.095323635 - 0.028058516i 1.000000000 + 0.000000000i 16 0.0 + 3.0i 0.000000000 - 0.099821570i 1.000000000 + 0.000000000i 17 -5.0 + 3.0i 0.095323635 - 0.028058516i 1.000000000 + 0.000000000i 18 -5.0 + 0.0i 1.042835213 + 0.000000000i 1.000000000 + 0.000000000i 19 -5.0 - 3.0i 0.095323635 + 0.028058516i 1.000000000 + 0.000000000i 20 0.0 - 3.0i 0.000000000 + 0.099821570i 1.000000000 + 0.000000000i 21 -5.0 - 3.0i 0.095323635 + 0.028058516i 1.000000000 + 0.000000000i |
![]()
CCot function
| //
z = cot(a) FUNCTION CCot (CONST a: TComplex): TComplex; VAR aTemp: TComplex; Temp: TReal; BEGIN // Abramowitz formula 4.3.58 on p. 74 aTemp := CConvert (a,cfRectangular); Temp := COSH(2.0*aTemp.y) - COS(2.0*aTemp.x); TRY RESULT := CSet( SIN(2.0*aTemp.x)/temp, -SINH(2.0*aTemp.y)/temp) EXCEPT ON EZeroDivide DO // x/0 RESULT := CSet(Infinity, Infinity); ON EInvalidOp DO // 0/0 RESULT := CSet(Infinity, Infinity) END END {CCot}; |
The table below shows the computation of cot(z) directly and via calculation as cos(z)/sin(z).
Examples
| Complex
cotangent:
CCot = Cot(z) = Cos(z)/Sin(z) COT(z) COS(z) / SIN(z) z rectangular rectangular ------------ ---------------------------- --------------------------- 1 0.0 + 0.0i INF + INFi INF + INFi 2 0.5 + 0.5i 0.839139579 - 1.171945145i 0.839139579 - 1.171945145i 3 -0.5 + 0.5i -0.839139579 - 1.171945145i -0.839139579 - 1.171945145i 4 -0.5 - 0.5i -0.839139579 + 1.171945145i -0.839139579 + 1.171945145i 5 0.5 - 0.5i 0.839139579 + 1.171945145i 0.839139579 + 1.171945145i 6 1.0 + 0.0i 0.642092616 + 0.000000000i 0.642092616 + 0.000000000i 7 1.0 + 1.0i 0.217621562 - 0.868014143i 0.217621562 - 0.868014143i 8 0.0 + 1.0i 0.000000000 - 1.313035285i 0.000000000 - 1.313035285i 9 -1.0 + 1.0i -0.217621562 - 0.868014143i -0.217621562 - 0.868014143i 10 -1.0 + 0.0i -0.642092616 + 0.000000000i -0.642092616 + 0.000000000i 11 -1.0 - 1.0i -0.217621562 + 0.868014143i -0.217621562 + 0.868014143i 12 0.0 - 1.0i 0.000000000 + 1.313035285i 0.000000000 + 1.313035285i 13 1.0 - 1.0i 0.217621562 + 0.868014143i 0.217621562 + 0.868014143i 14 5.0 + 0.0i -0.295812916 + 0.000000000i -0.295812916 + 0.000000000i 15 5.0 + 3.0i -0.002685798 - 0.995845319i -0.002685798 - 0.995845319i 16 0.0 + 3.0i 0.000000000 - 1.004969823i 0.000000000 - 1.004969823i 17 -5.0 + 3.0i 0.002685798 - 0.995845319i 0.002685798 - 0.995845319i 18 -5.0 + 0.0i 0.295812916 + 0.000000000i 0.295812916 + 0.000000000i 19 -5.0 - 3.0i 0.002685798 + 0.995845319i 0.002685798 + 0.995845319i 20 0.0 - 3.0i 0.000000000 + 1.004969823i 0.000000000 + 1.004969823i 21 -5.0 - 3.0i 0.002685798 + 0.995845319i 0.002685798 + 0.995845319i |
Updated 18 Feb 2002
since 24 June 2001