WOLFRAM

Enable JavaScript to interact with content and submit forms on Wolfram websites. Learn how
Wolfram Language & System Documentation Center

Arg [z]

gives the argument of the complex number z.

Details
Details and Options Details and Options
Examples  
Basic Examples  
Scope  
Numerical Evaluation  
Specific Values  
Visualization  
Function Properties  
Function Identities and Simplifications  
Applications  
Properties & Relations  
Possible Issues  
Neat Examples  
See Also
Tech Notes
Related Guides
Related Links
History
Cite this Page

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 all

Basic Examples  (3)

The result is given in radians:

Wolfram Language code: Arg[-1]
Wolfram Language code: Arg[1 + I]

Plot over a subset of the reals:

Wolfram Language code: Plot[Arg[x], {x, -3, 3}]

Plot over a subset of the complexes:

Wolfram Language code: ComplexPlot3D[Arg[z], {z, -2 - 2I, 2 + 2I}, PlotLegends -> Automatic]

Scope  (33)

Numerical Evaluation  (6)

Evaluate numerically:

Wolfram Language code: Arg[-0.5]

Complex number inputs:

Wolfram Language code: Arg[0.5 + I]

Evaluate to high precision:

Wolfram Language code: N[Arg[E + Pi I], 20]

For real inputs, the result is exact:

