Перейти до вмісту
Посібник Varlig
Головна сторінка Varlig

Комплексні числа

Комплексне число має дійсну й уявну частини; уявну позначають i, квадратним коренем із −1. Ця сторінка описує запис комплексних чисел, арифметичні дії, модуль і аргумент, квадратні корені від’ємних чисел та функції, що приймають комплексні значення.

Це стане в пригоді для квадратних рівнянь без дійсних коренів, кіл змінного струму, сигналів і перевірки завдань із комплексного аналізу.

Запис комплексних чисел

calc
2 + 3i дорівнює 2 + 3i
complex(3, -4) дорівнює 3 - 4i
i^2 дорівнює -1

Пишіть i відразу після числа, наприклад 3i або 1.5i, чи використовуйте i окремо. complex(real, imaginary) створює те саме значення з двох частин, що зручно для іменованих величин: complex(resistance, reactance). Обидві частини мають бути числами без одиниць.

i означає уявну одиницю, лише поки в нотатці немає іншого i. Якщо визначити ім’я або власну одиницю i, вона матиме пріоритет:

calc
i = 5
2 + 3i дорівнює 17
complex(2, 3) дорівнює 2 + 3i

Тут 3i стало 3 × 5, тому рядок дав 17. Імена діють у всіх блоках обчислень нотатки, тож будь-яке попереднє i = … має такий самий ефект. Не використовуйте i як ім’я в нотатках із комплексними числами. complex(2, 3) не залежить від цього імені й працює далі.

Арифметика

calc
(2 + 3i) + (1 - 5i) дорівнює 3 - 2i
(1 + 2i) * (3 - i) дорівнює 5 + 5i
(2 + 3i) * (2 - 3i) дорівнює 13
10 / (3 + 4i) дорівнює 1.2 - 1.6i
(1 + i)^8 дорівнює 16

Додавання, віднімання, множення, ділення та цілі степені обчислюються точно. Коли уявна частина результату нульова, як у (2 + 3i) * (2 - 3i), відповідь показується звичайним числом. Для множення й ділення беріть кожне комплексне число в дужки, щоб (2 + 3i) * (2 - 3i) не трактувалося як 2 + (3i * 2) - 3i.

Частини комплексного числа

calc
z = 3 + 4i
real(z) дорівнює 3
imag(z) дорівнює 4
conj(z) дорівнює 3 - 4i
abs(z) дорівнює 5
arg(1 + i) дорівнює 0.7853981634
arg(1 + i) rad in degrees дорівнює 45°
Функція Повертає
real(z) Дійсну частину
imag(z) Уявну частину як число без одиниць
conj(z) Комплексно-спряжене число: та сама дійсна частина й уявна частина з протилежним знаком
abs(z) Модуль: відстань від нуля
arg(z) Аргумент: кут від додатної дійсної півосі в радіанах

arg повертає число радіанів без одиниці від −π до π. Для градусів позначте його як радіани й перетворіть, як в останньому рядку. Щоб отримати комплексне число з модуля й кута, використайте exp: 2 * exp(i * pi / 3) дає 1 + 1.7320508076i.

Квадратні корені від'ємних чисел

Квадратний корінь звичайного від’ємного числа обчислюється в дійсній області, тому sqrt(-16) показує помилку з підказкою: Error: imaginary number. For a complex answer, write sqrt(-16 + 0i). Для комплексного кореня запишіть число як комплексне: додайте 0i або використайте complex(…, 0):

calc
sqrt(-16 + 0i) дорівнює 4i
sqrt(complex(-16, 0)) дорівнює 4i
sqrt(3 + 4i) дорівнює 2 + i
sqrt(2i) дорівнює 1 + i

sqrt повертає головний корінь із додатною дійсною частиною або, для від’ємного числа, додатною уявною частиною. Другий квадратний корінь має протилежний знак.

Значення, записане як комплексне, залишається комплексним навіть із нульовою уявною частиною. Його можна назвати або спочатку використати в обчисленнях: після x = -16 + 0i вираз sqrt(x) дає 4i, хоча x показується як -16.

