public void mprove(double[] b, double[] x)
{
int j, i;
double sdp;
double[] r = new Double[n];
for (i = 0; i < n; i++)
{
sdp = -b[i];
for (j = 0; j < n; j++) sdp += aref[i, j] * x[j];
r[i] = sdp;
}
solve(r, r);
for (i = 0; i < n; i++)
x[i] -= r[i];
}
}