Programa para calcular un polinomio interpolador

Solo disponible en BuenasTareas
  • Páginas : 3 (743 palabras )
  • Descarga(s) : 0
  • Publicado : 7 de marzo de 2011
Leer documento completo
Vista previa del texto
%Programa que calcula el polinomio interpolador
n=9;
syms x;
xn=[-5 -3 -2 -1 0 1 2 3 4 5];
yn=1./(1.+xn.^2);
plot(xn,yn,'*r')
hold on
p=0;
for i=1:n
    L=1;
    for j=1:n
        ifj~=i
           L=L*(x-xn(j))/(xn(i)-xn(j));
        end
    end
    p=p+L*yn(i);
end
p=simplify(p)
     pretty(p)  
x=-5:0.01:5;
f=1./(1+x.^2);
plot(x,f);

[pic]

%Programa que calculael polinomio interpolador con comentarios

n=9;    %  número de puntos
syms x;  % define la variable simbólica para crear el polinomio
xn=[-5 -3 -2 -1 0 1 2 3 4 5];  % abscisas de los puntos ainterpolar
yn=1./(1.+xn.^2);  % ordenadas de estas abscisas
plot(xn,yn,'*r')  %  dibuja los puntos a interpolar
hold on
p=0;  % inicializa el polinomio de interpolación que empezará a calcularfor i=1:n
    L=1;
    for j=1:n
        if j~=i
           L=L*(x-xn(j))/(xn(i)-xn(j));
        end
    end
    p=p+L*yn(i);  %  forma de Lagrange
end
p=simplify(p)
     pretty(p)   % muestra el polinomio en pantalla
x=-5:0.01:5;
f=1./(1+x.^2);
plot(x,f);  %  dibuja la función a interpolar

[pic]

%Programa que calcula varios polinomios interpoladores de n+1 puntos

a=-5;b=5;
syms x;

t=-5:0.01:5;
f=1./(1+t.^2);
plot(t,f,'g.'); hold on;

for n=2:4
    h=(b-a)/n; 
    for k=1:n+1
xn(k)=a+(k-1)*h; yn(k)=1/(1+xn(k)^2);
plot(xn,yn,'*r')
    end
hold onp=0;

for i=1:n+1
    L=1;
    for j=1:n+1
        if j~=i
           L=L.*(x-xn(j))./(xn(i)-xn(j));
        end
    end
    p=p+L*yn(i);
end

ezplot(p);
hold on

end

|Se puedetrabajar con polinomios: basta tener en cuenta que un polinomio no es más que un vector. El orden de los coeficientes es |
|de mayor a menor grado, por ejemplo: |
|>>p=[1 0 2 0 3]       % Polinomio x^4+2*x^2+3 |
|p =...
tracking img