Этот метод, вероятно, не будет работать в каждом случае, но он работает здесь.
ComplexExpand
предполагает, что все переменные являются действительными, и соответственно расширяет выражение.Таким образом,
ComplexExpand[(a + b*I)*(c + d*I)]
возвращает a c - b d + I (b c + a d)
, а
ComplexExpand[Re[(a + b*I)*(c + d*I)]]
ComplexExpand[Im[(a + b*I)*(c + d*I)]]
возвращает a c - b d
для первого и b c + a d
для второго.