Hola,
Este es el algoritmo de Horner en Matlab. Debe ser casi idéntico en Scilab (si acaso falta el 'return' al final de la función).
a es el vector de coeficientes.
x es el punto a evaluar.
function [y, b] = horner(a, x)
n = length(a)-1;
b = zeros(n+1, 1);
b(1) = a(1);
for i = 2 : n+1
b(i) = a(i) + b(i-1)*x;
end
y = b(n+1);
b = b(1 : end - 1);
Para la derivada, evalúa el polinomio en dos puntos muy cercanos, y divide la diferencia en ' y ' por la diferencia en ' x ', que es justamente la definición de derivada, (cuando ' delta x ' tiende a cero).
En este enlace hay un algoritmo para la derivada, también en Matlab.
matrixlab-examples.com/derivative.html
.