El objetivo es conseguir que en la primera vuelta del bucle tengamos acceso a $coeficientes[0], ya que contiene el '1' que nos hace falta para la primera multiplicación.
Pero no nos hace falta en el resto de vueltas.
En el bucle, primero obtenemos el coeficiente, hacemos la multiplicación, y vamos acumulando.
Luego incrementamos $i para que apunte al siguiente coeficiente, que siempre deberá ir de '1' al valor máximo. No en '0', porque la
primera vez que el bucle pasa por la línea 16,
ya vale '0' (el valor conque fue definido en la línea 9).
La línea 20 se asegura de que
la segunda y siguientes vueltas $i siempre empiece por '1' (con lo que vamos obteniendo el segundo elemento de @coeficientes).
Si tomas el papel del ordenador, y con un lápiz y papel vas poniendo los contenidos de las variables, quizás lo veas más claro.
Using text Syntax Highlighting
$i:0, 1, 2, 3 ↴
↑ ⇜ ↵
Coloreado en 0.000 segundos, usando
GeSHi 1.0.8.4
¿Todo esto es necesario? Desde luego que sí si queremos hacer la suma conforme a lo que dice el problema. No es necesario si adoptamos otra estrategia, como la que tenías tú de sacar el primer valor a un $head, y sumarlo al resto del sumatorio del resto de la cadena.
Digamos que mi solución busca conseguir el menor número de líneas encontrando la fórmula matemática que más se ajuste al problema.
Eso no implica que sea la mejor solución... ni la más clara, por supuesto.