Trabalhando com números complexos

Kotlin:
Trabalhando com números complexos

Como fazer:

Vamos definir uma classe básica de número complexo em Kotlin:

data class Complex(val real: Double, val imaginario: Double) {
    operator fun plus(other: Complex) = Complex(real + other.real, imaginario + other.imaginario)
    operator fun minus(other: Complex) = Complex(real - other.real, imaginario - other.imaginario)
    operator fun times(other: Complex) = Complex(
        real * other.real - imaginario * other.imaginario,
        real * other.imaginario + imaginario * other.real
    )
    
    override fun toString(): String = "($real + ${imaginario}i)"
}

fun main() {
    val a = Complex(1.0, 2.0)
    val b = Complex(3.0, 4.0)
    
    println("a + b = ${a + b}")  // Saída: a + b = (4.0 + 6.0i)
    println("a - b = ${a - b}")  // Saída: a - b = (-2.0 - 2.0i)
    println("a * b = ${a * b}")  // Saída: a * b = (-5.0 + 10.0i)
}

Aprofundamento

Números complexos foram mencionados pela primeira vez no século 16, resolvendo equações cúbicas que não possuíam soluções reais. Engenharia e física se beneficiam enormemente de números complexos para analisar circuitos de corrente alternada e formas de onda. Alternativamente, você poderia usar uma biblioteca como koma ou ejml da Kotlin para trabalhos mais pesados.

Operações em números complexos espelham os números reais, mas com atenção à unidade imaginária. A multiplicação, por exemplo, segue a propriedade distributiva, lembrando que i^2 = -1. Esta unidade imaginária nos permite representar números multidimensionais, cruciais em vários cálculos científicos.

Veja Também

Bibliotecas de Matemática Kotlin:

  • koma: Uma biblioteca de computação científica para Kotlin.

Leitura Adicional sobre Números Complexos: