Entrada e saída do algoritmo:
O algoritmo de retirada sofreu alterações, e passou por cada um dos estágios abaixo:
Cada um dos pontos escolhidos em (a) fazia então parte do polinômio aproximador. No entanto, esse algoritmo, devido aos arredondamentos que ocorrem na execução do programa, despreza a parte final do vetor de n posições, em média 1/4 do vetor. Desprezar significa que nenhum ponto nas vizinhanças da parte fina; do vetor faz parte do polinômio aproximador. Isso causa um erro grande de aproximação nessa região.
Agora, não há só um ponteiro para escolha de pontos, como em 1). São dois ponteiros, um partindo do menor índice do vetor de pontos, outro partindo do maior índice do vetor de pontos. Cada laço do algoritmo escolhe dois pontos para fazerem parte do polinômio aproximador, um de cada ``ponta'' do vetor original.
O problema em 1) referia-se ao erro que aumentava muito no extremo final da curva aproximadora. Em 2), o erro nos extremos é resolvido, pois essas vizinhanças nào são mais desprezadas na curva aproximadora; no entanto, os arredondamentos da execução causam o desprezo da parte média do vetor, similarmente, a parte média da curva original P mus (t). Isso causa um grande erro na parte média da aproximação.
Se esq é menor do que o maior índice do vetor, então, enquanto esq for menor do que o maior índice do vetor, faz-se:
A diferença nesse algoritmo é que todas as regiões da curva P mus (t) são relevantes em relação ao polinômio aproximador. A primeira parte do algoritmo, igual à de 1), cobriria apenas a parte que 1) cobriria, se não houvesse a segunda parte do algoritmo. Essa segunda parte continua a escolher pontos independente de já se ter alcançado os m+1 pontos requeridos pelo usuário. Isso faz com que o grau m original para o polinômio aproximador , fornecido pelo usuário, aumente, pois o polinômio aproximador terá maior número de pontos.