0% encontró este documento útil (0 votos)
29 vistas3 páginas

Datos para La Interpolacion/n

Interpolación de Newton diferencias divididas (Matlab)

Cargado por

Joseph Suca
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
29 vistas3 páginas

Datos para La Interpolacion/n

Interpolación de Newton diferencias divididas (Matlab)

Cargado por

Joseph Suca
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

3.

2 Interpolación de Newton

Algoritmo

1.Entrada: Lista de puntos x y sus valores correspondientes f(x).

2.Inicialización: Crear una matriz de diferencias divididas mdd con f(x) en la primera columna.

3.Cálculo de las Diferencias Divididas:

• Para cada columna j de la matriz mdd:


• Para cada fila i en la columna j:
• Calcular la diferencia dividida y almacenarla en mdd(i,j).

4.Construcción del Polinomio de Newton:

• Inicializar el polinomio con el primer término.


• Para cada término adicional, multiplicar por el producto correspondiente y agregar al polinomio.

5.Salida: Polinomio de interpolación y gráfico de la interpolación.

Diagrama de flujo

% Ingresamos datos
fprintf('Datos para la interpolacion\n');

Datos para la interpolacion

x = [1 2 3 5 7 8];
fx = [3 6 19 99 291 444];

n = length(fx);
mdd = zeros(n, n);

% Llenar la primera columna de la matriz de diferencias divididas con fx


for i = 1:n
mdd(i, 1) = fx(i);
end

% Calcular las diferencias divididas


for j = 2:n
for i = j:n
mdd(i, j) = (mdd(i, j-1) - mdd(i-1, j-1)) / (x(i) - x(i-j+1));
end
end

% Mostrar la matriz de diferencias divididas


disp('Matriz de diferencias divididas:');

1
Matriz de diferencias divididas:

disp(mdd);

3 0 0 0 0 0
6 3 0 0 0 0
19 13 5 0 0 0
99 40 9 1 0 0
291 96 14 1 0 0
444 153 19 1 0 0

% Construir el polinomio de interpolación de Newton


syms X;
polinomio = mdd(1, 1);
producto = 1;
for k = 1:n-1
producto = producto * (X - x(k));
polinomio = polinomio + mdd(k+1, k+1) * producto;
end

% Simplificar el polinomio
polinomio = simplify(polinomio);

% Mostrar el polinomio
disp('Polinomio de interpolación de Newton:');

Polinomio de interpolación de Newton:

disp(polinomio);

% Graficar el polinomio y los puntos dados


fplot(polinomio, [min(x) max(x)]);
hold on;
plot(x, fx, 'ro');
title('Polinomio de interpolación de Newton');
xlabel('x');
ylabel('f(x)');
legend('Polinomio de Newton', 'Datos originales');
grid on;

2
3

También podría gustarte