This is not a final solution, but I hope it is an useful approach:
First, define a function which depends on your variable x (for me x is a real number) and your parameters a,b,c,d,e,f (integers between -10 and 10):
k[x_,a_,b_,c_,d_,e_,f_]:=(a*x+b)^(1/3)+(c*x+d)^(1/3)+(e*x+f)^(1/3)
You could use a graphical solution. E.g. use
Manipulate[Plot[k[x,a,b,c,d,e,f],{x,-10,10},PlotRange -> {All,All},
AxesLabel -> {"x", "k"}],{a,-10,10,1},{b,-10,10,1},{c,-10,10,1},{d,-10,10,1},
{e,-10,10,1},{f,-10,10,1}]
As you can see, depending on x there are several integer values for k.
If you want to find for which value of x k is an integer, you can try the following (for simplicity I fix here arbitrarily c, d, e, f to 10 and k to 8):
bigMatrix=Quiet[Table[{a,b,If[#∈Reals,#,no]&[FindRoot[k[x,a,b,10,10,10,10]==8
(*adapt it to integers between-10 and 10*),{x,1}][[1,2]]]},
{a,-10,10,1},{b,-10,10,1}]];
With Quiet
I suppress some warnings (be careful, due to the suppression there are some wrong solutions produced).
With
solutions = Flatten[Delete[bigMatrix, Position[bigMatrix, no][[All, {1, 2}]]], 1];
I delete all solutions where x is not a real number ("no").
And with
output = Table[k[solutions[[i, 3]], solutions[[i, 1]], solutions[[i, 2]], 10, 10,
10, 10], {i, 1, Length[solutions]}];
solutions2 = Delete[solutions, Position[output, val_ /; val != 8]];
I delete all wrong solutions.
Let us take a look at one of the solutions, e.g. solutions2[[158]]
({10, -7, 1.59669}).
If you set in this solution in your function with k[solutions2[[158,3]],solutions2[[158,1]],solutions2[[158,2]],10,10,10,10]
, you can see that the output is indeed 8 again.
You can find a lot of solution by changing the 8 in the FindRoot
by some of the other integers. And you can find even more solutions if you do not fix as many parameters as I do – but then calculation times increases much (which can perhaps be improved by some better code).
Appendix 1:
If you are interested in a solution for fixed values of x (x ≠0), you could do the following:
Calculate all values of the function of k
for a fixed x (e.g. x=1)
start=-4;
stop=4;
bigMatrixB=ParallelTable[{a,b,c,d,e,f,k[1,a,b,c,d,e,f]},{a,start,stop,1},
{b,start,stop,1},{c,start,stop,1},{d,start,stop,1},{e,start,stop,1},{f,start,stop,1}];
As start and stop value I have chosen -4 and 4 to avoid long calculation times.
Then filter for integer solutions with:
solutionsB=Flatten[bigMatrixB,5];
solutionsB2=Delete[solutionsB,Partition[Union[Position[solutionsB[[All,7]],
val_/;val∉Integers][[All,1]]],1]];
In this special case (a,b,c,d,e and f are going from -4 to 4 and x = 1) you can find 5832 solutions!
Among them are solutions such as
a=-2, b=3, c=4, d=-3, e=-3, f=4, k=3 (output of solutionsB2[[1587]]
)
which shows you that Alis answer is not really correct (neither a=c=e=0 or a=b, c=d, e=f is here fulfilled).
Appendix 2:
For the special case that x=0 your equation simplifies and also the function k
.
In this case we have the more simple function k2
given by:
k2[b_, d_, f_] := b^(1/3) + d^(1/3) + f^(1/3);
It does not cost much calculation time to calculate all possible values of k2
with
start=-10;
stop=10;
bigMatrixC=ParallelTable[{b,d,f,k2[b,d,f]},{b,start,stop,1},{d,start,stop,1},
{f,start,stop,1}];
Filter again for all integer solution with:
solutionsC=Flatten[bigMatrixC,2];
solutionsC2=Delete[solutionsC,Partition[Union[Position[solutionsC[[All,4]],
val_/;val∉Integers][[All,1]]],1]];
And you will find 27 solutions for b,d,f and k which are:
{{0,0,0,0},{0,0,1,1},{0,0,8,2},{0,1,0,1},{0,1,1,2},{0,1,8,3},{0,8,0,2},{0,8,1,3},{0,8,8,4},{1,0,0,1},{1,0,1,2},{1,0,8,3},{1,1,0,2},{1,1,1,3},{1,1,8,4},{1,8,0,3},{1,8,1,4},{1,8,8,5},{8,0,0,2},{8,0,1,3},{8,0,8,4},{8,1,0,3},{8,1,1,4},{8,1,8,5},{8,8,0,4},{8,8,1,5},{8,8,8,6}}
So, both appendices give you in total 5859 integer solutions to your problem. Tell us, if you need more ;-)
FindInstance
? If so, please place the code so we can see. $\endgroup$r1=a x + b
and similar, then this gives the list of{r1, r2, r2}
satisfying the equation :rlist = {Reduce[{r1^(1/3) + r2^(1/3) + r3^(1/3) == #, 0 <= r1 <= 10, 0 <= r2 <= 10, 0 <= r3 <= 10}, {r1, r2, r3}, Integers] /. {r_ == rsol_ -> rsol, And -> List, Or -> List}, #} & /@ Range[0, 20]
. The last step is to resolve each of{r1, r2, r3}
into triplets of integers withReduce
once more. $\endgroup$