title: Is there an algorithm that seek for mathematical link between 3 variables?
body: <p>Is it possible to construct an algorithm that look for the most parsimonious (the question of what is parsimonious might seem a bit arbitrary in this case!) formula that link three variables?</p>
  
  <p>For example, given:</p>
  
  <pre><code>a = -2, 1, 4, 3.2
  b = 1, 2, 7, 0.2
  c = 0, 3, 16386, 3.261915
  </code></pre>
  
  <p>the most parsimonious link between these three variables is (Hope this is the most parsimonious):</p>
  
  <pre><code>a^b + 2 = c
  </code></pre>
  
  <p>Because:</p>
  
  <pre><code>-2^1 + 2 = 0
  1^2 + 2 = 3
  4^7 + 2 = 16386
  …
  </code></pre>
  
  <p>My questions are:</p>
  
  <ul>
  <li>Is it possible to construct such an algorithm?</li>
  <li>Do you know an already existing algorithm of this kind?
  <ul>
  <li>If yes, does it work well (quick) for relatively easy relationship as in my example?</li>
  </ul></li>
  </ul>
  
  <hr>
  
  <p>Update:</p>
  
  <p>Here is a R code that creates 3 variables <code>a.l</code>, <code>b.l</code> and <code>c.l</code> in order to make an example.</p>
  
  <pre><code>set.seed(12)
  a.l = round(runif(20, -100, 100), 2)
  b.l = round(runif(22, -100, 100), 2)
  c.l=c()
  for (a in a.l){for (b in b.l){c.l[length(c.l)+1] = a^2 + 1.2*b - 8}}
  </code></pre>