Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Операции и функции с комплексными числами и переменными




ТЕМА 9. Алгоритмы элементарных вычислений. 4 часА

 

9.1.1 Возведение комплексного числа в комплексную степень

Пусть заданы комплексные числа w и z:

 

- главное значение аргумента числа z, n - количество оборотов. Тогда

 

Нижеприведенная функция производит вычисления по данной формуле.

// ******************************************************************************

// Комплексная степень комплексного числа.

// ******************************************************************************

// void ComplexPowerOfComplex (double a, double b, double c, double d, int n,

// double &x, double &y);

//

// Возводит число z = a+ib в степень w = c+id, т.к. операция возведения в комплексную

// степень многозначная, то также сообщается n - номер требуемого значения. (Число

// значений не ограничено, номер может быть любым целым, хотя значения могут

// повторяться).

// ******************************************************************************

 

void ComplexPowerOfComplex (double a, double b, double c, double d, int n,

double &x, double &y);

 

{

double p; double r; double v; double w;

 

x = 0;

y = 0;

if (a!=0 || b!=0) // Проверка возводимого в степень числа на неравность нулю

{

if (a==0) p = p+М_PI+atan2(b, a);

r = double(log(a*a+b*b))/double(2);

v = c*p+d*r;

w = exp(c*r-d*p);

x = w*cos(v);

y = w*sin(v);

}

}

 

 

9.1.2 Нахождение частного от деления двух комплексных чисел.

Процедура находит частное от деления двух комплексных чисел:

 

 

Вычисления проводятся по формулам:

 

// ******************************************************************************

// Деление комплексных чисел.

//

// void DivComplex(double a, double b, double c, double d, double& e, double& f);

//

// e+if = (a+ib)/(c+id)

// ******************************************************************************

 

void DivComplex(double a, double b, double c, double d, double &e, double &f)

{

double r;

double d1;

 

if (fabs(c)<fabs(d))

{

r = c/d;

d1 = d+r*c;

e = (a*r+b)/d1;

f = (b*r-a)/d1;

}

else

{

r = d/c;

d1 = c+r*d;

e = (a+b*r)/d1;

f = (b-a*r)/d1;

}

}

 

 

9.1.3. Умножение комплексных чисел

Произведение двух комплексных чисел вычисляется по формуле:

e+if = (a+ib)(c+id) = (ac-bd)+i(ad+bc)

Блок схема и код программы на самостоятельное изучение.

9.1.4 Корни n-ой степени комплексного числа

 

Процедура вычисляет все n корней комплексного числа z=r+iu:

 

Вычисления производятся по формулам:

 

 

/*************************************************************************

Корни n-ой степени комплексного числа.

Процедура вычисляет все n корней комплексного числа z=r+iu

 

void nrootfromcomplex(double r, double u, int n, double& rp[], double& up[]);

 

На входе:

r, u - действительная и мнимая части числа

n - степень корня

 

На выходе:

rp, up - Массив действительных и мнимых частей корней.

*************************************************************************/

void nrootfromcomplex(double r, double u, int n, double& rp[], double& up[])

{

int i;

double t;

double m;

double phi;

 

rp.setbounds(0, n-1);

up.setbounds(0, n-1);

m = pow(r*r+u*u, double(1)/double(2*n));

phi = atan2(u, r);

for(i = 0; i <= n-1; i++)

{

rp(i) = m*cos(double(phi+2*M_PI*i)/double(n));

up(i) = m*sin(double(phi+2*M_PI*i)/double(n));

}

}

 

 

9.1.4. Действительная степень комплексного числа

Главное значение действительной степени комплексного числа определяется соотношением:

z w = (x+iy) w = r w(cos(wa)+i sin(wa))

где

,

a - главное значение аргумента z. Если w = 1/n, то процедура вычисляет главное значение корня n -ой степени из z.

// *************************************************************************

// Действительная степень комплексного числа.

// void realpowerofcomplex(double x, double y, double w, double &a, double &b);

// Возводит x+iy в степень w, вычисляя главное

// значение результата. Результат равен a+bi.

// *************************************************************************/

void realpowerofcomplex(double x, double y, double w, double &a, double &b)

{

double m2;

double phi;

 

phi = atan2(y, x);

m2 = x*x+y*y;

a = pow(m2, double(w)/double(2))*cos(w*phi);

b = pow(m2, double(w)/double(2))*sin(w*phi);

}

 




Поделиться с друзьями:


Дата добавления: 2014-10-17; Просмотров: 315; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.047 сек.