КАТЕГОРИИ: Архитектура-(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; Просмотров: 340; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |