如何在使用Mathematica求解整数方程时将所有系数设置为正?

时间:2012-01-16 02:35:40

标签: wolfram-mathematica integer equation

给定一个向量A=[a_1, a_2, a_3,...,a_n],其中a_i是整数,现在 求解方程 ∑a_i x_i=0,x_i> = 0,x_i为整数。

使用Mathematica,我们可以编写一些代码 Solve[A . Table[x[i], {i, n}] = 0 && Table[x[i] > 0, {i, n}], Integers] 但是Table[x[i] > 0以上的条件没有正确编码。它应该是x[1]>0 && x[2]>0 && x[3]>0 &&...x[n]>0。有没有简单的方法来编写这样的代码?

1 个答案:

答案 0 :(得分:4)

您希望使用Reduce而不是Solve,因为Reduce可以处理不等式。至于将Table[x[i] > 0, {i, n}]转变为x[1] > 0 && ... && x[n] > 0,这很简单:

And @@ Table[x[i] > 0, {i, n}]

使用Apply@@)的缩写形式转换

List[x[1] > 0, ..., x[n] > 0]

And[x[1] > 0, ..., x[n] > 0]

或者,更直观地说,

x[1] > 0 && ... && x[n] > 0