Primero necesitas una caja de herramientas simbólica.
función V = NewtonDividedDifferences (datos) % { Suponiendo que la matriz de puntos de datos es x0 x1 ... xn f (x0) f (x1) .... f (xn) %} % { Nuestra matriz de celdas contendrá números como f [x0] f [x1] f [x0, x1] f [x2] f [x1, x2] f [x0, x1, x2] f [x3] f [x2, x3] f [x1, x2, x3] f [x0, x1, x2, x3] .... .. ... .... ... %} syms x V; n = tamaño (datos); n = n (2);% número de puntos de datos f = celda (1, n); f {1} = datos (2,:);% inicializa la matriz de celdas para i = 2: n;% itera para la matriz de celdas temp = f {i-1};% ü a = 0;% es para evitar una matriz de tamaño fijo (necesitamos disminuir el tamaño de las matrices) para j = 1: (n-i + 1);% itera dentro de cada celda a (j) = (temp (j + 1) -temp (j)) / (data (1, j + i-1) -data (1, j)); fin f {i} = a; fin % Convertir matriz de celdas en forma polinómica V = f {1} (1); para i = 2: n; T = f {i} (1); para j = 1: i-1; T = T * (datos x (1, j)); fin V = V + T; fin V = simplificar (V); fin