Lagrange-Chebyshev

Construir um procedimento para escrever um polinómio interpolador de Lagrange nos nós de Chebyshev num intervalo [a,b] dado o grau e a expressão analítica da função

> PoliLagrangeChebyshev:=proc(grau::posint,func::procedure,a::numeric,b::numeric,digitos::posint)
local m,k,X,fX,i,polinomio;
m:=grau+1;
fX:=vector(m);
X:=vector(m,k->evalf((a+b)/2+(b-a)/2*cos(((2*k-1)*Pi)/(2*m))));
for i from 1 to m do
fX[i]:=func(X[i]);
od;
polinomio:=Lagrange(X,fX);

RETURN(simplify(polinomio));

end:

> f:=x->(4*x-7)/(x-2);

[Maple Math]

> polinomio:=PoliLagrangeChebyshev(5,f,0,1.5,10);

[Maple Math]
[Maple Math]

> poli:=PoliLagrangeChebyshev(5,f,-1,1,10);
p:=x->poli:
plot(p(x),x=-1..1);

[Maple Math]
[Maple Math]

[Maple Plot]

> p:=x->polinomio:
plot(p(x),x=0..1.5);

[Maple Plot]

> with(plots):

> A:=plot(p(x),x=0..1.5):
display(plotf,A);

[Maple Plot]

>