Need to solve Fourier Series script
    2 Ansichten (letzte 30 Tage)
  
       Ältere Kommentare anzeigen
    
    NANDEESWARAN
 am 18 Nov. 2023
  
    
    
    
    
    Kommentiert: NANDEESWARAN
 am 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 Kommentare
Akzeptierte Antwort
  madhan ravi
      
      
 am 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 Kommentare
Weitere Antworten (1)
  VBBV
      
      
 am 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
Siehe auch
Kategorien
				Mehr zu Characters and Strings finden Sie in Help Center und File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!



