Ruby:
Работа с комплексными числами
Как это сделать:
Ruby упрощает работу с комплексными числами. Создавать и манипулировать ими можно при помощи класса Complex:
require 'complex'
# Создание комплексных чисел
c1 = Complex(3, 4)
c2 = Complex('2+5i')
# Базовые операции
sum = c1 + c2 # => (5.0+9.0i)
difference = c1 - c2 # => (1.0-1.0i)
product = c1 * c2 # => (-14.0+23.0i)
quotient = c1 / c2 # => (0.896551724137931+0.03448275862068961i)
# Сопряжение, модуль и аргумент
conjugate = c1.conjugate # => (3.0-4.0i)
magnitude = c1.abs # => 5.0
phase = c1.phase # Math.atan2(4, 3) => 0.9272952180016122 радиан
# Методы, специфичные для комплексных чисел
polar = c1.polar # => [5.0, 0.9272952180016122]
rectangular = c1.rect # => [3.0, 4.0]
Подробнее
Комплексные числа не новы — они существуют с 16-го века, решая уравнения без действительных решений. Отложив в сторону математику, вычислительно, класс Complex в Ruby выполняет основную работу, наряду с модулем Math для тригонометрических и трансцендентных функций.
В более ранних языках программирования требовалась ручная обработка действительных и мнимых частей. Некоторые, такие как Fortran и C++, выделяют специальные библиотеки для комплексной арифметики.
Подход Ruby встраивает поддержку комплексных чисел в его синтаксис, освобождая вас от необходимости изобретать колесо. За кулисами класс Complex выполняет математические расчеты, в то время как Ruby заботится о взаимодействии объектов.
Смотрите также
- Документация Ruby по Complex: https://ruby-doc.org/core/Complex.html
- Мнение MathWorld о комплексных числах: http://mathworld.wolfram.com/ComplexNumber.html
- Визуальное введение в комплексные числа и почему они полезны: https://www.youtube.com/watch?v=5PcpBw5Hbwo