Завдяки цьому формула коренів працює для будь-якого квадратного рівняння:

calc
# Roots of x^2 + 2x + 5 = 0
a = 1
b = 2
c = 5
disc = b^2 - 4*a*c дорівнює -16
(-b + sqrt(disc + 0i)) / (2*a) дорівнює -1 + 2i
(-b - sqrt(disc + 0i)) / (2*a) дорівнює -1 - 2i

Кубічні корені також підпорядковуються правилу головного кореня, що може здивувати для від’ємних чисел:

calc
cbrt(-8) дорівнює -2
cbrt(-8 + 0i) дорівнює 1 + 1.7320508076i

Обидва результати є кубічними коренями −8. Дійсна форма повертає дійсний корінь, комплексна — головний комплексний.

Функції комплексного числа

calc
exp(i * pi) дорівнює -1
ln(-1 + 0i) дорівнює 3.1415926536i
i^i дорівнює 0.2078795764
cos(i) дорівнює 1.5430806348
sinh(i) дорівнює 0.8414709848i
2^i дорівнює 0.7692389014 + 0.6389612763i

Ці функції приймають комплексні значення:

  • sin, cos, tan та обернені до них asin, acos, atan
  • sinh, cosh, tanh та обернені до них asinh, acosh, atanh
  • exp, ln, log (або log10), log2, sqrt і cbrt
  • степені з дробовими або комплексними показниками, наприклад i^0.5 чи 2^i

Вони використовують двійкові числа з рухомою комою, тому відповіді є близькими наближеннями. Незначні залишки округлення показуються як 0: exp(i * pi) відображається як −1, як і в підручнику. Збережене значення містить усі цифри, тому порівнюйте результати за малою різницею, наприклад abs(exp(i * pi) + 1) < 1e-9, замість ==.

Кожна функція повертає одну відповідь із головної гілки. Комплексне число має нескінченно багато логарифмів і кілька коренів; ви отримуєте головне значення. Як і для sqrt, дійсні аргументи залишаються дійсними: ln(-1) та log(-100) показують помилку уявного числа з підказкою комплексної форми, а ln(-1 + 0i) дає πi. Логарифм нуля спричиняє помилку.

Функції, що мають зміст лише для дійсних чисел, як-от floor і round, не приймають комплексні значення.

Порівняння комплексних чисел

calc
2 + 3i == complex(2, 3) дорівнює true
2 + 3i != 2 - 3i дорівнює true
complex(3, 0) >= 3 дорівнює true
abs(3 + 4i) > abs(1 + 2i) дорівнює true

== і != працюють для будь-яких комплексних значень. <, <=, > і >= — лише коли уявні частини обох операндів нульові, оскільки комплексні числа не мають природного порядку: i < 2 дає помилку. Для порівняння величини використовуйте модулі через abs, як в останньому рядку. Комплексні числа не можна сортувати.

Повні правила наведено в довіднику з вищої математики.

Поєднання можливостей

Перевіримо задачу про коло змінного струму: резистор 30 Ом і котушка з реактивним опором 40 Ом з’єднані послідовно та підключені до джерела 10 В:

calc
# Series circuit: 30 Ω resistor, 40 Ω reactance, 10 V supply
resistance = 30
reactance = 40
z = complex(resistance, reactance) дорівнює 30 + 40i
abs(z) дорівнює 50
current = 10 / z дорівнює 0.12 - 0.16i
abs(current) дорівнює 0.2
arg(z) rad in degrees to 1 dp дорівнює 53.1°

Імпеданс дорівнює 30 + 40i, його модуль — 50 Ом, отже струм становить 0,2 А й відстає від напруги приблизно на 53,1°. Інженери часто позначають уявну одиницю j; у Varlig це завжди i. Оми, вольти й ампери залишаються в коментарі, оскільки частини комплексного числа не можуть мати одиниць.