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

 


Споріднені теми