Wolfram Language code: Arg[-123`20]

For complex inputs, the precision of the output tracks the precision of the input:

Wolfram Language code: Arg[123`20 - 456`20I]

Evaluate efficiently at high precision:

Wolfram Language code: Arg[I + 2.8`5]//Timing
Wolfram Language code: Arg[I + 0.6`10];//Timing

Compute the elementwise values of an array using automatic threading:

Wolfram Language code: Arg[{{1 / 2, -1}, {-5 / 3, 1 / 2}}]

Or compute the matrix Arg function using MatrixFunction :

Wolfram Language code: MatrixFunction[Arg, {{1 / 2, -1}, {-5 / 3, 1 / 2}}]//FullSimplify

Arg can be used with Interval and CenteredInterval objects:

Wolfram Language code: Arg[Interval[{1, 3}]]
Wolfram Language code: Arg[CenteredInterval[5 + 7I, (1 + I) / 100]]

Or compute average-case statistical intervals using Around :

Wolfram Language code: Arg[ Around[-1.1, 0.01]]

Specific Values  (6)

Values of Arg at fixed points:

Wolfram Language code: Table[Arg[n], {n, {2I, -1 / 3, 1}}]

Value at zero:

Wolfram Language code: Arg[0]

Values at infinity:

Wolfram Language code: Arg[Infinity]
Wolfram Language code: Arg[-Infinity]
Wolfram Language code: Arg[I Infinity]

Exact inputs:

Wolfram Language code: Arg[-5^(1/(5))]

Evaluate for complex exponentials:

Wolfram Language code: Table[Arg[Exp[k I 3π / 8]], {k, 8}]

Find a value of x for which the Arg [I x]=π/2:

Wolfram Language code: xval = x /. FindRoot[Arg[I x] == π / 2, {x, 1}]

Visualize the result:

Wolfram Language code: 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:

Wolfram Language code: Plot[Arg[1 + x], {x, -3, 3}, ExclusionsStyle -> Dashed]

Plot on the reals:

Wolfram Language code: Plot[Arg[x + I], {x, -3, 3}]

Plot over the complex plane:

Wolfram Language code: ComplexContourPlot[Arg[z], {z, 3}, Contours -> 25, PlotLegends -> Automatic]

Visualize Arg in three dimensions:

Wolfram Language code: 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:

Wolfram Language code: ComplexRegionPlot[Arg[z ^ 2] < Arg[z - 1], {z, 2}]//Quiet

Function Properties  (11)

Arg is defined for all real and complex inputs:

Wolfram Language code: FunctionDomain[Arg[x], x]
Wolfram Language code: FunctionDomain[Arg[x], x, Complexes]

Function range of Arg for real inputs:

Wolfram Language code: FunctionRange[Arg[x], x, y]

Except on the negative reals, arg(TemplateBox[{z}, Conjugate])=-arg(z):

Wolfram Language code: FullSimplify[Arg[Conjugate[z]] == -Arg[z], !(z < 0)]

Arg is not a differentiable function:

Wolfram Language code: D[Arg[x], x]

The difference quotient does not have a limit in the complex plane:

Wolfram Language code: Underscript[, hUnderscript[ -> , ℂ]0](Arg[1 + h] - Arg[1]/h)

There is only a limit in certain directions, for example, the real direction:

Wolfram Language code: Underscript[, hUnderscript[ -> , ℝ]0](Arg[1 + h] - Arg[1]/h)

Use ComplexExpand to get differentiable expressions for real-valued variables:

Wolfram Language code: D[ComplexExpand[Arg[1 + I x], TargetFunctions -> {Re, Im}], x]

Arg is not an analytic function:

Wolfram Language code: FunctionAnalytic[Arg[x], x]

It has both singularities and discontinuities:

Wolfram Language code: FunctionSingularities[Arg[x], x]
Wolfram Language code: FunctionDiscontinuities[Arg[x], x]

Over the complex plane, it is singular everywhere and discontinuous on the non-positive reals:

Wolfram Language code: FunctionSingularities[Arg[x], x, Complexes]
Wolfram Language code: FunctionDiscontinuities[Arg[x], x, Complexes]

Arg is nonincreasing:

Wolfram Language code: FunctionMonotonicity[Arg[x], x]

Arg is not injective:

Wolfram Language code: FunctionInjective[Arg[x], x]
Wolfram Language code: Plot[{Arg[x], π}, {x, -4, 4}]

Arg is not surjective:

Wolfram Language code: FunctionSurjective[Arg[x], x]
Wolfram Language code: Plot[{Arg[x], -2.5}, {x, -4, 4}]

Arg is non-negative:

Wolfram Language code: FunctionSign[Arg[x], x]

Arg is neither convex nor concave:

Wolfram Language code: FunctionConvexity[Arg[x], x]

TraditionalForm formatting:

Wolfram Language code: Arg[x]//TraditionalForm

Function Identities and Simplifications  (5)

Expand assuming real variables x and y:

Wolfram Language code: ComplexExpand[Arg[x + I y], TargetFunctions -> {Re, Im}]

Simplify Abs using appropriate assumptions:

Wolfram Language code: Simplify[Arg[x], x < 0]

Express a non-zero complex number in term of its Arg and Abs :

Wolfram Language code: FullSimplify[Exp[I Arg[z]]Abs[z], z ≠ 0]

is equal to :

Wolfram Language code: Table[Arg[z^(1/(n))], {n, 5}]

Except for , exp(ⅈ arg(z))=TemplateBox[{z}, Sign]):

Wolfram Language code: FindInstance[Exp[I Arg[z]] != Sign[z], z]

Applications  (3)

Polar decomposition of a complex number:

Wolfram Language code: {Abs[#], Arg[#]}&[1 + 3I]

Color a plot according to value of Arg :

Wolfram Language code: 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:

Wolfram Language code: PowerExpand[Sqrt[z ^ 2], Assumptions -> {}]
Wolfram Language code: PowerExpand[Log[1 / z], Assumptions -> {}]

Properties & Relations  (7)

Simplify expressions containing Arg :

Wolfram Language code: Simplify[x Arg[I x], x > 3]
Wolfram Language code: FullSimplify[Arg[z] - I Log[z / Abs[z]] - I Log[Sign[z]], z ≠ 0]

Generate Arg from FullSimplify :

Wolfram Language code: FullSimplify[Im[Log[z]]]

Use Arg as a target function in ComplexExpand :

Wolfram Language code: ComplexExpand[z, z, TargetFunctions -> {Abs, Arg}]//TrigToExp
Wolfram Language code: ComplexExpand[Re[ArcSin[x + I y]], TargetFunctions -> {Arg}]

Rescale Arg to run from 0 to 1:

Wolfram Language code: Table[Rescale[Arg[I ^ n], {-Pi, Pi}], {n, 5}]
Wolfram Language code: Table[Arg[I ^ n], {n, 5}]

Find the domain of positivity for a linear function:

Wolfram Language code: Reduce[Arg[x + c] > 0, x, Complexes]

Use Arg to specify assumptions about complex variables:

Wolfram Language code: Series[ArcSin[x], {x, DirectedInfinity[], 2}, Assumptions -> Pi / 4 < Arg[x] < 3Pi / 4]
Wolfram Language code: Series[ArcSin[x], {x, DirectedInfinity[], 2}]

ComplexPlot plots the phase of a function using color and shades by the magnitude:

Wolfram Language code: ComplexPlot[Sin[z] ^ 3 / (z + 1) ^ 4, {z, -5 - 5I, 5 + 5I}]
Wolfram Language code: 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:

Wolfram Language code: Arg[ComplexInfinity]

Arg is a function of a complex variable and is therefore not differentiable:

Wolfram Language code: D[Arg[z], z]

As a complex function, it is not possible to write Arg [z] without involving Conjugate [z]:

Wolfram Language code: 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:

Wolfram Language code: Limit[DifferenceQuotient[Arg[z], {z, h}], h -> 0, Direction -> 1]
Wolfram Language code: Limit[DifferenceQuotient[Arg[z], {z, h}], h -> 0, Direction -> I]

Use ComplexExpand to get differentiable expressions for real-valued variables:

Wolfram Language code: D[ComplexExpand[Arg[x + I y], TargetFunctions -> {Re, Im}], y]

Numerical decision procedures with default settings cannot simplify this expression:

Wolfram Language code: a = Arg[-1 - 2E - E^2 + (1 + E)^2 - I Exp[-Exp[2Pi]]]

The machine-precision result is incorrect:

Wolfram Language code: N[a]

The arbitrary-precision result indicates that the result may be incorrect:

Wolfram Language code: N[a, 20]

Using a larger setting for $MaxExtraPrecision gives the correct result:

Wolfram Language code: Block[{$MaxExtraPrecision = 1000}, N[a, 20]]

The input contains a hidden zero, and simplifying the argument gets the correct answer:

Wolfram Language code: 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 :

Wolfram Language code: Plot[Arg[1 / ((3 / 2Exp[I φ]) ^ 4 - 1)], {φ, 0, 2Pi}]

Neat Examples  (1)

Plot the argument of a complex-valued function:

Wolfram Language code: 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

History

Introduced in 1988 (1.0) | Updated in 2007 (6.0) 2021 (13.0)

Wolfram Research (1988), Arg, Wolfram Language function, https://reference.wolfram.com/language/ref/Arg.html (updated 2021).

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]}

Top [フレーム]

AltStyle によって変換されたページ (->オリジナル) /