Octave中的符号简化似乎非常基本

时间:2017-07-02 17:27:30

标签: octave symbolic-math

我正在尝试使用符号包在Octave中进行一些符号计算,但是当涉及到简化时(我为什么要使用它),我似乎搁浅了。例如,它适用于简单表达式,但对于更复杂的矩阵运算,它似乎失败了。这里出了什么问题:

pkg load symbolic
syms a b d t
A = cos(t/2)*exp(i*(a - b/2 - d/2))
B = -sin(t/2)*exp(i*(a-b/2+d/2))
C = sin(t/2)*exp(i*(a + b/2 - d/2))
D = cos(t/2)*exp(i*(a+b/2+d/2))
U = [A, B; C, D]
simplify(expand(conj(U.')*U))

我尝试使用简化而不扩展。但是我应该得到itentity矩阵,而是获得一个表达式 - 正确但不简化。有没有办法让这项工作成功?

1 个答案:

答案 0 :(得分:1)

至少在Matlab中,默认情况下,符号变量被假定为复杂的。看起来您可能要求abdt成为现实。如果是这样,您需要将它们定义为这样,以便您的表达式可以按预期简化:

syms a b d t real

然后simplify的结果(至少在Matlab R2017a中)将是一个符号单位矩阵。

有关详情,请参阅syms和/或sym的文档。您可能还希望阅读有关符号变量假设的更多信息:sym/assumptionssym/assume