Programa para calcular un 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 =...
Regístrate para leer el documento completo.