function [ pts ] = fe_solve( obj )
    % Check to make sure that each row of the matrix has been updated
    if ~all( obj.updated )
        error( 'not all of the undetermined entries have been updated' );
    end
    
    % Solve the system of linear equations
    v = obj.M \ obj.b;

    % Copy over the original list of points and
    % update those entries which were -Inf.
    pts = obj.points;
    
    for i=1:obj.ni
        pts(3, obj.from_alias(i)) = v(i);
    end
end

