jueves, 24 de noviembre de 2022

Tutorial en Octave Matlab para Interpolación con Chebyshev paso a paso

%Tutorial en Octave Matlab para Interpolación con Chebyshev paso a paso

disp("Interpolación con Chebyshev");

%Autor: Alexander Arias

%Fecha: 2022-11-24

%

%https://eclipse.umbc.edu/robucci/cmpeRSD/Lectures/Lecture19__Implementation_of_Elementary_Functions/


%\begin{matrix}

%T_{0}(x)=1\\

%T_{1}(x)=x\\

%T_{2}(x)=2x^{2}-1\\

%T_{3}(x)=4x^{3}-3x\\

%T_{4}(x)=8x^{4}-8x^{2}+1\\

%T_{5}(x)=16x^{5}-20x^{3}+5x\\

%\end{matrix}


disp('Interpolar la función f(x)=1/(1+exp(-5x)')

disp('Intervalo [-1,1]');


disp('Calcular los pesos wi');

disp('w0 Para T0(x)=1')

w(1)= 1/pi*integral(@(x) (1./((1+exp(-5*x)).*sqrt(1-x.^2))),-1,1)

disp('w1 Para T1(x)=x')

w(2)=2/pi*integral(@(x) (x./((1+exp(-5*x)).*sqrt(1-x.^2))),-1,1)

disp('w2 Para T2(x)=2*x.^2-1')

w(3)=2/pi*integral(@(x) ((2*x.^2-1)./((1+exp(-5*x)).*sqrt(1-x.^2))),-1,1)

disp('w3 Para T3(x)=4*x^3-3*x')

w(4)=2/pi*integral(@(x) ((4*x.^3-3*x)./((1+exp(-5*x)).*sqrt(1-x.^2))),-1,1)

disp('w4 Para T4(x)=8*x.^4-8*x.^2+1')

w(5)=2/pi*integral(@(x) ((8*x.^4-8*x.^2+1)./((1+exp(-5*x)).*sqrt(1-x.^2))),-1,1)

disp('w5 Para T5(x)=8*x.^4-8*x.^2+1')

w(6)=2/pi*integral(@(x) ((16*x.^5-20*x.^3+5*x)./((1+exp(-5*x)).*sqrt(1-x.^2))),-1,1)


%T0=@(x)(1)

%T1=@(x)(x)

x=-1:2/100:1;

T0=1;

T1=x;

T2=2*x.*T1-T0;

T3=2*x.*T2-T1;

T4=2*x.*T3-T2;

T5=2*x.*T4-T3;

%Calcula valores de la función

f=w(1)*T0+w(2)*T1+w(3)*T2+w(4)*T3+w(5)*T4+w(6)*T5;

y=1./(1+exp(-5*x));



%Interpolación con 6 puntos que sean nodos chebyshev

function x=nodos_cheb(a,b,n)

%n es el grado del polinomio con n+1 puntos

    for k=1:n+1

        x(k)=(a+b)/2+(b-a)/2 * cos((2*(n-(k-1))+1)*pi/(2*n+2));

    end

end %function


xc=nodos_cheb(-1,1,5);

ya=1./(1+exp(-5*xc));

A=vander(xc);

p=A\ya';

%xg=linspace(xc(1),xc(end));

yp=polyval(p,x);


plot(x,f,'g',x,y,'r',x,yp,'b')



Ejecución:

octave:21> source("mn_2022_11_24_cheb_interpol.m")
Interpolaciónn con Chebyshev
Interpolar la función f(x)=1/(1+exp(-5x)
Intervalo [-1,1]
Calcular los pesos wi
w0 Para T0(x)=1
w = 0.5000
w1 Para T1(x)=x
w =

   0.5000   0.5877

w2 Para T2(x)=2*x.^2-1
w =

   5.0000e-01   5.8768e-01  -8.5124e-09

w3 Para T3(x)=4*x^3-3*x
w =

   5.0000e-01   5.8768e-01  -8.5124e-09  -1.2150e-01

w4 Para T4(x)=8*x.^4-8*x.^2+1
w =

   5.0000e-01   5.8768e-01  -8.5124e-09  -1.2150e-01  -8.5124e-09

w5 Para T5(x)=8*x.^4-8*x.^2+1
w =

   5.0000e-01   5.8768e-01  -8.5124e-09  -1.2150e-01  -8.5124e-09   3.5318e-02


No hay comentarios:

Publicar un comentario