Книга: Программирование на языке Ruby

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.

Оглавление книги

Оглавление статьи/книги

Генерация: 0.110. Запросов К БД/Cache: 0 / 2
поделиться
Вверх Вниз