Aproximación de una función a un polinomio de grado n
Dada una función f(x) continua en [a,b], vamos a buscar un polinomio Pn(x) de grado n
tal que la integral
sea mínima. Para calcular el mínimo, se deriva respecto a a1, a2...an+1
Obtenemos el siguiente sistema de n ecuaciones con n incógnitas
o bien,
Llamando
Escribimos el sistema de n ecuaciones con n incógnitas de forma matricial
Despejamos el vector a de las incógnitas utilizando el operador división por la izquierda \
Aproximación de la función ex a un polinomio de segundo grado
Calculamos los coeficientes a1, a2 y a3 del polinomio P2(x)=a1x2+a2x+a3
El sistema de ecuaciones en forma matricial se escribe
Los elementos de la matriz sk vales
Para obtener los elementos del vector b, integramos por partes, o bien, con la ayuda de Math Symbolic
>> int('x^2*exp(x)',x,-1,1)
ans =exp(1) - 5*exp(-1)
>> int('x*exp(x)',x,-1,1)
ans =2*exp(-1)
>> int('exp(x)',x,-1,1)
ans =exp(1) - exp(-1)
El sistema de ecuaciones es el siguinte
El siguiente script representa en el intervalo [-1,1], la función ex y el polinomio P2(x)=a1x2+a2x+a3
A=[2/5,0,2/3;0,2/3,0;2/3,0,2];
e=exp(1);
b=[e-5/e;2/e;e-1/e];
a=A\b;
p=@(x) polyval(a,x);
hold on
fplot(@exp,[-1,1]);
fplot(p,[-1,1])
hold off
legend('exponencial','polinomio','location','northwest')
grid on
xlabel('x')
ylabel('y')
title('Aproximando exp(x) a un polinomio')

Como vemos en la figura hay una diferencia apreciable entre la función y el polinomio de segundo grado P2(x)=a1x2+a2x+a3, cuyos coeficientes son
a =
0.5367
1.1036
0.9963
Aproximación de la función ex a un polinomio de tercer grado
Elaboramos un script que nos permita aproximar la función ex a un polinomio de grado n, Pn(x) en el intervalo [-1,1]. Sea por ejemplo, n=3
n=3; %grado del polinomio
syms x;
s=zeros(2*n+1,1);
for k=1:2*n+1
if rem(2*n+2-k,2)==0
s(k)=0;
else
s(k)=2/(2*n+2-k);
end
end
A=zeros(n+1,n+1);
for k=1:n+1
A(k,:)=s(k:n+k);
end
b=zeros(n+1,1);
for k=1:n+1
f=exp(x)*x^(n+1-k);
b(k)=int(f,x,-1,1);
end
a=A\b;
p=@(x) polyval(a,x);
hold on
fplot(@exp,[-1,1]);
fplot(p,[-1,1])
hold off
legend('exponencial','polinomio','location','northwest')
grid on
xlabel('x')
ylabel('y')
title('Aproximando exp(x) a un polinomio')

Como vemos en la figura ya no hay apenas diferencia entre la función y el polinomio de tercer grado P3(x)=a1x3+a2x2+a3x+a4, cuyos coeficientes son
a =
0.1761
0.5367
0.9980
0.9963
Aproximación de la función sin(πx) a un polinomio de segundo grado
Aproximamos la función sin(πx) a un polinomio de segundo grado en el intervalo [0,1]
Los valores de sk y de bk se calculan del siguiente modo
n=2; %grado del polinomio
syms x;
s=zeros(2*n+1,1);
for k=1:2*n+1
s(k)=1/(2*n+2-k);
end
A=zeros(n+1,n+1);
for k=1:n+1
A(k,:)=s(k:n+k);
end
b=zeros(n+1,1);
for k=1:n+1
f=sin(pi*x)*x^(n+1-k);
b(k)=int(f,x,0,1);
end
a=A\b;
p=@(x) polyval(a,x);
f=@(x) sin(pi*x);
hold on
fplot(f,[0,1]);
fplot(p,[0,1])
hold off
legend('sin(\pix)','polinomio','location','northwest')
grid on
xlabel('x')
ylabel('y')
title('Aproximando sin(\pix) a un polinomio')

Como vemos en la figura ya hay poca diferencia entre la función sin(πx) y el polinomio de segundo grado P2(x)=a1x2+a2x+a3, cuyos coeficientes son
a =
-4.1225
4.1225
-0.0505