Реферат Курсовая Конспект
Комплексные числа - раздел Связь, И Радиосвязь, радиовещание и телевидение дневного отделения Комплексные Числа Широко Используются В Современной Радиотехнике Для Расчета ...
|
Комплексные числа широко используются в современной радиотехнике для расчета различных схем и устройств по переменному току.
Комплексным числом называется выражение вида a + jb, где a и b – любые действительные числа, j2 = –1, j – это специальная величина, называемая мнимой единицей.
Рис. 1.1. Геометрическая интерпретация
комплексного числа
Комплексные числа часто обозначают одной буквой, например, z = a + jb. Число a называется действительной частью комплексного числа z (Re z), а число b – мнимой частью этого числа z (Im z). Комплексные числа вида a + j · 0 называют действительными. Числа вида 0 + jb называются чисто мнимыми. Геометрическими интерпретациями комплексного числа являются вектор или точка на комплексной плоскости рис. 1.1. Комплексной называется плоскость, когда по оси ординат откладывается мнимая часть комплексного числа, а по оси абсцисс – действительная.
Модулем комплексного числа называется длина вектора, соответствующего этому числу:
Аргументом комплексного числа z = a + jb (z ≠ 0) называется величина угла между положительным направлением действительной оси и вектором, обозначается обычно φ = arg(z) = arctg(b/a). Существует три формы записи комплексного числа:
алгебраическая z =a + bj;
тригонометрическая ;
показательная .
В С++ для работы с комплексными числами предусмотрен класс сomplex.Для его использования нужно включить заголовочный файл: #include<complex>.В стандартную библиотеку C++ включены три специализированные версии класса complex для типов float, double и long double.
Инициализация комплексной переменной
// Чисто мнимое число: 0 + 7j
complex< double > purei( 0, 7 );
// Мнимая часть равна 0: 3 + 0j
complex< float > real_num( 3 );
// И вещественная, и мнимая части равны 0: 0 + 0j
complex< long double > zero;
// Инициализация одного комплексного числа другим
complex< double > purei2( purei );
//Инициализация комплексного числа арифметическим типом
complex< double > w;
double h=3.14159;
w = h;
Приведение типов
При операциях с комплексными числами, так же как и с вещественными, происходит преобразование типов – их приведение. Приведение может быть без потери информации – безопасное приведение и рискованное (опасное), когда такая потеря может происходить. Здесь много подводных камней. Поэтому надо запомнить, что безопасным является приведение complex<float> в complex <double>, оно может быть задано неявно. Остальные приведения надо задавать явно. Кроме того, лучше не использовать комплексные числа целого типа, так как в явном и неявном виде они не преобразуются в complex с типом float или double.
сomplex<float> cf;
complex<double> cd;
complex<double> cdL(cf); // OK: явное приведение
complex<float> cd2 = cd; // OK: безопасное приведение
complex<int> ci;
complex<double> cd4 = ci; // ОШИБКА: небезопасное приведение
complex<double> cd5(ci); // ОШИБКА: нет явного приведения
Вывод и ввод комплексных чисел
В С++ поддерживается и ввод/вывод комплексных чисел. Оператор вывода печатает действительную и мнимую части через запятую в круглых скобках. Например, результат выполнения оператора вывода
complex< double > z( 3.14159, -2.171 );
cout << z << endl;
выглядит так:
( 3.14159, –2.171 )
Оператор ввода понимает любой из следующих форматов:
// Допустимые форматы для ввода комплексного числа
// 3.14159 ==> complex( 3.14159 );
// ( 3.14159 ) ==> complex( 3.14159 );
// ( 3.14, –1.0 ) ==> complex( 3.14, –1.0 );
// может быть считано как
cin >> a >> b >> с;
// где a, b, с – комплексные числа
Значит, если вы введете вещественное число (в круглых скобках или без них) на место комплексных переменных a или b, то это интерпретируется как комплексная переменная с нулевой мнимой частью. Для ввода же переменной с = 3.14 –1.0j, необходимо в круглых скобках через запятую ввести отдельно действительную и мнимую части.
Операторы класса complex
Комплексные числа можно складывать, вычитать, умножать, делить, сравнивать,
#include <complex>.
complex< double > a;
complex< double > b;
complex< double > с = a * b + a / b;
Комплексные и арифметические типы разрешается смешивать в одном выражении:
complex< double > a;
complex< double > d = a + 3.14159;
Внимание! В правой части приведенного оператора происходит суммировние комплексной переменной и вещественной константы. Тип этих объектов должен быть одинаковым, в данном случае – это double, так как константа с десятичной точкой в Visual C++ имеет по умолчанию тип double. Если же типы этих объектов не совпадут, то компилятор выдаст ошибку:
complex< float > a;
complex< double > d = a + 3.14159;//ОШИБКА
Устраним эту ошибку
complex< float > a;
complex< double > d = a + 3.14159f; //OK
Буква f в конце числа сообщает компилятору, что тип числа – float.
Класс комплексных чисел поддерживает четыре составных оператора присваивания: +=, -=, *= и /=. Таким образом, если
complex <float>a,d;
то можно записать
a+=d;
Функции для работы с комплексными числами
Класс complex имеет две функции, возвращающие соответственно вещественную и мнимую части. Мы можем обращаться к ним, используя синтаксис доступа к членам класса:
complex<double> z;
double re = z.real();
double im = z.imag();
или эквивалентный синтаксис вызова функции:
double re = real(z);
double im = imag(z);
Кроме того, для работы с комплексными числами имеются следующие функции: abs(), arg(), conj(), polar(), sqrt(), sin(), cos(), tan(), exp(), log(), log10() и pow(). Функция polar() по модулю и аргументу комплексного числа находит его действительную и мнимую части, функция conj(z) возвращает комплексно сопряженное число к числу z.
– Конец работы –
Эта тема принадлежит разделу:
НОВОСИБИРСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ...
Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Комплексные числа
Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:
Твитнуть |
Новости и инфо для студентов