如何在Matlab中象征性地获得复杂表达式的虚构和实部?

时间:2018-05-12 10:35:34

标签: matlab symbolic-math

我试图获得以下复杂表达的虚构和真实部分。

syms a b
F = imag((cos(a)-j*sin(a))/(1+j*a*b-cos(a)+j*sin(a)))
simplify(F)

输出是否相同,有或没有简化。 有没有办法用标准的复数格式(x + jy)来表达这个表达式?

1 个答案:

答案 0 :(得分:2)

默认情况下,ab没有任何假设,这意味着它们可能很复杂。因此,MATLAB无法确定虚部的闭合形式表达式。如果您知道ab是实数,那么您可以按如下方式强加此假设。

syms a b real
F = imag((cos(a)-j*sin(a))/(1+j*a*b-cos(a)+j*sin(a)))

或者,您可以使用assume函数在声明后更改符号对象的假设。