在Matlab中用符号表达式强制执行规则

时间:2014-08-18 16:44:08

标签: matlab symbolic-math computer-algebra-systems

我已经在Matlab用户社区中询问了same question

我有以下符号表达式:

(3*s11)/2 + (3*s12)/2 + (3*s13)/2 + (3*s14)/2 + (3*s15)/2 + (s11*s12)/2 + (s11*s13)/2 + (s11*s14)/2 + (s12*s13)/2 + (s11*s15)/2 + (s12*s14)/2 + (s12*s15)/2 + (s13*s14)/2 + (s13*s15)/2 + (s14*s15)/2 + s11^2/4 + s12^2/4 + s13^2/4 + s14^2/4 + s15^2/4 + 9/4

它存储为符号表达式变量。我想强制执行规则sij ^ 2 = 1,即变量可以是-1或+1。如果我在上面提到的表达式中强制执行规则,表达式将如下所示。

(3*s11)/2 + (3*s12)/2 + (3*s13)/2 + (3*s14)/2 + (3*s15)/2 + (s11*s12)/2 + (s11*s13)/2 + (s11*s14)/2 + (s12*s13)/2 + (s11*s15)/2 + (s12*s14)/2 + (s12*s15)/2 + (s13*s14)/2 + (s13*s15)/2 + (s14*s15)/2 + 1/4 + 1/4 + 1/4 + 1/4 + 1/4 + 9/4

我怎样才能在Matlab中做到这一点?

1 个答案:

答案 0 :(得分:1)

设定假设,例如assume(s14^2==1),然后使用simplify