How do I create a user defined function using the fourier series?
Mostrar comentarios más antiguos
I am supposed to create a user defined function using the Fourier series function that will do the following: (1) accept input variables c, L, N, and vecx (2) approximate the step function f(x), according to the Fourier series, over the set range of x values and (3) return an output for f(x) evaluated at each value of x. What I am thinking is that I need to use nested loops but I have no idea how to start. This is what I have so far:
function myoutput = mystep( c, L, N, vecx)
lengthx = length(vecx)
fxvec = zeros(1, lengthx)
while vecx >= 0 && vecx <= 2L
f(x) = (c/L) + ((2/pi).*(((-1^N)/N)*sin((N*pi*c)/L)*cos((N*pi*vecx)/L)))
end
Am I correct so far or do I need to use for loops or while loops to make the Fourier series work?
2 comentarios
Walter Roberson
el 24 de Mzo. de 2018
Udf? User defined function?
macabe banchero
el 27 de Mzo. de 2018
Respuesta aceptada
Más respuestas (2)
Abraham Boayue
el 28 de Mzo. de 2018
I made a little error, here is the correction. Replace the expression for F with the following line.
F = F + an*cos(n*pi*x/L);
I am simply performing the summation in the equation of the Fourier series. Check this link to a solution that I made for someone, you can improve your function by following the code. https://www.mathworks.com/matlabcentral/answers/388949-how-can-i-perform-a-fourier-series-on-this-function
Abraham Boayue
el 28 de Mzo. de 2018
Editada: Abraham Boayue
el 28 de Mzo. de 2018
Your function wasn't designed to ask the user for inputs as you are attempting to do, although we can alter it to do that. To run the function, simply create an mfile like this. Let me know if you want the input feature. (You will get an error when you run this code, just change function fx to function F.
c = 6;
N = 100;
x0 = 0;
x1 = 10;
F = fseries(c,N,x0,x1);
5 comentarios
macabe banchero
el 28 de Mzo. de 2018
Walter Roberson
el 28 de Mzo. de 2018
c = input('c');
and so on
x = linspace(0, 2*L);
f = YOUR_UDF(Appropriate Parameters Go Here);
plot(x, f);
macabe banchero
el 28 de Mzo. de 2018
Walter Roberson
el 28 de Mzo. de 2018
Sounds about right.
macabe banchero
el 28 de Mzo. de 2018
Categorías
Más información sobre Loops and Conditional Statements en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!