2

В Excel есть поддержка комплексных чисел, например: =IMSUM("5+2i","6+2i") и матричных вычислений, например: =MMULT(B7:D9,F3:F5).

Однако помещение сложных значений в ячейки с существующими матричными операциями приводит к ошибке. Есть ли способ выполнить матричные вычисления со сложными значениями в Excel?

Я нахожусь на бета-версии Excel 2010 на Windows 7 и открыт для альтернативных приложений.

2 ответа2

2

Вы не можете комбинировать сложную арифметику и матричную арифметику в Excel, потому что сложные функции возвращают результаты в текстовом формате, тогда как матричные функции требуют числового ввода.

Mathematica (коммерческое приложение) и Wolfram Alpha (онлайн-движок от создателей Mathematica) работают со сложной матричной арифметикой. Попробуйте положить

{{(0+1i),-1},{1,0}}.{{(2-5i),2},{3,4}}

в Wolfram Alpha. Он возвращает результат (и многие другие типы информации) в графическом формате, но вы также можете преобразовать его в текстовую форму Mathematica.

1

Это можно сделать с минимальным битом VBA, если вы напишите (в VBA) функцию real_mat() которая превращает вашу комплексную матрицу {a} в матрицу, в два раза большую: {real(a),-im(a);im(a),real(a)} и другая функция complex_mat которая берет реальный мат и преобразует его обратно в исходную сложную форму, тогда все функции рабочего листа Excel, которые вы можете выполнять с реальными матрицами, можно выполнить с помощью real_mat() и они работают как эквивалентные функции на комплексные значения.

Он работает для + , - , mmult , minverse и mtranspose , обратите внимание, что mtranspose типа real_mat() выполняет комплексное сопряжение, что обычно и требуется.

Например, вы бы суммировали диапазон a и b комплексных чисел и инвертировали результат, используя формулу =complex_mat(minverse(real_mat(a) + real_mat(b)))

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .