The argument of a complex number. #
We define arg : ℂ → ℝ
, returning a real number in the range (-π, π],
such that for x ≠ 0
, sin (arg x) = x.im / x.abs
and cos (arg x) = x.re / x.abs
,
while arg 0
defaults to 0
arg
returns values in the range (-π, π], such that for x ≠ 0
,
sin (arg x) = x.im / x.abs
and cos (arg x) = x.re / x.abs
,
arg 0
defaults to 0
Equations
- x.arg = if 0 ≤ x.re then Real.arcsin (x.im / Complex.abs x) else if 0 ≤ x.im then Real.arcsin ((-x).im / Complex.abs x) + Real.pi else Real.arcsin ((-x).im / Complex.abs x) - Real.pi
Instances For
@[simp]
theorem
Complex.abs_mul_exp_arg_mul_I
(x : ℂ)
:
↑(Complex.abs x) * Complex.exp (↑x.arg * Complex.I) = x
@[simp]
theorem
Complex.abs_mul_cos_add_sin_mul_I
(x : ℂ)
:
↑(Complex.abs x) * (Complex.cos ↑x.arg + Complex.sin ↑x.arg * Complex.I) = x
theorem
Complex.abs_eq_one_iff
(z : ℂ)
:
Complex.abs z = 1 ↔ ∃ (θ : ℝ), Complex.exp (↑θ * Complex.I) = z
@[simp]
theorem
Complex.range_exp_mul_I :
(Set.range fun (x : ℝ) => Complex.exp (↑x * Complex.I)) = Metric.sphere 0 1
theorem
Complex.arg_cos_add_sin_mul_I
{θ : ℝ}
(hθ : θ ∈ Set.Ioc (-Real.pi) Real.pi)
:
(Complex.cos ↑θ + Complex.sin ↑θ * Complex.I).arg = θ
theorem
Complex.ext_abs_arg
{x y : ℂ}
(h₁ : Complex.abs x = Complex.abs y)
(h₂ : x.arg = y.arg)
:
x = y
theorem
Complex.arg_eq_arg_iff
{x y : ℂ}
(hx : x ≠ 0)
(hy : y ≠ 0)
:
x.arg = y.arg ↔ ↑(Complex.abs y) / ↑(Complex.abs x) * x = y
theorem
Complex.arg_of_re_nonneg
{x : ℂ}
(hx : 0 ≤ x.re)
:
x.arg = Real.arcsin (x.im / Complex.abs x)
theorem
Complex.arg_of_re_neg_of_im_nonneg
{x : ℂ}
(hx_re : x.re < 0)
(hx_im : 0 ≤ x.im)
:
x.arg = Real.arcsin ((-x).im / Complex.abs x) + Real.pi
theorem
Complex.arg_of_re_neg_of_im_neg
{x : ℂ}
(hx_re : x.re < 0)
(hx_im : x.im < 0)
:
x.arg = Real.arcsin ((-x).im / Complex.abs x) - Real.pi
theorem
Complex.arg_of_im_nonneg_of_ne_zero
{z : ℂ}
(h₁ : 0 ≤ z.im)
(h₂ : z ≠ 0)
:
z.arg = Real.arccos (z.re / Complex.abs z)
theorem
Complex.arg_mul_cos_add_sin_mul_I_eq_toIocMod
{r : ℝ}
(hr : 0 < r)
(θ : ℝ)
:
(↑r * (Complex.cos ↑θ + Complex.sin ↑θ * Complex.I)).arg = toIocMod Real.two_pi_pos (-Real.pi) θ
theorem
Complex.arg_cos_add_sin_mul_I_eq_toIocMod
(θ : ℝ)
:
(Complex.cos ↑θ + Complex.sin ↑θ * Complex.I).arg = toIocMod Real.two_pi_pos (-Real.pi) θ
An alternative description of the slit plane as consisting of nonzero complex numbers whose argument is not π.
theorem
Complex.arg_eq_nhds_of_re_pos
{x : ℂ}
(hx : 0 < x.re)
:
Complex.arg =ᶠ[nhds x] fun (x : ℂ) => Real.arcsin (x.im / Complex.abs x)
theorem
Complex.arg_eq_nhds_of_re_neg_of_im_pos
{x : ℂ}
(hx_re : x.re < 0)
(hx_im : 0 < x.im)
:
Complex.arg =ᶠ[nhds x] fun (x : ℂ) => Real.arcsin ((-x).im / Complex.abs x) + Real.pi
theorem
Complex.arg_eq_nhds_of_re_neg_of_im_neg
{x : ℂ}
(hx_re : x.re < 0)
(hx_im : x.im < 0)
:
Complex.arg =ᶠ[nhds x] fun (x : ℂ) => Real.arcsin ((-x).im / Complex.abs x) - Real.pi
theorem
Complex.arg_eq_nhds_of_im_pos
{z : ℂ}
(hz : 0 < z.im)
:
Complex.arg =ᶠ[nhds z] fun (x : ℂ) => Real.arccos (x.re / Complex.abs x)
theorem
Complex.arg_eq_nhds_of_im_neg
{z : ℂ}
(hz : z.im < 0)
:
Complex.arg =ᶠ[nhds z] fun (x : ℂ) => -Real.arccos (x.re / Complex.abs x)
theorem
Complex.tendsto_arg_nhdsWithin_im_neg_of_re_neg_of_im_zero
{z : ℂ}
(hre : z.re < 0)
(him : z.im = 0)
:
Filter.Tendsto Complex.arg (nhdsWithin z {z : ℂ | z.im < 0}) (nhds (-Real.pi))
theorem
Complex.continuousWithinAt_arg_of_re_neg_of_im_zero
{z : ℂ}
(hre : z.re < 0)
(him : z.im = 0)
:
ContinuousWithinAt Complex.arg {z : ℂ | 0 ≤ z.im} z
theorem
Complex.tendsto_arg_nhdsWithin_im_nonneg_of_re_neg_of_im_zero
{z : ℂ}
(hre : z.re < 0)
(him : z.im = 0)
:
Filter.Tendsto Complex.arg (nhdsWithin z {z : ℂ | 0 ≤ z.im}) (nhds Real.pi)