complex - основы комплексной математики
Комплексные числа — это числа вида 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.
/* проверка что exp(i * pi) == -1 */
#include <math.h> /* для atan */
#include <stdio.h>
#include <complex.h>
int
main(void)
{
double pi = 4 * atan(1.0);
double complex z = cexp(I * pi);
printf("%f + %f * i\n", creal(z), cimag(z));
} cabs(3), cacos(3), cacosh(3), carg(3)EN, casin(3), casinh(3)EN, catan(3)EN, catanh(3)EN, ccos(3)EN, ccosh(3)EN, cerf(3), cexp(3)EN, cexp2(3)EN, cimag(3), clog(3), clog10(3)EN, clog2(3)EN, conj(3)EN, cpow(3)EN, cproj(3), creal(3), csin(3)EN, csinh(3)EN, csqrt(3), ctan(3)EN, ctanh(3)EN
Русский перевод этой страницы руководства был сделан Azamat Hackimov <azamat.hackimov@gmail.com>, Dmitriy S. Seregin <dseregin@59.ru>, Dmitry Bolkhovskikh <d20052005@yandex.ru>, Katrin Kutepova <blackkatelv@gmail.com>, Yuri Kozlov <yuray@komyakino.ru> и Иван Павлов <pavia00@gmail.com>
Этот перевод является бесплатной документацией; прочитайте Стандартную общественную лицензию GNU версии 3 или более позднюю, чтобы узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ.
Если вы обнаружите ошибки в переводе этой страницы руководства, пожалуйста, отправьте электронное письмо на man-pages-ru-talks@lists.sourceforge.net.