Need to solve Fourier Series script

1 visualización (últimos 30 días)
NANDEESWARAN
NANDEESWARAN el 18 de Nov. de 2023
Comentada: NANDEESWARAN el 18 de Nov. de 2023
clear all;clc;
x = 0:0.01:1;
for i = 1: size(x,2)
y(i) = exact(x(i));
f(i) = fourier(x(i),3);
g(i) = fourier(x(i),6);
end
function func = phi(x,n)
func = cos(pi * (n - 1/2) * x);
end
function coef = c(n)
beta = pi * (2 * n - 1);
coef = 8 * (cos(beta / 4) - cos(beta / 2)) / beta^2;
end
function f = fourier(x,N)
f = 0;
for n = 1: N
f = f + c(n) * phi(x,n);
end
end
function f = exact(x)
if x < 1/2
f = 1/2;
else
f = 1 - x;
end
end
plot(x,y,'-','LineWidth',5,x,f,'--','LineWidth',5,x,g,'-','LineWidth',5);
legend('Exact','Fourier (3 terms)','Fourier (6 terms)');

Respuesta aceptada

madhan ravi
madhan ravi el 18 de Nov. de 2023
plot(x,y,'-',x,f,'--',x,g,'-','LineWidth',5);
legend('Exact','Fourier (3 terms)','Fourier (6 terms)'); % use this line before function
  2 comentarios
madhan ravi
madhan ravi el 18 de Nov. de 2023
You could preallocate variables before the for loop
NANDEESWARAN
NANDEESWARAN el 18 de Nov. de 2023
Thanks Sir.

Iniciar sesión para comentar.

Más respuestas (1)

VBBV
VBBV el 18 de Nov. de 2023
if you have the entire code in one script file, then you can put all the functions after the plot function call as below otherwise,if you have them in separate function files, you can just call plot function as below
clear all;clc;
x = 0:0.01:1;
for i = 1: size(x,2)
y(i) = exact(x(i));
f(i) = fourier(x(i),3);
g(i) = fourier(x(i),6);
end
hold on
plot(x,y,'-','LineWidth',2)
plot(x,f,'--','LineWidth',2)
plot(x,g,'-','LineWidth',2);
legend('Exact','Fourier (3 terms)','Fourier (6 terms)');
function f = exact(x)
if x < 1/2
f = 1/2;
else
f = 1 - x;
end
end
function f = fourier(x,N)
f = 0;
for n = 1: N
f = f + c(n) * phi(x,n);
end
end
function func = phi(x,n)
func = cos(pi * (n - 1/2) * x);
end
function coef = c(n)
beta = pi * (2 * n - 1);
coef = 8 * (cos(beta / 4) - cos(beta / 2)) / beta^2;
end
  1 comentario
NANDEESWARAN
NANDEESWARAN el 18 de Nov. de 2023
Thanks Sir . I appreciate your reply, Its working now.

Iniciar sesión para comentar.

Etiquetas

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by