trabajo

6
Universidad de Tarapacá – Departamento de Matemática Introducción En la actualidad existen algunos comportamientos que solo pueden ser expresados en forma numérica, ya que no se cuenta con una función analítica que los caracterice. Por esta causa se desarrollaron métodos capaces de construir una interpretación aproximada del comportamiento del sistema. Existen diversos métodos para encontrar un polinomio interpolador, a saber: método de Newton, Lagrange, Segmentario, etc., la diferencia entre uno y otro estriban solamente en la complejidad del método y su error de aproximación. En este informe se desarrollará un algoritmo capaz de formar un polinomio interpolador por el método de Newton. 1/6

Upload: raul-koerrales

Post on 11-Sep-2015

214 views

Category:

Documents


1 download

DESCRIPTION

dsajidjads

TRANSCRIPT

Algoritmo para calcular el polinomio interpolador de newton

Universidad de Tarapac Departamento de Matemtica

Introduccin

En la actualidad existen algunos comportamientos que solo pueden ser expresados en forma numrica, ya que no se cuenta con una funcin analtica que los caracterice. Por esta causa se desarrollaron mtodos capaces de construir una interpretacin aproximada del comportamiento del sistema.

Existen diversos mtodos para encontrar un polinomio interpolador, a saber: mtodo de Newton, Lagrange, Segmentario, etc., la diferencia entre uno y otro estriban solamente en la complejidad del mtodo y su error de aproximacin.

En este informe se desarrollar un algoritmo capaz de formar un polinomio interpolador por el mtodo de Newton.

Algoritmo propuesto para calcular el polinomio interpolador de newton El algoritmo anterior calcula una tabla (matriz) con las diferencias divididas, utilizando la ecuacin.

En el siguiente paso se calcula los coeficientes del polinomio interpolador de newton, pero para calcular estos coeficientes se utiliza solo los elementos de la diagonal de la tabla de diferencias divididas. Es decir se calcula un polinomio interpolador de newton, con la siguiente forma.

Para hacer un uso ms eficiente de la memoria de un computador y utilizar un vector en vez de una matriz para almacenar la diagonal de las diferencias divididas se utiliza la siguiente modificacin.

El Proceso realizado por la modificacin del algoritmo se aprecia en la tabla, estos son los valores va tomando el vector A, en el transcurso del programa .1era Fase1er Ciclo2do Ciclo.....nth Ciclo

y0

y1

y2

y3

...............

yn

.......

1era Fase: Los valores del vector Y, son asignados al vector A

1er Ciclo: Los valores del vector A, son modificados desde el punto 1 hasta n, los valores se obtienen utilizando la formula de diferencias divididas.

2do Ciclo: Los valores de A son modificados, desde el punto 2 hasta n, utilizando la formula de diferencias divididas.

nth Ciclo: Este ultimo ciclo calcula el valor de la ultima diferencia dividida

En trmino de procesos realizado, el algoritmo modificado es igual al original. La diferencia estriba en que el nuevo algoritmo guarda los datos necesarios en un vector de orden n y no una matriz. Para que el algoritmo funcione correctamente se deben hacer algunos cambios, ya que esta escrito para que la primera ubicacin de un vector sea cero, siendo que en matlab la primera ubicacin es 1. Finalmente se obtiene.

Utilizando el Algoritmo modificado, calcular el Polinomio Interpolador de Newton para los siguientes datosHora131415161718

Temperatura [C]181817161514

Para este caso:

X= [13 14 15 16 17 18]Y= [18 18 17 16 15 14]

Utilizando el programa se obtiene

A= [18

0 -0.50.16667-0.0416670.0083333]

Este vector contiene la diagonal de las diferencias divididas

C= [0.0083333-0.6666721.292-339.332697.7-8536]

y en modo exacto

C= [1/120-2/3511/24-1018/326977/10-8536]

Esto implica que el polinomio de Newton para los valores dados es:

Grafica del polinomio interpolador

El algoritmo desarrollado permite obtener un polinomio de Newton de grado (n-1) con n datos. El proceso realizado por el algoritmo no permite evaluar el error de interpolacin, para poder evaluar el error de interpolacin se propone realizar la siguiente modificacin

function [C,D]=newpoly(X,Y)

%- X es un vector con la lista de las abscisas

%- Y es un vector con la lista de las ordenadas

% Resultados

%- C es un vector que contiene los coeficientes

% del polinomio interpolador, en potencias

% decrecientes de X

%- D es la tabla de diferencias divididas.

n=length(X);

D=zeros(n,n);

D(:,1)=Y;

for j=2:n

For k=j:n

D(k,j)=(D(k,j-1)-D(k-1,j-1))/(X(k)-X(k-j+1));

end

end

%clculo del vector que contiene los coeficientes

%del polinomio interpolador de Newton, escrito

%de forma habitual, en potencias decrecientes de x

C=D(n,n)

for k=(n-1):-1:1

C=conv(C,poly(X(k)));

m=length(C);

C(m)=C(m)+D(k,k);

end

for k=0:n

A(k)=Y(k);

end

for j=1:n

for k=n:-1:j

A(k)=(A(k)-A(k-1))/(X(k)-X(k-j))

end

end

n=length(X);

for k=1:n

A(k)=Y(k);

end

for j=2:n

for k=n:-1:j

A(k)=(A(k)-A(k-1))/(X(k)-X(k-j+1));

end

end

C=A(n)

for k=(n-1):-1:1

C=conv(C,poly(X(k)));

m=length(C);

C(m)=C(m)+A(k);

end

n=length(X);

for k=1:n

A(k)=Y(k);

end

for j=2:n

for k=n:-1:j

A(k)=(A(k)-A(k-1))/(X(k)-X(k-j+1));

end

end

C=A(n)

for k=(n-2):-1:1

C=conv(C,poly(X(k)));

m=length(C);

C(m)=C(m)+A(k);

end

E=A(n);

for i=n-1:-1:1

E=conv(poly(X(i)),E); % E es el vector para evaluar el

end% error de interpolacin

5/5

_1214856987.unknown

_1214929153.unknown

_1214929172.unknown

_1214929186.unknown

_1214929164.unknown

_1214857043.unknown

_1214860224.unknown

_1214845518.unknown

_1214845539.unknown

_1214846397.unknown

_1214845532.unknown

_1214845502.unknown