Matlab: Умножение с использованием комплексных чисел - что такое правильный оператор?

Я пытаюсь вычислить выражение (z*(z-h*a))^2 используя комплексные данные. Это выражение отлично работает, когда входные данные имеют реальную ценность. Я должен получить скаляр. Но, используя комплексные входные данные, я получаю вектор. Каков правильный оператор для умножения комплексных чисел?

z = -6.1 -6.55i;
a = 7.0000 - 7.0000i;
 h = [-0.1340 - 1.0315i,  -0.2770 - 1.0810i,   0.7774 - 0.5708i];

temp = 0.0;
temp =  (z*(z-h*a)).^2;

1 ответ

Решение

Для векторного ввода h, это уравнение приведет к вектору, независимо от того, являются ли соответствующие числа действительными, сложными, октонионными или нет (при условии, что вы делаете поэлементное возведение в квадрат, .^2).

Трой прав - вам нужна сумма квадратов:

z = -6.1 - 6.55i;
a = 7.0000 - 7.0000i;
h = [-0.1340 - 1.0315i,  -0.2770 - 1.0810i,   0.7774 - 0.5708i];

temp = z * (z - h*a);
temp = temp * temp.';
Другие вопросы по тегам