Fourier Series: A_0=0, a_n=0, b_n=2/(n∏); Period p=2

tonytp70
Messages
3
Reaction score
0

Homework Statement



Fourier coefficients: A_0=0, a_n=0, b_n=2/(n∏) ; period p=2

Homework Equations



Fourier series


The Attempt at a Solution



Attempt was not good enough!
 
Physics news on Phys.org
Welcome to PF;
Were you supposed to write a MATLAB script to calculate a number of Fourier coefficients?
Please show us the attempt anyway - along with your reasoning.
What was it about your attempt that was "not good enough"?
 
Alas, the poster's attempt at posting a question wasn't good enough.
 
jokes?

I get it; that's a joke right?

Very good streamking!

One must not lose their sense of humor, even in the mist of battle, very clever, but not good enough!


Alas,



%% I_A
% BEGIN SOME FUNCTION AND VARIABLE DECLARATIONS
syms x;
length_of_k = 25; % Number of coefficients to calculate
p = pi; % Function period
y = sin(x); % Function
x_test = -p : 1/25 : 2*p; % Original x values
y_test = sin(x_test); % Original f(x)
% END SOME FUNCTION

% BEGIN COMPUTING FOURIER COEFFICIENTS
% -- BEGIN NOTES --
% Calculate : a_0, a_k, b_k with k > 0
% a_0 = (1/p)*int(f(t), t, 0, p) -- Integral f(t) w.r.t. t from 0 to p
% a_k = (2/p)*int(f(t)*cos((2*pi*k*t)/p), t, 0, p)
% b_k = (2/p)*int(f(t)*sin((2*pi*k*t)/p), t, 0, p)
% -- END NOTES --

a_0 = (1/p)*int(y, x, 0, p); % Calculate as priming reed
a_coeff = []; % Declaring null array
b_coeff = []; % Declaring null array
fprintf('Fourier Coefficient:\ta_0 ==> %0.2f\n', double(a_0))

for k = 1 : length_of_k
a_coeff = [a_coeff, (2/p)*int(x*cos(2*pi*k*x/p), x, 0, p)];
b_coeff = [b_coeff, (2/p)*int(x*sin(2*pi*k*x/p), x, 0, p)];
fprintf('Fourier Coefficient:\t');
fprintf('a_%1.0f ==> %0.3f\t\t', k, double(a_coeff(k)));
fprintf('b_%1.0f ==> %0.3f\n', k, double(b_coeff(k)));
end
% END COMPUTING FOURIER COEFFICIENTS

% BEGIN GENERATING FOURIER TERMS
fs_x = [];
fs_a0_calc = (a_0/2);
for i = 1 : length(x_test)
a_calc = 0;
b_calc = 0;
for k = 1 : length_of_k
a_calc = a_calc + a_coeff(k)*cos(k*x_test(i));
b_calc = b_calc + b_coeff(k)*sin(k*x_test(i));
end
fs_x = [fs_x, fs_a0_calc + a_calc + b_calc];
end
% END GENERATING FOURIER TERMS

% BEGIN PLOTS
plot(x_test, y_test, 'b', x_test, fs_x, 'r'); % Plot the original function
grid on; % Turn on grid
% END PLOTS

% BEGIN DEBUGGING CODE
fprintf('Max of f(x) = %0.4f\n', max(y_test));
fprintf('Min ox f(x) = %0.4f\n', min(y_test));
fprintf('Max of FS[x] = %0.4f\n', max(double(fs_x)));
fprintf('Min of FS[x] = %0.4f\n', min(double(fs_x)));
% END DEBUGGING CODE
 
You missed out the reasoning and why it was not "good enough".
 
I will know more about that as I become better with matlab. There were requirements that I was not able to meet at this point and time, but I will become better and get to a point where I am comfortable with matlab. It will take time, but I will learn!
 
There are two things I don't understand about this problem. First, when finding the nth root of a number, there should in theory be n solutions. However, the formula produces n+1 roots. Here is how. The first root is simply ##\left(r\right)^{\left(\frac{1}{n}\right)}##. Then you multiply this first root by n additional expressions given by the formula, as you go through k=0,1,...n-1. So you end up with n+1 roots, which cannot be correct. Let me illustrate what I mean. For this...
Back
Top