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.';