1

我已经在 Matlab 用户社区中问过同样的问题。

我有以下符号表达式:

(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 中做到这一点?

4

1 回答 1

1

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

于 2014-08-18T18:19:15.727 回答