Przejdź do treści
Przewodnik po Varlig
Strona główna Varlig

Liczby zespolone

Liczba zespolona ma część rzeczywistą i urojoną, zapisywaną z i, pierwiastkiem z −1. Ta strona opisuje zapis i arytmetykę liczb zespolonych, moduł i argument, pierwiastki z liczb ujemnych oraz funkcje obsługujące wartości zespolone.

Przydaje się przy równaniach kwadratowych bez pierwiastków rzeczywistych, obwodach prądu przemiennego, sygnałach i sprawdzaniu zadań z analizy zespolonej.

Zapisywanie liczb zespolonych

calc
2 + 3i daje 2 + 3i
complex(3, -4) daje 3 - 4i
i^2 daje -1

Umieść i bezpośrednio po liczbie dla części urojonej, jak w 3i lub 1.5i, albo użyj samego i. complex(real, imaginary) tworzy tę samą wartość z dwóch części, co przydaje się dla nazw: complex(resistance, reactance). Obie części muszą być liczbami bez jednostek.

i oznacza jednostkę urojoną tylko wtedy, gdy nic innego w notatce nie ma nazwy i. Zdefiniowanie wartości lub własnej jednostki i nadaje jej pierwszeństwo:

calc
i = 5
2 + 3i daje 17
complex(2, 3) daje 2 + 3i

Tutaj 3i stało się 3 × 5, a wiersz dał 17. Nazwy przechodzą między blokami obliczeniowymi notatki, więc wcześniejsze i = … ma ten sam efekt. Unikaj nazwy i w notatkach z liczbami zespolonymi. complex(2, 3) nie korzysta z tej nazwy, więc nadal działa.

Arytmetyka

calc
(2 + 3i) + (1 - 5i) daje 3 - 2i
(1 + 2i) * (3 - i) daje 5 + 5i
(2 + 3i) * (2 - 3i) daje 13
10 / (3 + 4i) daje 1.2 - 1.6i
(1 + i)^8 daje 16

Dodawanie, odejmowanie, mnożenie, dzielenie i potęgi całkowite są dokładne. Gdy część urojona wyniku wynosi zero, jak w (2 + 3i) * (2 - 3i), wynik jest wyświetlany jako zwykła liczba. Przy mnożeniu i dzieleniu otaczaj liczby zespolone nawiasami, aby (2 + 3i) * (2 - 3i) nie zostało odczytane jako 2 + (3i * 2) - 3i.

Części liczby zespolonej

calc
z = 3 + 4i
real(z) daje 3
imag(z) daje 4
conj(z) daje 3 - 4i
abs(z) daje 5
arg(1 + i) daje 0.7853981634
arg(1 + i) rad in degrees daje 45°
Funkcja Wynik
real(z) Część rzeczywista
imag(z) Część urojona jako liczba bez jednostki
conj(z) Sprzężenie zespolone: ta sama część rzeczywista, przeciwny znak części urojonej
abs(z) Moduł: odległość od zera
arg(z) Argument: kąt względem dodatniej półosi rzeczywistej, w radianach

arg zwraca liczbę radianów od −π do π, bez jednostki. Aby zobaczyć stopnie, oznacz ją jako radiany i przelicz, jak w ostatnim wierszu. W przeciwną stronę, od modułu i kąta do liczby zespolonej, użyj exp: 2 * exp(i * pi / 3) daje 1 + 1.7320508076i.

Pierwiastki kwadratowe z liczb ujemnych

Pierwiastek ze zwykłej liczby ujemnej jest obliczeniem w liczbach rzeczywistych, więc sqrt(-16) pokazuje błąd z podpowiedzią: Error: imaginary number. For a complex answer, write sqrt(-16 + 0i). Aby otrzymać pierwiastek zespolony, zapisz wejście jako liczbę zespoloną: dodaj 0i lub użyj complex(…, 0):

calc
sqrt(-16 + 0i) daje 4i
sqrt(complex(-16, 0)) daje 4i
sqrt(3 + 4i) daje 2 + i
sqrt(2i) daje 1 + i

sqrt zwraca pierwiastek główny, z dodatnią częścią rzeczywistą lub, dla liczb ujemnych, dodatnią częścią urojoną. Drugi pierwiastek jest jego liczbą przeciwną.

