Need to solve Fourier Series script
    3 views (last 30 days)
  
       Show older comments
    
    NANDEESWARAN
 on 18 Nov 2023
  
    
    
    
    
    Commented: NANDEESWARAN
 on 18 Nov 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)');
0 Comments
Accepted Answer
  madhan ravi
      
      
 on 18 Nov 2023
         plot(x,y,'-',x,f,'--',x,g,'-','LineWidth',5);
legend('Exact','Fourier (3 terms)','Fourier (6 terms)'); % use this line before function
2 Comments
More Answers (1)
  VBBV
      
      
 on 18 Nov 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
See Also
Categories
				Find more on Characters and Strings in Help Center and File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


