Рубрики
Без рубрики

Комплекс Python Complex – CMATH

Комплексные номера Python, модуль Python CMATH, номер Python Complex Real и мнимая часть, полярной угол, функции журнала, комплексные числа в примере Python

Автор оригинала: Pankaj Kumar.

Комплексное число создано из двух действительных чисел. Номер комплекса Python может быть создан с использованием сложной функции (), а также с использованием прямого назначения прямого назначения.

Комплексные числа в основном используются там, где мы определяем что-то, используя два реальных числа. Например, элемент цепи, который определяется напряжением (V) и током (I). Они в основном используются в геометрии, исчислении и научных расчетах.

Комплексные номера Python

Давайте сначала научитесь создавать сложные числа в Python.

c = 1 + 2j
print(type(c))
print(c)

c1 = complex(2, 4)
print(type(c1))
print(c1)

Выход:


(1+2j)

(2+4j)

Комплексные номера Python имеют тип комплекс Отказ Каждое комплексное число содержит одну реальную часть и одну воображаемую часть.

Атрибуты и функции комплексных номеров Python

Давайте посмотрим на некоторые атрибуты и функции экземпляра сложных чисел.

c = 1 + 2j
print('Real Part =', c.real)
print('Imaginary Part =', c.imag)
print('Complex conjugate =', c.conjugate())

Выход:

Real Part = 1.0
Imaginary Part = 2.0
Complex conjugate = (1-2j)

Комплексные числа математические расчеты

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

c = 1 + 2j
c1 = 2 + 4j
print('Addition =', c + c1)
print('Subtraction =', c - c1)
print('Multiplication =', c * c1)
print('Division =', c1 / c)

Выход:

Addition = (3+6j)
Subtraction = (-1-2j)
Multiplication = (-6+8j)
Division = (2+0j)

Комплексные номера не поддерживают операторы сравнения. Если мы попытаемся выполнить C Тогда сообщение об ошибке будет брошено как TypeError: «<» не поддерживается между экземплярами «Комплекс» и «Комплекс» Отказ

Python CMATH модуль

Модуль Python CMATH обеспечивает доступ к математическим функциям для комплексных чисел. Давайте посмотрим на некоторые важные особенности комплексных чисел и как мы можем использовать функцию CMATH Module для расчета их.

Фаза сложного числа

Фаза сложного числа является угол между реальной осью и вектором, представляющим мнимую часть. Ниже изображения иллюстрирует фазу сложного числа и как получить это значение с помощью модулей CMATH и Math.

Обратите внимание, что фаза, возвращаемая математическими модулями CMATH, находятся в радианах, мы можем использовать numpy.degrees () Функция для преобразования его в градусы. Диапазон фазы от -π до + π (-PI до + PI) в радианах и эквивалентно -180 до +180 градусов.

import cmath, math, numpy

c = 2 + 2j

# phase
phase = cmath.phase(c)
print('2 + 2j Phase =', phase)
print('Phase in Degrees =', numpy.degrees(phase))
print('-2 - 2j Phase =', cmath.phase(-2 - 2j), 'radians. Degrees =', numpy.degrees(cmath.phase(-2 - 2j)))

# we can get phase using math.atan2() function too
print('Complex number phase using math.atan2() =', math.atan2(2, 1))

Выход:

2 + 2j Phase = 0.7853981633974483
Phase in Degrees = 45.0
-2 - 2j Phase = -2.356194490192345 radians. Degrees = -135.0
Complex number phase using math.atan2() = 1.1071487177940904

Полярные и прямоугольные координаты

Мы можем написать сложное число в полярных координатах, что является кортежом модуля и фаза комплексного числа.

Мы можем использовать функцию CMATH.RECT () для создания комплексного числа в прямоугольном формате путем передачи модуля и фазы в качестве аргументов.

c = 1 + 2j

modulus = abs(c)
phase = cmath.phase(c)
polar = cmath.polar(c)

print('Modulus =', modulus)
print('Phase =', phase)
print('Polar Coordinates =', polar)

print('Rectangular Coordinates =', cmath.rect(modulus, phase))

Выход:

Modulus = 2.23606797749979
Phase = 1.1071487177940904
Polar Coordinates = (2.23606797749979, 1.1071487177940904)
Rectangular Coordinates = (1.0000000000000002+2j)

Константы модуля CMATH

В модуле CMATH есть куча констант, которые используются в расчетах комплексных чисел.

print('π =', cmath.pi)
print('e =', cmath.e)
print('tau =', cmath.tau)
print('Positive infinity =', cmath.inf)
print('Positive Complex infinity =', cmath.infj)
print('NaN =', cmath.nan)
print('NaN Complex =', cmath.nanj)

Выход:

π = 3.141592653589793
e = 2.718281828459045
tau = 6.283185307179586
Positive infinity = inf
Positive Complex infinity = infj
NaN = nan
NaN Complex = nanj

Функции питания и журнала

Существуют некоторые полезные функции для логарифмических и энергоэнергических операций.

c = 2 + 2j
print('e^c =', cmath.exp(c))
print('log2(c) =', cmath.log(c, 2))
print('log10(c) =', cmath.log10(c))
print('sqrt(c) =', cmath.sqrt(c))

Выход:

e^c = (-3.074932320639359+6.71884969742825j)
log2(c) = (1.5000000000000002+1.1330900354567985j)
log10(c) = (0.4515449934959718+0.3410940884604603j)
sqrt(c) = (1.5537739740300374+0.6435942529055826j)

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

c = 2 + 2j
print('arc sine =', cmath.asin(c))
print('arc cosine =', cmath.acos(c))
print('arc tangent =', cmath.atan(c))

print('sine =', cmath.sin(c))
print('cosine =', cmath.cos(c))
print('tangent =', cmath.tan(c))

Выход:

arc sine = (0.7542491446980459+1.7343245214879666j)
arc cosine = (0.8165471820968505-1.7343245214879666j)
arc tangent = (1.311223269671635+0.2388778612568591j)
sine = (3.4209548611170133-1.5093064853236156j)
cosine = (-1.5656258353157435-3.2978948363112366j)
tangent = (-0.028392952868232294+1.0238355945704727j)

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

c = 2 + 2j
print('inverse hyperbolic sine =', cmath.asinh(c))
print('inverse hyperbolic cosine =', cmath.acosh(c))
print('inverse hyperbolic tangent =', cmath.atanh(c))

print('hyperbolic sine =', cmath.sinh(c))
print('hyperbolic cosine =', cmath.cosh(c))
print('hyperbolic tangent =', cmath.tanh(c))

Выход:

inverse hyperbolic sine = (1.7343245214879666+0.7542491446980459j)
inverse hyperbolic cosine = (1.7343245214879666+0.8165471820968505j)
inverse hyperbolic tangent = (0.2388778612568591+1.311223269671635j)
hyperbolic sine = (-1.5093064853236156+3.4209548611170133j)
hyperbolic cosine = (-1.5656258353157435+3.2978948363112366j)
hyperbolic tangent = (1.0238355945704727-0.028392952868232294j)

Классификация функций

Есть несколько разных функций для проверки, если комплексное число конечно, бесконечно или нан. Также есть функция для проверки, если два комплексных номера близки.

print(cmath.isfinite(2 + 2j))  # True
print(cmath.isfinite(cmath.inf + 2j))  # False

print(cmath.isinf(2 + 2j))  # False
print(cmath.isinf(cmath.inf + 2j))  # True
print(cmath.isinf(cmath.nan + 2j))  # False


print(cmath.isnan(2 + 2j))  # False
print(cmath.isnan(cmath.inf + 2j))  # False
print(cmath.isnan(cmath.nan + 2j))  # True

print(cmath.isclose(2+2j, 2.01+1.9j, rel_tol=0.05))  # True
print(cmath.isclose(2+2j, 2.01+1.9j, abs_tol=0.005))  # False

Выход каждого утверждения предоставляется в комментариях.

Ссылка: API док