Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.05.2013, 20:56   #1
dar3dev1l26
Пользователь
 
Регистрация: 06.10.2011
Сообщений: 58
Вопрос Комплексные числа, экспонента


1<= X(k) <=n - массив комплексных чисел;
1<= A(k) <=n - массив вещественных амплитуд;
1<= ф(k) <=n - массив вещественных фаз;
На картинке видно, что X(k) можно получить через A(k) и ф(k). У меня возникла проблема с этим: ф(k) получается вещественным числом, а чтобы с помощью A(k) и ф(k) получить обратно X(k) надо возвести экспоненту в степень jф(k), я так понял что это мнимая часть ф(k)(поскольку вещественное число - мнимая часть равно нулю), экспонента в степени 0 дает единицу - полная бессмыслица тогда а не формула. Если же понимать jф(k) = ф(k), тогда не получается получить X(k), выходит какое-то совсем другое число. Подскажите как быть пожалуйста.
dar3dev1l26 вне форума Ответить с цитированием
Старый 04.05.2013, 21:01   #2
alexander13
Форумчанин
 
Аватар для alexander13
 
Регистрация: 07.02.2013
Сообщений: 267
По умолчанию

Цитата:
Сообщение от dar3dev1l26 Посмотреть сообщение
.. я так понял что это мнимая часть ф(k)...
Нет, это мнимая единица, умноженная на ф(k)
Μολὼν λαβέ
alexander13 вне форума Ответить с цитированием
Старый 04.05.2013, 21:19   #3
dar3dev1l26
Пользователь
 
Регистрация: 06.10.2011
Сообщений: 58
По умолчанию

Всё равно числа получаются далеко не те, формулу амплитуды и фазы я проверил в интернете, на сайтах по рассчетам амплитуды и фазы результаты совпадают. Ошибка где-то во 2-й формуле X(k).
dar3dev1l26 вне форума Ответить с цитированием
Старый 04.05.2013, 21:21   #4
dar3dev1l26
Пользователь
 
Регистрация: 06.10.2011
Сообщений: 58
По умолчанию

Поискать попробую сейчас как в с# возводить экспоненту в комплексную степень

Последний раз редактировалось dar3dev1l26; 04.05.2013 в 21:24.
dar3dev1l26 вне форума Ответить с цитированием
Старый 04.05.2013, 21:27   #5
alexander13
Форумчанин
 
Аватар для alexander13
 
Регистрация: 07.02.2013
Сообщений: 267
По умолчанию

Что конкретно получается не то?
Если учесть, что N*Ak - это просто модуль комплексного числа, то, при подстановке во второе ур-е получится r * e^i*phi (т. е. комплексное число, записанное в показательной форме).

Upd.
Да, я имею ввиду только математику. А что там у Вас получается на C#, я не знаю.
Μολὼν λαβέ
alexander13 вне форума Ответить с цитированием
Старый 04.05.2013, 21:36   #6
dar3dev1l26
Пользователь
 
Регистрация: 06.10.2011
Сообщений: 58
По умолчанию

Цитата:
Сообщение от alexander13 Посмотреть сообщение
Что конкретно получается не то?
r * e^i*phi.
Как возвести экспоненту в комплексную степень?
dar3dev1l26 вне форума Ответить с цитированием
Старый 04.05.2013, 21:39   #7
alexander13
Форумчанин
 
Аватар для alexander13
 
Регистрация: 07.02.2013
Сообщений: 267
По умолчанию

Цитата:
Сообщение от dar3dev1l26 Посмотреть сообщение
Как возвести экспоненту в комплексную степень?
Наверное, используя формулу Эйлера, нет?
e^jx = cos(x) + j*sin(x)
Μολὼν λαβέ
alexander13 вне форума Ответить с цитированием
Старый 04.05.2013, 21:46   #8
dar3dev1l26
Пользователь
 
Регистрация: 06.10.2011
Сообщений: 58
По умолчанию

Спасибо что откликнулись, напишу позже немного что получилось у меня.
dar3dev1l26 вне форума Ответить с цитированием
Старый 04.05.2013, 22:32   #9
dar3dev1l26
Пользователь
 
Регистрация: 06.10.2011
Сообщений: 58
По умолчанию

Никак не получается:
=== A(k) ===
Complex: (7, -4)
=== AMPLITUDE ===
8.06225774829855
=== PHASE ===
-29.7448812969422
=== A(k) = A*e^jf ===
Complex: (5.2608471901269E-13, 8.19328405213268E-13)

Жуть. Сверить амплитуду и фазу можно здесь:
http://www.fxyz.ru/формулы_по_матема...ексного_числа/
Моя формула:
Код:
test = (new Complex(A[i] * Math.Exp(PH[i]), 0)) * (new Complex(Math.Cos(1), Math.Sin(1)));
В переводе на математику: test = (A + j0) * (e^ф +j0) * (cos(1) + jsin(1))
Забыл написать что N =1 в данном случае, поэтому я его исключил.
Не может же быть, что формула не правильная?

Последний раз редактировалось dar3dev1l26; 04.05.2013 в 22:35.
dar3dev1l26 вне форума Ответить с цитированием
Старый 04.05.2013, 23:16   #10
alexander13
Форумчанин
 
Аватар для alexander13
 
Регистрация: 07.02.2013
Сообщений: 267
По умолчанию

Брр.. Не понимаю, что Вы делаете.
z = 7 - 4j - Ваше комплексное число.
Его модуль = 8.06, а аргумент = -29.74 - это правильно.
Далее, если Вы хотите получить то же комплексное число через его тригонометрическое представление, Вам нужно его модуль умножить на (cos(arg) + jsin(arg)), или 8.06 * (cos(-29.74) + jsin(-29.74)). После раскрытия скобок получите исходное число z. Откуда у Вас там какое-то j0 берется я не понимаю..

Синусы и косинусы получаются из разложения экспоненты в ряд Тейлора, т. е. показательная форма записи r * e^jf то же самое, что и r * (cos(f) + j*sin(f)). Зачем у Вам там синус и косинус 1 - для меня загадка.
Μολὼν λαβέ
alexander13 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Комплексные числа в С++ AntonE Помощь студентам 2 05.05.2011 23:51
Комплексные числа в С++ Slavytich Помощь студентам 0 25.12.2010 03:34
Комплексные числа Оля_1991 Помощь студентам 1 19.09.2010 21:10
Комплексные числа shtuceron Помощь студентам 2 21.01.2010 23:47
Комплексные числа 777UFO777 Общие вопросы Delphi 0 21.12.2008 23:48