I have lot of polynomials like this
f1[a1_,x1_] := (a1 x1 + 1 - x1)
f2[a2_,x2_] := (a2 x2 + 1 - x2)
f3[a1_,x1_,a2_,x2_] := (a1 x1 + 1 - x1)*(a2 x2 + 1 - x2)
f4[a1_,x1_,a2_,x2_] := (a1 x1 + 1 - x1)*(a2 x2 + 1 - x2)*x2
f5[a1_,x1_,a2_,x2_] := (a1 x1 + 1 - x1)*(a2 x2 + 1 - x2)*(a1 x1 + 1 - x1)
f6[a1_,x1_,a2_,x2_,a3_,x3_] := (a1 x1 + 1 - x1)*(a2 x2 + 1 - x2)*(a3 x3 + 1 -x3)
and so on...
I want to know what integer linear combinations of these polynomials would result in a 0 polynomial. That is, I want to the set of all solutions for
c1 f1 + c2 f2 + c3 f3 + c4 f4 + c5 f5 + c6 f6 = 0
When I enter
Solve[c1 f1[a1_,x1_] + c2 f2[a2_,x2_] + c3 f3[a1_,x1_,a2_,x2_] + c4 f4[a1_,x1_,a2_,x2_] + c5 f5[a1_,x1_,a2_,x2_] + c6 f6[a1_,x1_,a2_,x2_,a3_,x3_] == 0, {c1,c2,c3,c4,c5,c6}]
mathematica just expresses one variable in terms of all others. That's not what I want. I want all non-trivial integer solutions for c1, c2, c3, c4, c5, c6 (some of them could be zero) such that the above equation is satisfied for all values of x1,x2,x3,a1,a2,a3.
I could try to expand my polynomials and express it as a set of linear equations Mc=0, where the matrix M represents the coefficients of the polynomials. But unfortunately, when I expand my polynomials, they have exponential number of monomials, and I could not use this method even when problem size becomes bigger.
Are there better ways to solve my problem?
SolveAlways
? $\endgroup$Blank
is used on the LHS in the definition of a function, not when calling the function. $\endgroup$FindInstance
? $\endgroup$