Цитата(_Anatoliy @ Nov 8 2013, 18:16)

Ага,у меня тоже меньше 6-ти сложений не получилось,видимо предел.
Оказывается, не предел ) На досуге подумал, получил 5 сложений, 1 умножение и 1 сдвиг.
CODE
clf reset
N = 10; x = 1:N; y = rand(1, N);
h = 0.01; g = y(3) - y(2); d = g - y(2) + y(1);
plot(x, y, 'or', 'LineWidth', 2); hold on; grid on; axis on;
title(['Локальная интерполяция случайного набора точек', ...
' полиномом Лагранжа 3 степени, 2 алгоритма расчета.']);
plot(x(1), y(1), 'b-', x(1), y(1), 'g:');
legend('точки', 'мой алгоритм', 'Фарроу по Anatoliy');
for k = 2:(N-2)
% мой алгоритм: 1 умножение, 1 сдвиг, 5 сложений
c = d; e = g; g = y(k+2) - y(k+1); d = g - e;
b2 = c/2; b3 = (d - c)/6; b1 = e - b2 - b3;
t = 0:h:1; f = b3.*t.^3 + b2.*t.^2 + b1.*t + y(k);
plot(t+x(k), f, 'b-')
% Фарроу по _Anatoliy: 1 умножение, 2 сдвига, 6 сложений
p = y(k) - y(k+1); q = (y(k+2) - y(k))/2;
a3 = ( (y(k+2) - y(k-1))/3 + p )/2;
a2 = p + q; a1 = q - a3;
t = -1:h:0; f = a3.*t.^3 + a2.*t.^2 + a1.*t + y(k+1);
plot(t+1+x(k), f, 'g:')
end