Trilhas
/
Ruby
Ruby
/
Exercícios
/
Números complexos
Números complexos

Números complexos

Fá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 pelo 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 suas partes real e imaginária separadamente:

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

Subtração

A diferença de dois números complexos é obtida subtraindo as respectivas 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 pela fórmula de Euler:

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

Requisitos de implementação

Como você não deve usar suporte nativo a números complexos, implemente 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

Fonte

WikipediaO link abre em uma nova janela ou aba
Editar via GitHub O link abre em uma nova janela ou aba
Ruby Exercism

Tudo pronto para começar Números complexos?

Crie sua conta no Exercism para aprender e dominar Ruby com 21 conceitos121 exercícios e mentoria humana de verdade, tudo de graça.