Wolfram Function Repository
Instant-use add-on functions for the Wolfram Language
Function Repository Resource:
Find a small solution to a system of linear equations over the integers
ResourceFunction["SmallIntegerLinearSolve"][mat,rhs] finds a small solution for x to the system of integer linear equations mat.x=rhs. |
Solve a linear system with integer values:
In[1]:= |
Out[1]= |
Set up a random system over the integers:
In[2]:= |
Find a small integer solution:
In[3]:= |
Out[3]= |
Compare to the parametrized result from Solve for the corresponding system of explicit linear equations:
In[4]:= |
Out[4]= |
Verify that the result of SmallIntegerLinearSolve is in the parametrized solution set:
In[5]:= |
Out[5]= |
Set up and solve a random system over the integers:
In[6]:= |
Out[6]= |
Compare to the parametrized result from Solve for the corresponding system of explicit linear equations:
In[7]:= |
Out[124]= |
Verify that the small solution is in the parametrized solution set:
In[125]:= |
Out[125]= |
Though it is far slower than SmallIntegerLinearSolve, one can find a minimal solution in terms of the 1-norm (sum of absolute values):
In[126]:= |
Out[126]= |
This new solution is indeed smaller in 1-norm than the small solution:
In[127]:= |
Out[127]= |
However, the small solution happens to be the smaller in Euclidean norm:
In[128]:= |
Out[128]= |
A system need not have an integer-valued solution:
In[129]:= |
Out[129]= |
This work is licensed under a Creative Commons Attribution 4.0 International License