【问题标题】:Symbolic simplification in Octave seems very basicOctave 中的符号简化似乎非常基础
【发布时间】:2017-07-02 17:27:29
【问题描述】:

我正在尝试使用符号包在 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))

我尝试过只使用简化而不展开。但是,我应该得到实体矩阵,而是得到一个表达式——正确但没有简化。有什么方法可以让我完成这项工作吗?

【问题讨论】:

    标签: octave symbolic-math


    【解决方案1】:

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

    syms a b d t real
    

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-05-09
      • 2017-03-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-13
      • 2012-09-07
      • 1970-01-01
      相关资源
      最近更新 更多