Percursos
/
Julia
Julia
/
Exercícios
/
Números Complexos
Números Complexos

Números Complexos

Difícil

Instruções

Um número complexo é expresso na forma z = a + b * i, em que:

  • a é a parte real (um número real),

  • b é a parte imaginária (também um número real), e

  • i é a unidade imaginária que satisfaz i^2 = -1.

Operações com números complexos

Conjugado

O conjugado do número complexo z = a + b * i é dado por:

zc = a - b * i

Valor absoluto

O valor absoluto (ou módulo) de z é definido como:

|z| = sqrt(a^2 + b^2)

O quadrado do valor absoluto é calculado como o produto de z e do seu conjugado zc:

|z|^2 = z * zc = a^2 + b^2

Adição

A soma de dois números complexos z1 = a + b * i e z2 = c + d * i é calculada somando separadamente as suas partes real e imaginária:

z1 + z2 = (a + b * i) + (c + d * i)
        = (a + c) + (b + d) * i

Subtração

A diferença de dois números complexos obtém-se subtraindo as respetivas partes:

z1 - z2 = (a + b * i) - (c + d * i)
        = (a - c) + (b - d) * i

Multiplicação

O produto de dois números complexos é definido como:

z1 * z2 = (a + b * i) * (c + d * i)
        = (a * c - b * d) + (b * c + a * d) * i

Recíproco

O recíproco de um número complexo não nulo é dado por:

1 / z = 1 / (a + b * i)
      = a / (a^2 + b^2) - b / (a^2 + b^2) * i

Divisão

A divisão de um número complexo por outro é dada por:

z1 / z2 = z1 * (1 / z2)
        = (a + b * i) / (c + d * i)
        = (a * c + b * d) / (c^2 + d^2) + (b * c - a * d) / (c^2 + d^2) * i

Exponenciação

Elevar e (a base do logaritmo natural) a um expoente complexo pode ser expresso através da fórmula de Euler:

e^(a + b * i) = e^a * e^(b * i)
              = e^a * (cos(b) + i * sin(b))

Requisitos de implementação

Dado que não deves usar suporte incorporado para números complexos, implementa as seguintes operações:

  • adição de dois números complexos
  • subtração de dois números complexos
  • multiplicação de dois números complexos
  • divisão de dois números complexos
  • conjugado de um número complexo
  • valor absoluto de um número complexo
  • exponenciação de e (a base do logaritmo natural) a um número complexo

A implementação de números complexos da Base do Julia pode ser encontrada aqui: https://github.com/JuliaLang/julia/blob/master/base/complex.jl.


Bónus A

Podes trabalhar nos exercícios bónus que envolvem aritmética entre números reais e números complexos ao descomentar: # enable_realcomplex_tests = true no stub complex-numbers.jl ou no runtests.jl

Bónus B

Podes trabalhar nos exercícios bónus entre números reais e números complexos ao descomentar: # enable_syntaxsugar_tests = true no stub complex-numbers.jl ou no runtests.jl Depois, implementa jm de forma análoga a im, para que 1 + 1jm == ComplexNumber(1, 1).


Fonte

WikipediaO link abre numa nova janela ou separador
Editar via GitHub A ligação abre numa nova janela ou separador
Julia Exercism

Estás pronto para começar Números Complexos?

Inscreve-te no Exercism para aprenderes e dominares Julia com 35 conceitos128 exercícios, e mentoria humana real, tudo grátis.