Arg [z]
gives the argument of the complex number z.
Arg
Arg [z]
gives the argument of the complex number z.
Details
- Mathematical function, suitable for both symbolic and numerical manipulation.
- Arg [z] is left unevaluated if z is not a numeric quantity.
- Arg [z] gives the phase angle of z in radians.
- The result from Arg [z] is always between and .
- Arg [z] has a branch cut discontinuity in the complex z plane running from to 0.
- Arg [0] gives 0.
- Arg automatically threads over lists. »
- Arg can be used with Interval and CenteredInterval objects. »
Examples
open all close allBasic Examples (3)
The result is given in radians:
Arg[-1]Arg[1 + I]Plot over a subset of the reals:
Plot[Arg[x], {x, -3, 3}]Plot over a subset of the complexes:
ComplexPlot3D[Arg[z], {z, -2 - 2I, 2 + 2I}, PlotLegends -> Automatic]Scope (33)
Numerical Evaluation (6)
Evaluate numerically:
Arg[-0.5]Complex number inputs:
Arg[0.5 + I]Evaluate to high precision:
N[Arg[E + Pi I], 20]For real inputs, the result is exact:
Arg[-123`20]For complex inputs, the precision of the output tracks the precision of the input:
Arg[123`20 - 456`20I]Evaluate efficiently at high precision:
Arg[I + 2.8`5]//TimingArg[I + 0.6`10];//TimingCompute the elementwise values of an array using automatic threading:
Arg[{{1 / 2, -1}, {-5 / 3, 1 / 2}}]Or compute the matrix Arg function using MatrixFunction :
MatrixFunction[Arg, {{1 / 2, -1}, {-5 / 3, 1 / 2}}]//FullSimplifyArg can be used with Interval and CenteredInterval objects:
Arg[Interval[{1, 3}]]Arg[CenteredInterval[5 + 7I, (1 + I) / 100]]Or compute average-case statistical intervals using Around :
Arg[ Around[-1.1, 0.01]]Specific Values (6)
Values of Arg at fixed points:
Table[Arg[n], {n, {2I, -1 / 3, 1}}]Value at zero:
Arg[0]Values at infinity:
Arg[Infinity]Arg[-Infinity]Arg[I Infinity]Exact inputs:
Arg[-5^(1/(5))]Evaluate for complex exponentials:
Table[Arg[Exp[k I 3π / 8]], {k, 8}]Find a value of x for which the Arg [I x]=π/2:
xval = x /. FindRoot[Arg[I x] == π / 2, {x, 1}]Visualize the result:
Plot[Arg[I x], {x, -2, 3}, Epilog -> Style[Point[{xval, Arg[I xval]}], PointSize[Large], Red], ExclusionsStyle -> Dotted]Visualization (5)
Plot the on the real axis:
Plot[Arg[1 + x], {x, -3, 3}, ExclusionsStyle -> Dashed]Plot on the reals:
Plot[Arg[x + I], {x, -3, 3}]Plot over the complex plane:
ComplexContourPlot[Arg[z], {z, 3}, Contours -> 25, PlotLegends -> Automatic]Visualize Arg in three dimensions:
ComplexPlot3D[Arg[z], {z, -2 - 2I, 2 + 2I}, Mesh -> Automatic, MeshFunctions -> {Re[#1]&, Im[#1]&}, BoxRatios -> Automatic, RegionFunction -> Function[{z}, Abs[z] ≤ 2]]Use Arg to specify regions of the complex plane:
ComplexRegionPlot[Arg[z ^ 2] < Arg[z - 1], {z, 2}]//QuietFunction Properties (11)
Arg is defined for all real and complex inputs:
FunctionDomain[Arg[x], x]FunctionDomain[Arg[x], x, Complexes]Function range of Arg for real inputs:
FunctionRange[Arg[x], x, y]Except on the negative reals, arg(TemplateBox[{z}, Conjugate])=-arg(z):
FullSimplify[Arg[Conjugate[z]] == -Arg[z], !(z < 0)]Arg is not a differentiable function:
D[Arg[x], x]The difference quotient does not have a limit in the complex plane:
Underscript[, hUnderscript[ -> , ℂ]0](Arg[1 + h] - Arg[1]/h)There is only a limit in certain directions, for example, the real direction:
Underscript[, hUnderscript[ -> , ℝ]0](Arg[1 + h] - Arg[1]/h)Use ComplexExpand to get differentiable expressions for real-valued variables:
D[ComplexExpand[Arg[1 + I x], TargetFunctions -> {Re, Im}], x]Arg is not an analytic function:
FunctionAnalytic[Arg[x], x]It has both singularities and discontinuities:
FunctionSingularities[Arg[x], x]FunctionDiscontinuities[Arg[x], x]Over the complex plane, it is singular everywhere and discontinuous on the non-positive reals:
FunctionSingularities[Arg[x], x, Complexes]FunctionDiscontinuities[Arg[x], x, Complexes]Arg is nonincreasing:
FunctionMonotonicity[Arg[x], x]Arg is not injective:
FunctionInjective[Arg[x], x]Plot[{Arg[x], π}, {x, -4, 4}]Arg is not surjective:
FunctionSurjective[Arg[x], x]Plot[{Arg[x], -2.5}, {x, -4, 4}]Arg is non-negative:
FunctionSign[Arg[x], x]Arg is neither convex nor concave:
FunctionConvexity[Arg[x], x]TraditionalForm formatting:
Arg[x]//TraditionalFormFunction Identities and Simplifications (5)
Expand assuming real variables x and y:
ComplexExpand[Arg[x + I y], TargetFunctions -> {Re, Im}]Simplify Abs using appropriate assumptions:
Simplify[Arg[x], x < 0]Express a non-zero complex number in term of its Arg and Abs :
FullSimplify[Exp[I Arg[z]]Abs[z], z ≠ 0]is equal to :
Table[Arg[z^(1/(n))], {n, 5}]Except for , exp(ⅈ arg(z))=TemplateBox[{z}, Sign]):
FindInstance[Exp[I Arg[z]] != Sign[z], z]Applications (3)
Polar decomposition of a complex number:
{Abs[#], Arg[#]}&[1 + 3I]Color a plot according to value of Arg :
Plot3D[Abs[Sin[x + I y]], {x, -2Pi, 2Pi}, {y, -1, 1}, ColorFunction -> (Hue[Arg[Sin[#1 + I#2]]]&)]Expand multivalued functions without making assumptions about variables:
PowerExpand[Sqrt[z ^ 2], Assumptions -> {}]PowerExpand[Log[1 / z], Assumptions -> {}]Properties & Relations (7)
Simplify expressions containing Arg :
Simplify[x Arg[I x], x > 3]FullSimplify[Arg[z] - I Log[z / Abs[z]] - I Log[Sign[z]], z ≠ 0]Generate Arg from FullSimplify :
FullSimplify[Im[Log[z]]]Use Arg as a target function in ComplexExpand :
ComplexExpand[z, z, TargetFunctions -> {Abs, Arg}]//TrigToExpComplexExpand[Re[ArcSin[x + I y]], TargetFunctions -> {Arg}]Rescale Arg to run from 0 to 1:
Table[Rescale[Arg[I ^ n], {-Pi, Pi}], {n, 5}]Table[Arg[I ^ n], {n, 5}]Find the domain of positivity for a linear function:
Reduce[Arg[x + c] > 0, x, Complexes]Use Arg to specify assumptions about complex variables:
Series[ArcSin[x], {x, DirectedInfinity[], 2}, Assumptions -> Pi / 4 < Arg[x] < 3Pi / 4]Series[ArcSin[x], {x, DirectedInfinity[], 2}]ComplexPlot plots the phase of a function using color and shades by the magnitude:
ComplexPlot[Sin[z] ^ 3 / (z + 1) ^ 4, {z, -5 - 5I, 5 + 5I}]DensityPlot[Arg[Sin[x + I * y] ^ 3 / (x + I * y + 1) ^ 4], {x, -5, 5}, {y, -5, 5}]Possible Issues (4)
Degenerate cases give intervals as results:
Arg[ComplexInfinity]Arg is a function of a complex variable and is therefore not differentiable:
D[Arg[z], z]As a complex function, it is not possible to write Arg [z] without involving Conjugate [z]:
FullSimplify[Arg[z] == ArcTan[z + Conjugate[z], (z - Conjugate[z]/I)]]In particular, the limit that defines the derivative is direction dependent and therefore does not exist:
Limit[DifferenceQuotient[Arg[z], {z, h}], h -> 0, Direction -> 1]Limit[DifferenceQuotient[Arg[z], {z, h}], h -> 0, Direction -> I]Use ComplexExpand to get differentiable expressions for real-valued variables:
D[ComplexExpand[Arg[x + I y], TargetFunctions -> {Re, Im}], y]Numerical decision procedures with default settings cannot simplify this expression:
a = Arg[-1 - 2E - E^2 + (1 + E)^2 - I Exp[-Exp[2Pi]]]The machine-precision result is incorrect:
N[a]The arbitrary-precision result indicates that the result may be incorrect:
N[a, 20]Using a larger setting for $MaxExtraPrecision gives the correct result:
Block[{$MaxExtraPrecision = 1000}, N[a, 20]]The input contains a hidden zero, and simplifying the argument gets the correct answer:
Arg[-1 - 2E - E^2 + (1 + E)^2 - I Exp[-Exp[2Pi]]//Simplify]The argument principle of complex analysis cannot be used because Arg has range :
Plot[Arg[1 / ((3 / 2Exp[I φ]) ^ 4 - 1)], {φ, 0, 2Pi}]Neat Examples (1)
Plot the argument of a complex-valued function:
Plot3D[Arg[1 / ((x + I y) ^ 8 - 1)], {x, -2, 2}, {y, -2, 2}, Mesh -> False, RegionFunction -> (Norm[{#1, #2}] < 2&)]See Also
ArcTan Sign Abs AbsArg Im Re Conjugate ToPolarCoordinates
Function Repository: UnwindingNumber
Tech Notes
Related Links
History
Introduced in 1988 (1.0) | Updated in 2007 (6.0) ▪ 2021 (13.0)
Text
Wolfram Research (1988), Arg, Wolfram Language function, https://reference.wolfram.com/language/ref/Arg.html (updated 2021).
CMS
Wolfram Language. 1988. "Arg." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2021. https://reference.wolfram.com/language/ref/Arg.html.
APA
Wolfram Language. (1988). Arg. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/Arg.html
BibTeX
@misc{reference.wolfram_2026_arg, author="Wolfram Research", title="{Arg}", year="2021", howpublished="\url{https://reference.wolfram.com/language/ref/Arg.html}", note=[Accessed: 11-June-2026]}
BibLaTeX
@online{reference.wolfram_2026_arg, organization={Wolfram Research}, title={Arg}, year={2021}, url={https://reference.wolfram.com/language/ref/Arg.html}, note=[Accessed: 11-June-2026]}