2012-01-16 3 views
1

Заданный вектор A=[a_1, a_2, a_3,...,a_n], где a_i - целые числа, теперь , решающее уравнение ∑a_i x_i=0 с x_i> = 0 и x_i - целые числа.Как установить все коэффициенты, чтобы быть положительными в решении целочисленного уравнения с использованием Mathematica?

Используя 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. Есть ли простой способ написать такой код?

ответ

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