Está en la página 1de 2

Vamos a coger N par.

Las entradas del programa son un vector

de puntos x que representan las ordenadas (datos) para un

conjunto de abscisas equiespaciadas entre 0 y 2pi.

Introducimos el conjunto de abscisas puntos entre 0 y 2pi

en los cuales queremos evaluar el interpolante.

N=length(x)

A vector de longitud N/2+1 (coeficientes cosenos)

B vector de longitud N/2-1 (coeficientes senos)

Calculamos los coeficientes

for k from 0 to N/2

for j from 0 to N-1

A(k)+=x(j)*cos(2*k*pi*j/N)*2/N;

end

end

for k from 1 to N/2-1

for j from 0 to N-1

B(k)+=x(j)*sin(2*k*pi*j/N)*2/N;

end

end

puntos vector de abscisas de puntos entre 0 y 2pi

donde se quiere interpolar

long = length(puntos)
Calculamos el valor en los puntos introducidos

for i from 0 to long-1

valor(i)=A(0)/2+A(N/2)/2*cos(N*puntos(i)/2);

for r from 1 to N/2-1

valor(i)+=A(r)*cos(r*puntos(r))+B(r)*sin(r*puntos(r));

end

end

plot(puntos, valor)

Para pintar los puntos iniciales encima calculamos sus abscisas

for m from 0 to N-1

abscisa(m)=2*pi*m/N;

end

plot(abscisa, x);

También podría gustarte