ИМЯ
complex − основы комплексной математики
ОБЗОР
#include <complex.h>
ОПИСАНИЕ
Комплексные
числа
являются
чилами
вида z = a+b*i,
где a и b
являются
вещественными
числами, а i
= sqrt(-1)
(квадратный
корень из
минус
единицы,
так
называемая
мнимая
единица --
прим.пер.),
так что i*i = -1.
Существуют
и другие
способы
представления
комплесных
чисел.
Пара
вещественных
чисел (a,b)
может
быть
представлена
как точка
на
плоскости,
которая
задаётся
координатными
осями X и Y.
Эта же
самая
точка
может
быть
также
описана
парой
вещественных
чисел (r,phi),
где r - это
дистанция
от
нулевой
точки
отсчёта 0, а
phi - угол
между
осью X и
прямой 0z.
Итак, z = r*exp(i*phi) =
r*(cos(phi)+i*sin(phi)).
Основные
операции
с
комплесными
числами,
заданными
в виде z = a+b*i и w =
c+d*i
следующие:
сложение:
z+w = (a+c) + (b+d)*i
умножение:
z*w = (a*c - b*d) + (a*d + b*c)*i
деление: z/w =
((a*c + b*d)/(c*c + d*d)) + ((b*c - a*d)/(c*c +
d*d))*i
Почти все математические функции имеют своих комплексных собратьев, но есть и только комплексные функции.
ПРИМЕР
Ваш C-компилятор может работать с комплексными числами, если он поддерживает стандарт C99. Связывание (компановку) нужно производить с опцией -lm (чтобы подключилась математическая библиотека -- прим.пер.). Здесь мнимая единица представлена как I.
/* check that exp(i*pi) == -1 */
#include <math.h> |
/* for atan */ |
#include <complex.h>
main() {
double pi = 4*atan(1); | |
complex z = cexp(I*pi); | |
printf("%f+%f*i\n", creal(z), cimag(z)); |
}
СМОТРИ ТАКЖЕ
cabs(3), carg(3), cexp(3), cimag(3), creal(3)
ПЕРЕВОД
Перевёл с английского Виктор Вислобоков <corochoone [AT] perm.ru> 2004