Python. Комплексные числа. Модуль cmath. Создание комплексного числа

Комплексные числа. Модуль cmath. Создание комплексного числа. Класс complex. Функции и константы модуля cmath


Содержание


Поиск на других ресурсах:

1. Модуль cmath. Назначение. Общие сведения

В языке программирования Python для работы с комплексными числами используется модуль cmath. Модуль содержит набор функций для обработки комплексных чисел.
Чтобы использовать средства модуля cmath, сначала его нужно подключить директивой import

import cmath

Модуль всегда доступен из программы.

Функции модуля cmath оперируют аргументами

  • целых чисел;
  • чисел с плавающей запятой (floating point types)
  • комплексных чисел. Комплексное число создается функцией complex().

 

2. Создание комплексного числа. Класс complex. Способы создания комплексного числа

Для создания комплексного числа используется класс complex. Чтобы создать экземпляр класса complex (комплексное число) можно использовать один из двух способов.

Способ 1. Задавание непосредственно вещественной и мнимой части комплексного числа

complexNumber = complex([real[, imag]])

здесь

  • complexNumber – создаваемое комплексное число. Число представлено как real+imag*1j;
  • real – вещественная часть комплексного числа;
  • imag – мнимая часть комплексного числа.

При этом функция complex() может получать разное количество аргументов:

  • ноль аргументов. Это означает, что будет сформировано число 0j;
  • один аргумент. В этом случае будет использоваться комплексное число без мнимой (j) части;
  • два аргумента. Первый аргумент — вещественная часть, второй аргумент — мнимая часть.

Каждый из аргументов может быть числового типа, или даже комплексным числом.

Способ 2. Указание комплексного числа в виде строки

complexNumber = complex(complex_number_as_string)

здесь

  • complexNumber – создаваемое комплексное число;
  • complex_number_as_string — строка, отражающая комплексное число (например, «2+3j», «1-2j» и т.д.). При представлении комплексного числа, строка не должна содержать символов пробел ‘ ‘, в противном случае будет сгенерировано исключение ValueError.

При этом способе функция complex() получает только один аргумент — строку. Два аргумента передавать запрещено.

 

3. Как получить вещественную и мнимую части комплексного числа? Пример

После создания комплексного числа функцией complex() (см. предыдущий пункт) можно получить доступ к его составляющим с помощью следующего обращения:

  • z.real — действительная часть комплексного числа z;
  • z.imag — мнимая часть комплексного числа z.

Пример.

# Подключить модуль cmath
import cmath

# Создать комплексное число z = 7-8j
z = complex(7, -8)

# Получить составляющие числа z
re = z.real # вещественная часть
im = z.imag # мнимая часть

# Вывести полученные составляющие на экран
print('re = ', re)
print('im = ', im)

Результат выполнения программы

re = 7.0
im = -8.0

 

4. Пример, демонстрирующий создание комплексного числа различными способами

В примере создаются комплексные числа разными способами с помощью класса complex.

# Метод complex() - создает объект комплексного числа
# Способ 1.
# 1.1. Вызов метода complex() без параметров
num1 = complex() # num1 = 0j
print("num1 = ", num1)

# 1.2. Вызов метода complex() с 1 параметром типа float
num2 = complex(5.22) # num2 = (5.22+0j)
print("num2 = ", num2)

# 1.3. Вызов метода complex() с 2 параметрами типа int
num3 = complex(7, -4) # num3 = (7-4j)
print('num3 = ', num3)

# 2. Вызов метода complex() с передачей строки
num4 = complex('0+0j') # num4 = 0j
print('num4 = ', num4)

num5 = complex("2+8j") # num5 = (2+8j)
print('num5 = ', num5)

# здесь ошибка - строка содержит пробелы
# num6 = complex('1 - 4j')

# 3. Создание комплексного числа на основании других комплексных чисел
num6 = complex(num3, num5) # num6 = (-1-2j)
print('num6 = ', num6)

Результат выполнения программы

num1 = 0j
num2 = (5.22+0j)
num3 = (7-4j)
num4 = 0j
num5 = (2+8j)
num6 = (-1-2j)

 

5. Состав модуля cmath. Группы функций для работы с комплексными числами

