Kotlin:
Kompleksilukujen käsittely
Miten:
Määritellään perus kompleksilukuluokka Kotlinissa:
data class Complex(val real: Double, val imaginary: Double) {
operator fun plus(other: Complex) = Complex(real + other.real, imaginary + other.imaginary)
operator fun minus(other: Complex) = Complex(real - other.real, imaginary - other.imaginary)
operator fun times(other: Complex) = Complex(
real * other.real - imaginary * other.imaginary,
real * other.imaginary + imaginary * other.real
)
override fun toString(): String = "($real + ${imaginary}i)"
}
fun main() {
val a = Complex(1.0, 2.0)
val b = Complex(3.0, 4.0)
println("a + b = ${a + b}") // Tuloste: a + b = (4.0 + 6.0i)
println("a - b = ${a - b}") // Tuloste: a - b = (-2.0 - 2.0i)
println("a * b = ${a * b}") // Tuloste: a * b = (-5.0 + 10.0i)
}Syväsukellus
Kompleksiluvuista mainittiin ensimmäisen kerran 1500-luvulla, ratkaisten kuutiollisia yhtälöitä, joilla ei ollut reaaliluku ratkaisuja. Insinööritiede ja fysiikka hyötyvät suuresti kompleksiluvuista analysoidessaan vaihtovirtapiirejä ja aaltomuotoja. Raskaampaan työhön voi vaihtoehtoisesti käyttää kirjastoa kuten Kotlinin koma tai ejml.
Kompleksilukujen operaatiot peilaavat reaalilukuja, mutta huomioiden imaginaariyksikön. Kertolasku esimerkiksi noudattaa distribuutiolakia, muistaen että i^2 = -1. Tämä imaginaariyksikkö mahdollistaa meidän edustavan moniulotteisia lukuja, mikä on kriittistä erilaisissa tieteellisissä laskelmissa.
Katso Myös
Kotlin Matematiikkakirjastot:
- koma: Tieteellinen laskentakirjasto Kotlinille.
Lisäluettavaa kompleksiluvuista: