[Scilab-users] intrap / complex calculation

haasejos haasejos at web.de
Sun Feb 10 18:52:13 CET 2013


/hello,
to understand better how  Fourier-Series work, I wrote the program below.
When running the program, it  can be seen in the diagram, that there is a
difference in the results depending on which way these are calculated.
Can/can't "inttrap" be used for complex calculation or what else can avoid
the different results?
Thanks in advance.
Josef/

clear; clc; xdel;

function f_x = lin(x);
        f_x = 1/2*%pi.*x;
endfunction;

x = linspace (0 , 2*%pi , 400);
f_x = lin(x);


//0-ter Fourierkoeffizient
a_0 = (1/%pi)*inttrap(x , f_x); 
c_0 = a_0 / 2;

//1te Fourierkoeffizienten
a_1 = (1/%pi) * inttrap(x , (f_x .* cos(1*x)));
b_1 = (1/%pi) * inttrap(x , (f_x .* sin(1*x)));


c_11 = (a_1 - %i * b_1) / 2;
c_12 = (a_1 + %i * b_1) / 2;

c_11_i = (1/(%pi)) * inttrap(x , f_x .* (exp((-%i) * (1) * x)));
c_12_i = (1/(%pi)) * inttrap(x , f_x .* (exp((-%i) * (-1) * x)));

//2te Fourierkoeffizienten
a_2 = (1/%pi) * inttrap(x , (f_x .* cos(2*x)));
b_2 = (1/%pi) * inttrap(x , (f_x .* sin(2*x)));

c_21 = (a_2 - %i * b_2) / 2;
c_22 = (a_2 + %i * b_2) / 2;

c_21_i = 1/(%pi) * inttrap(x , f_x .* (exp((-%i) * (2) * x)));
c_22_i = 1/(%pi) * inttrap(x , f_x .* (exp((-%i) * (-2) * x)));

//3te Fourierkoeffizienten
a_3 = (1/%pi) * inttrap(x , (f_x .* cos(3*x)));
b_3 = (1/%pi) * inttrap(x , (f_x .* sin(3*x)));

c_31 = (a_3 - %i * b_3) / 2;
c_32 = (a_3 + %i * b_3) / 2;

c_31_i = 1/(%pi) * inttrap(x , f_x .* (exp((-%i) * (3) * x)));
c_32_i = 1/(%pi) * inttrap(x , f_x .* (exp((-%i) * (-3) * x)));


//4te Fourierkoeffizienten
a_4 = (1/%pi) * inttrap(x , (f_x .* cos(4*x)));
//disp('a_4 = ' +string(a_4));
b_4 = (1/%pi) * inttrap(x , (f_x .* sin(4*x)));
//disp('b_4 = ' +string(b_4));

c_41 = (a_4 - %i * b_4) / 2;
c_42 = (a_4 + %i * b_4) / 2;

c_41_i = 1/(%pi) * inttrap(x , f_x .* (exp((-%i) * (4) * x)));
c_42_i = 1/(%pi) * inttrap(x , f_x .* (exp((-%i) * (-4) * x)));

//5te Fourierkoeffizienten
a_5 = (1/%pi) * inttrap(x , (f_x .* cos(5*x)));
b_5 = (1/%pi) * inttrap(x , (f_x .* sin(5*x)));

c_51 = (a_5 - %i * b_5) / 2;
c_52 = (a_5 + %i * b_5) / 2;

c_51_i = 1/(%pi) * inttrap(x , f_x .* (exp((-%i) * (5) * x)));
c_52_i = 1/(%pi) * inttrap(x , f_x .* (exp((-%i) * (-5) * x)));


         
f_x_na = a_0/2 +...
         a_1*cos(x) + b_1*sin(x) +...
         a_2*cos(2*x) + b_2*sin(2*x) +...
         a_3*cos(3*x) + b_3*sin(3*x) +...
         a_4*cos(4*x) + b_4*sin(4*x) +...
         a_5*cos(5*x) + b_5*sin(5*x);


f_x_na_complex1 = c_0 +...
                 c_11 * exp(%i * 1 * x) + c_12 * exp(%i * (-1) * x)+...
                 c_21 * exp(%i * 2 * x) + c_22 * exp(%i * (-2) * x)+...
                 c_31 * exp(%i * 3 * x) + c_32 * exp(%i * (-3) * x)+...
                 c_41 * exp(%i * 4 * x) + c_42 * exp(%i * (-4) * x)+...
                 c_51 * exp(%i * 5 * x) + c_52 * exp(%i * (-5) * x);
                
f_x_na_complex2 = c_0 +... 
                 c_11_i * exp(%i * 1 * x) + c_12_i * exp(%i * (-1) * x)+...
                 c_21_i * exp(%i * 2 * x) + c_22_i * exp(%i * (-2) * x)+...
                 c_31_i * exp(%i * 3 * x) + c_32_i * exp(%i * (-3) * x)+...
                 c_41_i * exp(%i * 4 * x) + c_42_i * exp(%i * (-4) * x)+...
                 c_51_i * exp(%i * 5 * x) + c_52_i * exp(%i * (-5) * x);                 


plot2d(x' ,[f_x' f_x_na' f_x_na_complex1' f_x_na_complex2']);






--
View this message in context: http://mailinglists.scilab.org/intrap-complex-calculation-tp4025904.html
Sent from the Scilab users - Mailing Lists Archives mailing list archive at Nabble.com.



More information about the users mailing list