В модуле cmath функции для работы с комплексными числами сгруппированы следующим образом:

  • функции преобразования в полярные координаты и наоборот;
  • степенные и логарифмические функции;
  • тригонометрические функции;
  • гиперболические функции;
  • функции классификаций.

 

5.1. Функции преобразования в полярные координаты и наоборот

К этой категории функций относятся следующие:

  • cmath.phase(x) — возвращает фазу от аргумента x в виде числа типа float;
  • cmath.polar() — возвращает представление x в полярных координатах;
  • cmath.rect() — возвращает комплексное число из полярных координат.

 

5.2. Степенные и логарифмические функции

В модуле cmath реализованы следующие степенные и логарифмические функции, оперирующие комплексными числами:

  • cmath.exp(x) — возвращает экспоненту e, возведенную в степень x, где x может быть комплексным числом. Экспонента e является основой натурального логарифма;
  • cmath.log(x) — возвращает натуральный логарифм от аргумента x с заданным основанием;
  • cmath.log10(x) — возвращает логарифм с основанием 10 от аргумента x;
  • cmath.sqrt(x) — возвращает корень квадратный от аргумента x.

 

5.3. Тригонометрические функции

Модуль cmath содержит 6 тригонометрических функций, которые обрабатывают комплексные числа:

  • cmath.acos(x) — возвращает арккосинус от аргумента x;
  • cmath.asin(x) — возвращает арксинус от аргумента x;
  • cmath.atan(x) — определяет арктангенс от аргумента x;
  • cmath.cos(x) — возвращает косинус от аргумента x;
  • cmath.sin(x) — возвращает синус от аргумента x;
  • cmath.tan(x) — возвращает тангенс от аргумента x.

 

5.4. Гиперболические функции

Модуль cmath содержит реализацию следующих гиперболических функций, которые оперируют комплексными числами:

  • cmath.acosh(x) — возвращает гиперболический арккосинус от аргумента x;
  • cmath.asinh(x) — возвращает гиперболический арксинус от аргумента x;
  • cmath.atanh(x) — возвращает гиперболический арктангенс от аргумента x;
  • cmath.cosh(x) — возвращает гиперболический косинус от аргумента x;
  • cmath.sinh(x) — возвращает гиперболический синус от аргумента x;
  • cmath.tanh(x) — возвращает гиперболический тангенс от аргумента x.

 

5.5. Функции классификаций

К числу функций классификаций модуля cmath относятся следующие:

  • cmath.isinfinite(x) — определяет, есть ли вещественная и мнимая часть комплексного числа x конечными;
  • cmath.isinf(x) — определяет, есть ли вещественная или мнимая части комплексного числа x бесконечными;
  • cmath.isnan(x) — определяет, имеют ли значение Nan вещественная или мнимая части комплексного числа;
  • cmath.isclose(x) — определяет близость двух значений между собой.

 

5.6. Константы модуля cmath. Пример

Модуль cmath содержит ряд широко применяемых констант:

  • cmath.pi — математическая константа π, представлена как тип float;
  • cmath.e — математическая экспонента e, представлена как тип float;
  • cmath.tau — математическая константа τ (тау), представлена как тип float;
  • cmath.inf — бесконечность. Это значение эквивалентно значению float(‘inf’);
  • cmath.infj — комплексное число, в котором вещественная часть равна 0, мнимая часть равна бесконечности. Это число эквивалентно числу complex(0.0, float(‘inf’));
  • cmath.nanj — комплексное число, в котором вещественная часть равна 0, мнимая равна значению NaN. Это число можно получить путем вызова complex(0.0, float(‘nan’)).

Пример. В примере выводятся на экран значения констант модуля cmath.

# Подключить модуль cmath
import cmath

# Вывести значения констант модуля cmath
print(cmath.pi) # 3.141592653589793
print(cmath.e) # 2.718281828459045
print(cmath.tau) # 6.283185307179586
print(cmath.inf) # inf
print(cmath.infj) # infj
print(cmath.nan) # nan
print(cmath.nanj) # nanj

Результат выполнения программы

3.141592653589793
2.718281828459045
6.283185307179586
inf
infj
nan
nanj

 


Связанные темы