Kotlin:
Работа с комплексными числами
Как:
Давайте определим базовый класс комплексного числа на Kotlin:
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}") // Вывод: a + b = (4.0 + 6.0i)
println("a - b = ${a - b}") // Вывод: a - b = (-2.0 - 2.0i)
println("a * b = ${a * b}") // Вывод: a * b = (-5.0 + 10.0i)
}
Углубленно
Комплексные числа впервые были упомянуты в 16 веке, решая кубические уравнения, которые не имели действительных решений. Инженерия и физика в значительной степени выигрывают от использования комплексных чисел для анализа цепей переменного тока и волновых форм. В качестве альтернативы, для серьезной работы, вы могли бы использовать библиотеку, такую как koma
или ejml
от Kotlin.
Операции с комплексными числами зеркально повторяют операции с действительными числами, но с учетом мнимой единицы. Умножение, например, следует закону распределения, помня, что i^2 = -1
. Эта мнимая единица позволяет нам представлять многомерные числа, критически важные в различных научных вычислениях.
Смотрите также
Библиотеки математики на Kotlin:
- koma: Научно-вычислительная библиотека для Kotlin.
Дополнительное чтение о комплексных числах: