public Integer convergenceIteration(){
        Random random = new Random();
        List<Integer> keys = new ArrayList<Integer>(stateVector.keySet());
        //Map<Integer,Double> newStateVector = new HashMap<Integer,Double>();
        int randKey,key,changes = 0;
        Double signumValue, localField;
        while(!keys.isEmpty())
        {
            randKey = random.nextInt(keys.size());
            key = keys.get(randKey);
            localField = localField(key);
            signumValue = signum(localField);
            if(Double.compare(signumValue ,0.0) != 0)
                if(Double.compare(signumValue, stateVector.get(key)) != 0)
                {
                    changes++;
                    stateVector.put(key, signumValue);                
                }
            keys.remove(randKey);
        }
        //stateVector.putAll(newStateVector);
        printStateVector();
        return changes;
    }