Wartość zapisana jako zespolona pozostaje zespolona, nawet gdy jej część urojona wynosi zero. Możesz przypisać ją do nazwy lub wykonać dalsze obliczenia: po x = -16 + 0i wyrażenie sqrt(x) daje 4i, choć x wyświetla się jako -16.

Dzięki temu wzór na pierwiastki równania kwadratowego działa dla każdego takiego równania:

calc
# Roots of x^2 + 2x + 5 = 0
a = 1
b = 2
c = 5
disc = b^2 - 4*a*c daje -16
(-b + sqrt(disc + 0i)) / (2*a) daje -1 + 2i
(-b - sqrt(disc + 0i)) / (2*a) daje -1 - 2i

Pierwiastki sześcienne również zwracają pierwiastek główny, co może zaskoczyć dla liczb ujemnych:

calc
cbrt(-8) daje -2
cbrt(-8 + 0i) daje 1 + 1.7320508076i

Oba wyniki są pierwiastkami sześciennymi z −8. Wariant rzeczywisty zwraca pierwiastek rzeczywisty, a zespolony — główny pierwiastek zespolony.

Funkcje liczby zespolonej

calc
exp(i * pi) daje -1
ln(-1 + 0i) daje 3.1415926536i
i^i daje 0.2078795764
cos(i) daje 1.5430806348
sinh(i) daje 0.8414709848i
2^i daje 0.7692389014 + 0.6389612763i

Te funkcje przyjmują wartości zespolone:

  • sin, cos, tan oraz funkcje odwrotne asin, acos, atan
  • sinh, cosh, tanh oraz funkcje odwrotne asinh, acosh, atanh
  • exp, ln, log lub log10, log2, sqrt i cbrt
  • potęgi o wykładnikach ułamkowych lub zespolonych, takie jak i^0.5 lub 2^i

Obliczenia używają binarnej arytmetyki zmiennoprzecinkowej, więc wyniki są przybliżone. Pomijalnie małe pozostałości zaokrągleń wyświetlają się jako 0, dlatego exp(i * pi) wygląda jak −1, zgodnie z podręcznikiem. Zapisana wartość zachowuje jednak wszystkie cyfry. Przy porównywaniu sprawdzaj małą różnicę, na przykład abs(exp(i * pi) + 1) < 1e-9, zamiast używać ==.

Każda funkcja zwraca jeden wynik z gałęzi głównej. Liczba zespolona ma nieskończenie wiele logarytmów i kilka pierwiastków; otrzymujesz standardowy wybór. Podobnie jak w sqrt, wejścia rzeczywiste pozostają rzeczywiste: ln(-1) i log(-100) pokazują błąd liczby urojonej z proponowaną postacią zespoloną, a ln(-1 + 0i) daje πi. Logarytm z zera jest błędem.

Funkcje mające sens tylko dla liczb rzeczywistych, takie jak floor i round, nie przyjmują wartości zespolonych.

Porównywanie liczb zespolonych

calc
2 + 3i == complex(2, 3) daje true
2 + 3i != 2 - 3i daje true
complex(3, 0) >= 3 daje true
abs(3 + 4i) > abs(1 + 2i) daje true

== i != działają dla dowolnych wartości zespolonych. <, <=, > i >= działają tylko wtedy, gdy obie części urojone wynoszą zero, ponieważ liczb zespolonych nie da się naturalnie uporządkować: i < 2 jest błędem. Aby porównać wielkości, użyj modułów przez abs, jak w ostatnim wierszu. Liczb zespolonych nie można sortować.

Pełne zasady są w dokumentacji zaawansowanej matematyki.

Przykład całościowy

Oto sprawdzenie zadania z obwodu prądu przemiennego: rezystor 30 Ω i cewka o reaktancji 40 Ω połączone szeregowo przy zasilaniu 10 V:

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

Impedancja wynosi 30 + 40i, a jej moduł 50 Ω, więc prąd wynosi 0,2 A i jest opóźniony względem napięcia o około 53,1°. Inżynierowie często oznaczają jednostkę urojoną przez j; w Varlig jest to zawsze i. Omy, wolty i ampery zapisuje się w komentarzu, ponieważ części liczby zespolonej nie mogą mieć jednostek.