Название: Информатика - Алгоритмы и программы (Н.В. Усольцев)

Жанр: Информатика

Просмотров: 1276


1. введение

В практике решения инженерных и научно-технических задач использование комплексных величин позволяет достичь компактности описания объектов и процессов, а также применить мощный математический аппарат теории аналитических функций. Так, периодические процессы в электрических и электронных цепях, результаты решения некоторых задач математической физики и многое другое использует комплексные величины. В данной лабораторной работе изучаются алгоритмы работы с комплексными величинами: простейшие операции, вычисление аналитических функций, решение систем линейных уравнений и нелинейных уравнений в комплексной плоскости.

 

2. Поддержка работы с комплексными величинами в языке С++

В стандартном языке С нет данных комплексного типа. Однако в С++ имеется библиотечный класс complex, который становится доступным при подключении заголовочного файла <complex.h>. В нем содержатся все необходимые определения и ряд полезных функций. После его подключения можно объявлять переменные комплексного типа по следующему образцу:

#include complex.h

 

void main()

  {

  complex a,b,z;

             …

             }

 

После объявления комплексных переменных с ними  можно непосредственно выполнять арифметические действия сложения, вычитания, умножения и деления, а также вычислять функции комплексного аргумента. В заголовочном файле complex.h определены следующие основные функции:

 

 функции преобразования

complex complex(double a, double b)      – возвращает комплексное число, имеющее вещественную часть  a и мнимую часть b;

complex polar(double mag, double angle)– возвращает комплексное число, имеющее модуль mag и аргумент angle;

double abs(complex z) – возвращает модуль комплексного числа z;

double arg(complex z) – возвращает главное значение аргумента комплексного числа z в пределах от –p до p;

double real(complex z)– возвращает значение вещественной части комплексного числа z;

double imag(complex z)– возвращает значение мнимой части комплексного числа z;

double norm(complex z)– возвращает значение квадрата модуля комплексного числа z;

трансцендентные функции

complex exp(complex z) – экспонента комплексного аргумента;

complex log(complex z) – натуральный логарифм комплексного аргумента;

complex log10(complex z) – десятичный логарифм комплексного аргумента;

complex sqrt(complex z)– корень квадратный из комплексного аргумента:

                       

complex pow(complex x, complex y) – значение ;

тригонометрические функции, прямые и обратные

complex sin(complex z);

complex cos(complex z);

complex tan(complex z);

complex asin(complex z);

complex acos(complex z);

complex atan(complex z);

гиперболические функции

complex tanh(complex z);

complex cosh(complex z);

complex sinh(complex z).

Аналитические функции комплексного аргумента могут быть представлены в виде  зависимостей вещественной или мнимой части, модуля или фазы (аргумента) от точки на комплексной плоскости пространства аргумента. Следовательно, они могут изображаться в виде двух поверхностей с помощью Origin. Так, для построения графика вещественной части функции sin(z) с помощью WriteSurfaceFunc() может быть использована следующая буферная функция:

#include <complex.h>

 

double f(double x, double y)

{

    return real(sin(complex(x,y)));

}