Как установить все коэффициенты, чтобы быть положительными при решении целочисленного уравнения с помощью Mathematica? - PullRequest
1 голос
/ 16 января 2012

Учитывая вектор 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 Ответ

4 голосов
/ 16 января 2012

Вы хотите использовать 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
...