ArcCos[z]
gives the arc cosine
of the complex number
.
ArcCos
ArcCos[z]
gives the arc cosine
of the complex number
.
Details
- Mathematical function, suitable for both symbolic and numerical manipulation.
- All results are given in radians.
- For real
between
and
, the results are always in the range
to
. - For certain special arguments, ArcCos automatically evaluates to exact values.
- ArcCos can be evaluated to arbitrary numerical precision.
- ArcCos automatically threads over lists.
- ArcCos[z] has branch cut discontinuities in the complex
plane running from
to
and
to
. - ArcCos can be used with Interval and CenteredInterval objects. »
Background & Context
- ArcCos is the inverse cosine function. For a real number
, ArcCos[x] represents the radian angle measure
such that
. - ArcCos automatically threads over lists. For certain special arguments, ArcCos automatically evaluates to exact values. When given exact numeric expressions as arguments, ArcCos may be evaluated to arbitrary numeric precision. Operations useful for manipulation of symbolic expressions involving ArcCos include FunctionExpand, TrigToExp, TrigExpand, Simplify, and FullSimplify.
- ArcCos is defined for complex argument
via
. ArcCos[z] has branch cut discontinuities in the complex
plane. - Related mathematical functions include Cos, ArcSin, and ArcCosh.
Examples
open all close allBasic Examples (6)
ArcCos[0]Divide by Degree to get results in degrees:
ArcCos[0] / Degree//FullSimplifyPlot over a subset of the reals:
Plot[ArcCos[x], {x, -1, 1}]Plot over a subset of the complexes:
ComplexPlot3D[ArcCos[z], {z, -4 - 2I, 4 + 2I}, PlotLegends -> Automatic]Series[ArcCos[x], {x, 0, 10}]Asymptotic expansion at Infinity:
Series[ArcCos[x], {x, ∞, 5}]Asymptotic expansion at a singular point:
Series[ArcCos[x], {x, 1, 3}, Assumptions -> x > 1]//SimplifyScope (41)
Numerical Evaluation (6)
ArcCos[0.4]ArcCos[1.5]N[ArcCos[1 / 3], 50]The precision of the output tracks the precision of the input:
ArcCos[0.33333333333333333333333333333333333333333]Evaluate for complex arguments:
ArcCos[2.5 + I]Evaluate ArcCos efficiently at high precision:
ArcCos[0.4`500]//TimingArcCos[0.4`100000];//TimingCompute worst-case guaranteed intervals using Interval and CenteredInterval objects:
ArcCos[Interval[{1 / 3, 1 / 2}]]ArcCos[CenteredInterval[1 / 2, 1 / 100]]ArcCos[CenteredInterval[2 + 3I, (1 + I) / 100]]Or compute average-case statistical intervals using Around:
ArcCos[Around[.9, 0.1]]Compute the elementwise values of an array:
ArcCos[{{1, 1 / Sqrt[2]}, {0, 1 / Sqrt[2]}}]Or compute the matrix ArcCos function using MatrixFunction:
MatrixFunction[ArcCos[#]&, {{1, 1 / Sqrt[2]}, {0, 1 / Sqrt[2]}}]Specific Values (4)
Values of ArcCos at fixed points:
Table[ArcCos[(n /2)], {n, -2, 2}]ArcCos[Infinity]ArcCos[ComplexInfinity]Zero of ArcCos:
ArcCos[1]Find the value of
satisfying equation
:
f[x_] := ArcCos[x] - (π/3);sol = Solve[f[x] == 0, x]xzero = x /. First[sol]Plot[f[x], {x, -1, 1}, Epilog -> Style[Point[{xzero, f[xzero]}], PointSize[Large], Red]]Visualization (3)
Plot the ArcCos function:
Plot[ArcCos[x], {x, -1, 1}]ComplexContourPlot[Re[ArcCos[z]], {z, -3 - 3I, 3 + 3I}, IconizedObject[«PlotOptions»]]ComplexContourPlot[Im[ArcCos[z]], {z, -3 - 3I, 3 + 3I}, IconizedObject[«PlotOptions»]]Table[PolarPlot[ArcCos[k ϕ], {ϕ, -π, π}, Sequence[Frame -> True, Exclusions -> None, PlotLabel -> "k=" <> ToString[k], PlotRange -> All]], {k, 1, 4}]Function Properties (10)
ArcCos is defined for all real values from the interval
:
FunctionDomain[ArcCos[x], x]Complex domain is the whole plane:
FunctionDomain[ArcCos[z], z, Complexes]ArcCos achieves all real values from the interval
:
FunctionRange[ArcCos[x], x, y]Function range for arguments from the complex domain:
FunctionRange[ArcCos[z], z, y, Complexes]ArcCos is not an analytic function:
FunctionAnalytic[ArcCos[x], x]FunctionMeromorphic[ArcCos[x], x]ArcCos is neither non-decreasing nor non-increasing:
FunctionMonotonicity[ArcCos[x], x]It is monotonic over its real domain:
FunctionMonotonicity[{ArcCos[x], -1 ≤ x ≤ 1}, x]ArcCos is injective:
FunctionInjective[ArcCos[x], x]Plot[{ArcCos[x], 1 / 2}, {x, -2π, 2π}]ArcCos is not surjective:
FunctionSurjective[ArcCos[x], x]Plot[{ArcCos[x], 3.5}, {x, -2π, 2π}]ArcCos is non-negative over its real domain:
FunctionSign[{ArcCos[x], -1 ≤ x ≤ 1}, x]ArcCos has both singularity and discontinuity in (-∞,-1] and [1,∞):
FunctionSingularities[ArcCos[x], x]FunctionDiscontinuities[ArcCos[x], x]ArcCos is neither convex nor concave:
FunctionConvexity[ArcCos[x], x]TraditionalForm formatting:
ArcCos[x]//TraditionalFormDifferentiation (3)
D[ArcCos[x], x]Table[D[ArcCos[x], {x, n}], {n, 1, 4}]Plot[Evaluate[%], {x, -1, 1}, PlotLegends -> {"First Derivative", "Second Derivative", "Third Derivative", "Fourth Derivative"}]D[ArcCos[x], {x, n}]Integration (3)
Series Expansions (4)
Find the Taylor expansion using Series:
Series[ArcCos[x], {x, 0, 7}]Plot the first three approximations for ArcCos around
:
terms = Normal@Table[Series[ArcCos[x], {x, 0, m}], {m, 1, 5, 2}];
Plot[{ArcCos[x], terms}, {x, -1, 1}, PlotRange -> {{-1, 1}, All}]General term in the series expansion of ArcCos:
SeriesCoefficient[ArcCos[x], {x, 0, n}]Find the series expansion at branch points and branch cuts:
Series[ArcCos[x], {x, 1, 1}]Series[ArcCos[x], {x, -2, 1}]ArcCos can be applied to power series:
ArcCos[x + (x^2/2) + (x^3/3) + O[x]^4]Function Identities and Simplifications (3)
Simplify expressions involving ArcCos:
FullSimplify[ArcCos[Sqrt[1 - x^2]], 0 ≤ x ≤ 1]Use TrigToExp to express through logarithms and square roots:
TrigToExp@ArcCos[z]ExpToTrig[%]//FullSimplifyExpand assuming real variables
and
:
ComplexExpand[ArcCos[x + I y]]Function Representations (5)
Represent using ArcSec:
ArcSec[1 / x]//FullSimplifyRepresentation through inverse Jacobi functions:
InverseJacobiCN[z, 0]InverseJacobiDC[(1/z), 0]//FullSimplifyRepresent using Hypergeometric2F1:
z Hypergeometric2F1[1 / 2, 1 / 2, 3 / 2, z ^ 2]Representation in terms of MeijerG:
(π/2) - x / 2 / Sqrt[π]MeijerG[{{(1/2), (1/2)}, {}}, {{0}, {-(1/2)}}, -x^2]//FullSimplifyArcCos can be represented as a DifferentialRoot:
DifferentialRootReduce[ArcCos[x], x]Applications (5)
Plot the real and imaginary part of ArcCos:
Plot[{Re[ArcCos[x]], Im[ArcCos[x]]}, {x, -2, 2}, PlotStyle -> Thick]Plot the Riemann surface of ArcCos:
ParametricPlot3D[Evaluate[{Re[Cos[u + I v]], Im[Cos[u + I v]], u}], {u, 0, 4π}, {v, -2, 2}]Find the angle between two vectors:
ArcCos[Normalize[{1, 1}].Normalize[{-1, 1}]]Graphics[{Arrow[{{0, 0}, {1, 1}}], Arrow[{{0, 0}, {-1, 1}}]}, PlotRange -> All]Solve a differential equation:
DSolve[(b + a x) y[x] + (-1 + 2 x) Derivative[1][y][x] + 2 (-1 + x) x Derivative[2][y][x] == 0, y[x], x]3D version of a phyllotaxis pattern:
Graphics3D[Sphere[Table[FromSphericalCoordinates[N@{1, ArcCos[1 - i / 1000], Mod[i GoldenAngle, 2Pi, -Pi]}], {i, 1, 1000}], .04]]Properties & Relations (9)
Compose with the inverse function:
{Cos[ArcCos[z]], ArcCos[Cos[z]]}Use PowerExpand to disregard multivaluedness of the ArcCos:
PowerExpand[%]Alternatively, evaluate under additional assumptions:
Refine[ArcCos[Cos[z]], 0 < z < Pi / 2]Use TrigToExp to express ArcCos through logarithms and square roots:
ArcCos[z]//TrigToExpThis shows the branch cuts of the ArcCos function:
Plot3D[Im[ArcCos[x - I y]], {x, -2, 2}, {y, -2, 2}]ArcCos gives the angle in radians, while ArcCosDegrees gives the same angle in degrees:
ArcCos[1 / 2]ArcCosDegrees[1 / 2]Expand assuming real variables:
ComplexExpand[ArcCos[x + I y]]Solve an inverse trigonometric equation:
Reduce[ArcCos[z]^3 + 3 ArcCos[z] == 2, z]Reduce[ArcCos[Cos[z]] == w, z]Reduce[ArcCos[α x + β] == 0, x]LaplaceTransform[ArcCos[t], t, s]ArcCos is automatically returned as a special case for various mathematical functions:
InverseJacobiCD[z, 0]Possible Issues (4)
ArcCos[Cos[30.]]Cos[ArcCos[30.]]On branch cuts, machine-precision inputs can give numerically wrong answers:
ArcCos[-2 + I((Pi + 1) ^ 2 - Pi ^ 2 - 2Pi - 1 - Exp[-Pi ^ 4])]//NArcCos[-2 + I((Pi + 1) ^ 2 - Pi ^ 2 - 2Pi - 1 - Exp[-Pi ^ 4])]//N[#, 20]&The precision of the output can be much less than the precision of the input:
ArcCos[0.99999999999999999999999999999999999991]In traditional form, parentheses are needed around the argument:
cos^-1xcos^-1(x)Neat Examples (2)
NestList[Integrate[#, x]&, ArcCos[x], 4]This shows the branch cuts of the ArcCos power function:
Plot3D[Im[ArcCos[(x + I y) ^ 3]], {x, -2, 2}, {y, -2, 2}, ...]See Also
Cos ArcSin ArcCosDegrees ArcCosh Degree VectorAngle TrigToExp TrigExpand
Function Repository: ArcCosDegree
Tech Notes
Related Guides
Related Links
History
Introduced in 1988 (1.0) | Updated in 2021 (13.0)
Text
Wolfram Research (1988), ArcCos, Wolfram Language function, https://reference.wolfram.com/language/ref/ArcCos.html (updated 2021).
CMS
Wolfram Language. 1988. "ArcCos." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2021. https://reference.wolfram.com/language/ref/ArcCos.html.
APA
Wolfram Language. (1988). ArcCos. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/ArcCos.html
BibTeX
@misc{reference.wolfram_2026_arccos, author="Wolfram Research", title="{ArcCos}", year="2021", howpublished="\url{https://reference.wolfram.com/language/ref/ArcCos.html}", note=[Accessed: 13-June-2026]}
BibLaTeX
@online{reference.wolfram_2026_arccos, organization={Wolfram Research}, title={ArcCos}, year={2021}, url={https://reference.wolfram.com/language/ref/ArcCos.html}, note=[Accessed: 13-June-2026]}