Mathematica 如何对多项式取模化简?

问题描述:

Mathematica 如何对多项式取模化简?
如何对多项式取模化简?
例如:
输入:
s1={Mod[15 x1+17 x2+13 x3,7],Mod[21 x1+23 x2+14 x3,8],Mod[11 x1+19 x2+28,9]}
输出:
s2 ={x1+3 x2+6 x3,5 x1+7 x2+6 x3,2 x1+x2+1}

要使s1和s2等价,其实隐含了几个假设,其一,x1,x2,x3必须是整数;其次,x1,x2,x3必须在一定范围内,我没仔细考虑,但是应该是由很少的几组“基本解”构成的一个系列,否则,比如在x1=12,x2=1,x3=1的时候,s2的第一项就是错的.所以,你想要完成的运算本身就是有问题的.这里给出一个化到一半的代码:
FullSimplify[s1,(x1 | x2 | x3) \[Element] Integers]
如果硬要使用这个不严谨的结果,我想如今的你应该知道怎么通过列表操作将这里面你所要的项给提取出来.