You can minimize the distances between 3 points that each belong to a torus : res = NMinimize[ Norm[torus1[x1 , y1] - torus2[x2 , y2]] + Norm[torus3[x3 , y3] - torus2[x2 , y2]], {x1, y1, x2, y2, x3, y3}] (* torus1[x1 , y1] /. res[[2]] --> {10.5868, -2.73435, -2.34231} torus2[x2 , y2] /. res[[2]] --> {10.5868, -2.73435, -2.34231} torus3[x3 , y3] /. res[[2]] --> {10.5868, -2.73435, -2.34231} *) The 3 torus and the point : ![enter image description here][1] [1]: https://i.sstatic.net/UzqLG.jpg