5.11. Комплексные числа
5.11. Комплексные числа
Стандартная библиотека complex предназначена для работы с комплексными числами в Ruby. Большая ее часть не требует пояснений.
Для создания комплексного числа применяется следующая несколько необычная нотация:
z = Complex(3,5) # 3+5i
Необычно в ней то, что имя метода совпадает с именем класса. В данном случае наличие скобок указывает на то, что это вызов метода, а не ссылка на константу. Вообще говоря, имена методов не похожи на константы, и я не рекомендую начинать имена методов с прописной буквы, разве что в подобных специальных случаях. (Отметим, что имеются также методы Integer и Float; вообще, имена, начинающиеся с прописной буквы, зарезервированы для методов, которые выполняют преобразование данных и аналогичные действия.)
Метод im преобразует вещественное число в мнимое (по существу, умножая его на i). Поэтому представлять комплексные числа можно и с помощью более привычной нотации:
а = 3.im # 3i
b = 5 - 2.im # 5-2i
Если вас больше интересуют полярные координаты, то можно обратиться к методу polar:
2 - Complex.polar(5,Math::PI/2.0) # Радиус, угол.
В классе Complex имеется также константа I, которая представляет число i — квадратный корень из минус единицы:
z1 = Complex(3,5)
z2 = 3 + 5*Complex::I # z2 == z1
После загрузки библиотеки complex некоторые стандартные математические функции изменяют свое поведение. Тригонометрические функции — sin, sinh, tan и tanh (а также некоторые другие, например, ехр и log) начинают принимать еще и комплексные аргументы. Некоторые функции, например sqrt, даже возвращают комплексные числа в качестве результата.
x = Math.sqrt(Complex(3,5)) # Приближенно Complex(2.1013, 1.1897)
y = Math.sqrt(-1) # Complex(0,1)
Дополнительную информацию ищите в любой полной документации, в частности на сайте ruby-doc.org.
Данный текст является ознакомительным фрагментом.