Lösung eines LGS durch Probieren

Folgendes Programm liest ein 2x2-Gleichungssystem ein und versucht, es zu lösen.
<script language="JavaScript">
var grenze=1E-15,nmax=10000;
var faktor=0.1;
/*Eingabe*/
var s1,s2,s3,s4; 
s1=prompt("linke Seite der 1.Gleichung:","x+y");
s2=prompt("rechte Seite der 1.Gleichung:","1");
s3=prompt("linke Seite der 2.Gleichung:","3*x-3*y");
s4=prompt("rechte Seite der 2.Gleichung:","9");
document.write(s1+' = '+s2,'<br>');
document.write(s3+' = '+s4,'<br>');
/*Verarbeitung*/
function dist(x,y) 
{ return Math.abs(eval(s1) - eval(s2)) + Math.abs(eval(s3) - eval(s4)) };
function runde(x,n)
{ var f=1; for (i=1;i<=n;i++) {f=f*10}; x=Math.round(x*f)/f; return x };			 
var n=0;
var xa,ya,xn,yn,da,dn;
xa = (Math.random()-0.5)*20; ya = (Math.random()-0.5)*20; da = dist(xa,ya);
do
 { n++; xn = xa + (Math.random()-0.5)*da; 
   yn = ya + (Math.random()-0.5)*da; dn = dist(xn,yn);
   if (dn < da) { xa = xn; ya = yn; da = dn } ;  }
while ((dn > grenze) && (n < nmax))
/*Ausgabe*/
if (n>=nmax) 
{document.write('Nach ',n,' Versuchen keine Lösung gefunden, eventuell L = {}.')}
else
{document.write(n,' Versuche, L = {',runde(xn,10),';',runde(yn,10),'}')};
</script>
Ergebnis eines Programmlaufs: