public Vector solveFor(Vector b)
{
Matrix W = new Matrix(n_, n_, 0.0);
for (int i=0; i<n_; i++)
W[i,i] = 1.0/s_[i];
Matrix inverse = V()* W * Matrix.transpose(U());
Vector result = inverse * b;
return result;
}