Pular para o conteúdo
Guia do Varlig
Página inicial do Varlig

Números complexos

Um valor numérico complexo tem uma parte real e uma parte imaginária, escrita com i, a raiz quadrada de -1. Esta página cobre a escrita de números complexos, fazendo aritmética com eles, separando-os em módulo e argumento, encontrando raízes quadradas de números negativos e as funções matemáticas que aceitam valores complexos.

Use esses recursos quando uma equação quadrática não tiver raízes reais, ao trabalhar com circuitos de corrente alternada ou sinais, ou para conferir exercícios de análise complexa.

Escrevendo números complexos

calc
2 + 3i resulta em 2 + 3i
complex(3, -4) resulta em 3 - 4i
i^2 resulta em -1

Coloque i logo após um valor numérico para a parte imaginária, como em 3i ou 1.5i, ou use i por conta própria. complex(real, imaginary) constrói o mesmo valor a partir de duas partes, o que é útil quando as partes são nomes: complex(resistance, reactance) Ambas as partes devem ser números simples sem unidades.

i significa apenas a unidade imaginária, enquanto nada mais na nota é chamado de i. Depois de definir um nome ou uma unidade personalizada chamada i, ele assume:

calc
i = 5
2 + 3i resulta em 17
complex(2, 3) resulta em 2 + 3i

Aqui 3i se tornou 3 × 5, e a linha deu 17. Os nomes carregam através dos blocos de cálculo de uma nota, então um i = … em qualquer lugar mais cedo na nota tem o mesmo efeito. Evite usar i como nome em notas que usam números complexos. complex(2, 3) não usa o nome, então ainda funciona.

Aritmética

calc
(2 + 3i) + (1 - 5i) resulta em 3 - 2i
(1 + 2i) * (3 - i) resulta em 5 + 5i
(2 + 3i) * (2 - 3i) resulta em 13
10 / (3 + 4i) resulta em 1.2 - 1.6i
(1 + i)^8 resulta em 16

Adição, subtração, multiplicação, divisão e potências de expoente inteiro são exatas. Quando a parte imaginária é zero, como em (2 + 3i) * (2 - 3i), o resultado aparece como um número comum. Use parênteses ao redor de cada número complexo ao multiplicar ou dividir, para que (2 + 3i) * (2 - 3i) não seja interpretado como 2 + (3i * 2) - 3i.

Partes de um número complexo

calc
z = 3 + 4i
real(z) resulta em 3
imag(z) resulta em 4
conj(z) resulta em 3 - 4i
abs(z) resulta em 5
arg(1 + i) resulta em 0.7853981634
arg(1 + i) rad in degrees resulta em 45°
Função Dá
real(z) A parte real
imag(z) A parte imaginária, como um número simples
conj(z) O conjugado complexo: mesma parte real, parte imaginária com seu sinal invertido
abs(z) O módulo: a distância de zero
arg(z) O argumento: o ângulo do eixo real positivo, em radianos

arg retorna um número simples de radianos entre −π e π. Para vê-lo em graus, marque-o como radianos e converta, como na última linha. Para ir para o outro lado, do módulo e ângulo de volta a um valor numérico complexo, use exp: 2 * exp(i * pi / 3) é 1 + 1.7320508076i.

Raízes quadradas de números negativos

Uma raiz quadrada de um valor numérico negativo comum é um cálculo de número real, então sqrt(-16) mostra um erro que informa o que escrever em vez disso: Error: imaginary number. For a complex answer, write sqrt(-16 + 0i) Para pedir a raiz complexa, escreva o valor numérico como um complexo: adicione 0i ou use complex(…, 0)

calc
sqrt(-16 + 0i) resulta em 4i
sqrt(complex(-16, 0)) resulta em 4i
sqrt(3 + 4i) resulta em 2 + i
sqrt(2i) resulta em 1 + i

sqrt retorna a raiz principal, com parte real positiva ou, no caso de números negativos, parte imaginária positiva. A outra raiz quadrada é o oposto dessa raiz.

Um valor que você escreve como complexo permanece complexo, mesmo quando sua parte imaginária é zero. Você pode armazená-lo em um nome ou continuar calculando com ele primeiro: depois de x = -16 + 0i, sqrt(x) é 4i, mesmo que x seja exibido como -16.

Assim, a fórmula de resolução da equação do segundo grau funciona para qualquer equação quadrática:

calc
# Roots of x^2 + 2x + 5 = 0
a = 1
b = 2
c = 5
disc = b^2 - 4*a*c resulta em -16
(-b + sqrt(disc + 0i)) / (2*a) resulta em -1 + 2i
(-b - sqrt(disc + 0i)) / (2*a) resulta em -1 - 2i

As raízes cúbicas seguem a mesma regra da raiz principal, o que pode surpreender no caso de números negativos:

calc
cbrt(-8) resulta em -2
cbrt(-8 + 0i) resulta em 1 + 1.7320508076i

Ambas são raízes cúbicas de -8. A versão real dá a raiz real; a versão complexa dá a raiz complexa principal.

Funções de um número complexo

calc
exp(i * pi) resulta em -1
ln(-1 + 0i) resulta em 3.1415926536i
i^i resulta em 0.2078795764
cos(i) resulta em 1.5430806348
sinh(i) resulta em 0.8414709848i
2^i resulta em 0.7692389014 + 0.6389612763i

Essas funções aceitam valores complexos:

  • sin, cos, tan e seus inversos asin, acos, atan
  • sinh, cosh, tanh e seus inversos asinh, acosh, atanh
  • exp, ln, log (ou log10), log2, sqrt e cbrt
  • Potências com expoentes fracionários ou complexos, como i^0.5 ou 2^i

Eles funcionam em ponto flutuante binário, então as respostas são aproximações próximas. As sobras arredondadas muito pequenas para importar aparecem como 0, então exp(i * pi) lê como −1, a resposta que você esperaria do livro didático. O valor armazenado mantém cada dígito, portanto, quando você comparar esses resultados, verifique se a diferença é pequena, como em abs(exp(i * pi) + 1) < 1e-9, em vez de usar ==.

Cada função dá uma única resposta, de seu ramo principal. Um valor numérico complexo tem infinitos logaritmos e várias raízes, e você otém o padrão. Assim como com sqrt, as entradas reais permanecem reais: ln(-1) e log(-100) mostram o erro de número imaginário com a forma complexa para tentar, enquanto ln(-1 + 0i) dá πi. O logaritmo de zero é um erro.

Funções que só fazem sentido para números reais, como floor e round, não aceitam valores complexos.

Comparando números complexos

calc
2 + 3i == complex(2, 3) resulta em true
2 + 3i != 2 - 3i resulta em true
complex(3, 0) >= 3 resulta em true
abs(3 + 4i) > abs(1 + 2i) resulta em true

== e != funcionam com quaisquer valores complexos. <, <=, > e >= só funcionam quando a parte imaginária dos dois lados é zero, pois números complexos não têm uma ordem natural: i < 2 produz erro. Para comparar magnitudes, compare os módulos com abs, como na última linha. Não é possível ordenar números complexos.

As regras completas estão na referência matemática avançada.

Combinando os recursos

Aqui está uma verificação de um problema de circuito CA: um resistor de 30 Ω e um indutor com 40 Ω de reactância em série, em uma fonte de 10 V:

calc
# Series circuit: 30 Ω resistor, 40 Ω reactance, 10 V supply
resistance = 30
reactance = 40
z = complex(resistance, reactance) resulta em 30 + 40i
abs(z) resulta em 50
current = 10 / z resulta em 0.12 - 0.16i
abs(current) resulta em 0.2
arg(z) rad in degrees to 1 dp resulta em 53.1°

A impedância é 30 + 40i, com módulo de 50 Ω. Portanto, a corrente é de 0,2 A e está defasada em cerca de 53,1° em relação à tensão, com atraso. Na engenharia, costuma-se usar j para a unidade imaginária; no Varlig, ela é sempre i. Ohms, volts e amperes ficam no comentário, porque as partes de um número complexo não podem ter unidades.