На этом шаге мы рассмотрим моделирование работы с комплексными чслами.
Среди библиотечных модулей находится модуль Complex, предназначенный для работы с комплексными числами [1, с.239-240].
Рассмотрим демонстрационный пример.
-- Демонстрация работы с комплексными числами -- с помощью библиотеки Complex -- **************************** import Complex ----------------------------------------------- -- Представление комплексных чисел в библиотеке ----------------------------------------------- ch1 = 1 :+ 2 ch2 = 3 :+ 4 ------------------------------------- -- Операции над комплексными числами: --------------------------------------------------- -- (1) нахождение действительной части комплексного -- числа -------------------- test1 = realPart ch1 ------------------------------------------------- -- (2) нахождение мнимой части комплексного числа ------------------------------------------------- test2 = imagPart ch1 ------------------------------------ -- (3) нахождение сопряженного числа ------------------------------------ test3 = conjugate ch1 ------------------------------------------- -- (4) нахождение модуля комплексного числа ------------------------------------------- test4 = magnitude ch1 ----------------------------------------------- -- (5) вычисление аргумента комплексного числа ----------------------------------------------- test5 = phase ch2 ------------------------------------------------ -- (6) нахождение комплексного числа по заданным -- полярным координатам ------------------------------- test6 = mkPolar (sqrt 2) (pi/4) ------------------------------------------------- -- (7) нахождение полярных координат по заданному -- комплексному числу ------------------------- test7 = polar ch1 --------------------------------------------------- -- (8) нахождение комплексного числа с модулем 1 по -- заданному аргументу -------------------------- test8 = cis (pi/4) ------------------------------------------------------ -- (9) преобразование целого числа в комплексное число ------------------------------------------------------ test9 = fromInteger 7 ----------------------------------------------- -- (10) вычисление суммы двух комплексных чисел ----------------------------------------------- test10 = ch1+ch2 -------------------------------------------------- -- (11) вычисление разности двух комплексных чисел -------------------------------------------------- test11 = ch1-ch2 ------------------------------------------------------ -- (12) вычисление произведения двух комплексных чисел ------------------------------------------------------ test12 = ch1*ch2 -------------------------------------------------- -- (13) вычисление частного двух комплексных чисел -------------------------------------------------- test13 = ch1/ch2 --------------------------------------------------- -- (14) возведение комплексного числа в комплексную -- степень ----------------------------------------------------------- test14:: Complex Double -> Complex Double -> Complex Double test14 x y = x**y ---------------------------------------------------------- -- (15) извлечение квадратного корня из комплексного числа ---------------------------------------------------------- test15 = sqrt ch2 -------------------------------------------------------- -- (16) извлечение корня n-степени из комплексного числа -------------------------------------------------------- test16 x n = x**(1.0/n) --------------------------------------------------- -- (17) операции с комплексными числами и числом pi --------------------------------------------------- test17 = ch1+pi --------------------------------------------------- -- (18) вычисление значения комплексной функции exp --------------------------------------------------- test18 = exp ch2 --------------------------------------------------- -- (19) вычисление значения комплексной функции log -- (натуральный логарифм) ------------------------------ test19 = log ch2 --------------------------------------------------- -- (20) вычисление значения комплексной функции sin --------------------------------------------------- test20 = sin ch2 --------------------------------------------------- -- (21) вычисление значения комплексной функции cos --------------------------------------------------- test21 = cos ch2 --------------------------------------------------- -- (22) вычисление значения комплексной функции tan -- (тангенс) ----------------- test22 = tan ch2 ---------------------------------------------------- -- (23) вычисление значения комплексной функции sinh -- (гиперболический синус) ------------------------------- test23 = sinh ch2 ---------------------------------------------------- -- (24) вычисление значения комплексной функции cosh -- (гиперболический косинус) --------------------------------- test24 = cosh ch2 ---------------------------------------------------- -- (25) вычисление значения комплексной функции tanh -- (гиперболический тангенс) --------------------------------- test25 = tanh ch2 ---------------------------------------------------- -- (26) вычисление значения комплексной функции asin -- (арксинус). -- Внимание! Возможны непонятные результаты: -- > asin (sin ch1) ------------------------ test26 = asin ch2 ---------------------------------------------------- -- (27) вычисление значения комплексной функции acos -- (арккосинус) -------------------- test27 = acos ch2 ---------------------------------------------------- -- (28) вычисление значения комплексной функции atan -- (арктангенс) -------------------- test28 = atan ch2 ----------------------------------------------------- -- (29) вычисление значения комплексной функции asinh -- (гиперболический арксинус) ---------------------------------- test29 = asinh ch2 ----------------------------------------------------- -- (30) вычисление значения комплексной функции acosh -- (гиперболический арккосинус) ------------------------------------ test30 = acosh ch2 ----------------------------------------------------- -- (31) вычисление значения комплексной функции atanh -- (гиперболический арктангенс). -- Внимание! Возможны непонятные результаты: -- > atanh (tanh ch1) -------------------------- test31 = atanh ch2
На следующем шаге мы рассмотрим работу с битами.