Треки
/
Factor
Factor
/
Вправи
/
Комплексні числа
Комплексні числа

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

Середня

Вказівки

Комплексне число записують у вигляді z = a + b * i, де:

  • a називають дійсною частиною (дійсним числом),

  • b називають уявною частиною (теж дійсним числом), а

  • i називають уявною одиницею, для якої виконується i^2 = -1.

Операції над комплексними числами

Спряження

Спряжене до комплексного числа z = a + b * i обчислюють так:

zc = a - b * i

Абсолютна величина

Абсолютну величину (або модуль) числа z означують так:

|z| = sqrt(a^2 + b^2)

Квадрат абсолютної величини обчислюють як добуток z і спряженого до нього zc:

|z|^2 = z * zc = a^2 + b^2

Додавання

Суму двох комплексних чисел z1 = a + b * i і z2 = c + d * i обчислюють, додаючи їхні дійсні та уявні частини окремо:

z1 + z2 = (a + b * i) + (c + d * i)
        = (a + c) + (b + d) * i

Віднімання

Різницю двох комплексних чисел отримують, віднімаючи їхні відповідні частини:

z1 - z2 = (a + b * i) - (c + d * i)
        = (a - c) + (b - d) * i

Множення

Добуток двох комплексних чисел означують так:

z1 * z2 = (a + b * i) * (c + d * i)
        = (a * c - b * d) + (b * c + a * d) * i

Обернене число

Обернене до ненульового комплексного числа задають так:

1 / z = 1 / (a + b * i)
      = a / (a^2 + b^2) - b / (a^2 + b^2) * i

Ділення

Ділення одного комплексного числа на інше задають так:

z1 / z2 = z1 * (1 / z2)
        = (a + b * i) / (c + d * i)
        = (a * c + b * d) / (c^2 + d^2) + (b * c - a * d) / (c^2 + d^2) * i

Піднесення до степеня

Піднесення e (основи натурального логарифма) до комплексного показника можна виразити за допомогою формули Ейлера:

e^(a + b * i) = e^a * e^(b * i)
              = e^a * (cos(b) + i * sin(b))

Вимоги до реалізації

Оскільки вбудованою підтримкою комплексних чисел користуватися не можна, реалізуймо такі операції:

  • додавання двох комплексних чисел
  • віднімання двох комплексних чисел
  • множення двох комплексних чисел
  • ділення двох комплексних чисел
  • спряження комплексного числа
  • абсолютна величина комплексного числа
  • піднесення e (основи натурального логарифма) до комплексного степеня

Слова

Визначте кортеж cmplx із слотами real та imaginary. Засоби доступу до слотів real>> та imaginary>> надаються автоматично разом із визначенням кортежу, і саме їх тести використовують, щоб читати компоненти.

  • <cmplx> ( real imag -- cmplx ): створити комплексне число.
  • >cmplx ( pair -- cmplx ): побудувати cmplx з { real imaginary }.
  • cmplx>pair ( cmplx -- pair ): повернути { real imaginary }.
  • c+ ( a b -- c ), c- ( a b -- c ), c* ( a b -- c ), c/ ( a b -- c ): арифметичні дії над двома комплексними числами.
  • c-abs ( a -- |a| ): абсолютне значення (дійсне число).
  • c-conj ( a -- a* ): комплексно спряжене число.
  • c-exp ( z -- e^z ): комплексна експонента.

Узагальнені слова MATH: у Factor (+, -, *, /) виконують диспетчеризацію лише в межах вбудованої математичної ієрархії, тому в цій вправі ми використовуємо окремі назви слів, а не методи цих узагальнених слів.

Тести на арифметику, де змішуються дійсні числа з комплексними, виключено: кожна операція тут виконується між двома значеннями cmplx.


Джерело

WikipediaПосилання відкривається в новому вікні або вкладці
Редагувати через GitHub Посилання відкривається в новому вікні або вкладці
Factor Exercism

Час розпочати Комплексні числа?

Зареєструйтеся на Exercism, щоб вивчати й опановувати Factor, а також 47 концепцій163 вправи та справжнє наставництво від людей, і все це безкоштовно.