Filter löschen
Filter löschen

Why I'm I getting results in terms of t for an and bn even though it is an integration with specific limits?

4 Ansichten (letzte 30 Tage)
%Excercise 4
syms t
syms N
%prompt = "Please enter a function rules for variable segments of the function f: ";
%'Enter 2D array with [] around it and commas between the columns and semicolon at end of each row '
f = input('Please enter function rules for variable segments of the function f:')
flim= input('Please enter real numbers to define the limits of the segments of f:')
N= input('Please enter an intiger to specifie the max order of Fourier coefficients of f:')
%flimFirst= flim(1);
%filmEnd= flim(end);
%a0= 2/(flim(end)-flim(1))*int(f(1),flim(1),flim(2));
%a0= sprintf('%.4f', a0)
%a02= 2/(flim(end)-flim(1))*int(f(2),flim(2),flim(3));
%a02= sprintf('%.4f', a02)
T = flim(end)-flim(1);
w0 = 2*pi/T;
a0= (2/T)*int(f(length(f)),t,flim(length(flim)-1),flim(length(flim)));
sprintf('%.4f', a0)
a02= (2/T)*int(f(1),t,flim(1),flim(2));
sprintf('%.4f', a02)
a03= (2/T)*int(f(2),t,flim(2),flim(3));
sprintf('%.4f', a02)
for i = 1:N
for k= 2:length(flim)
an= (2/T)*int((f(k-1))*cos(N*w0*t)),t,flim(k-1),flim(k);
an(i)=an;
bn= (2/T)*int((f(k-1))*sin(N*w0*t)),t,flim(k-1),flim(k);
bn(i)=bn;
fs= (a0/2)+(an*cos(w0*N*t))+(bn*sin(w0*N*t));
end
end
an
%sprintf('%.4f', an);
bn
%sprintf('%.4f', bn);
fs
%sprintf('%.4f', fs);
  3 Kommentare
Stephen23
Stephen23 am 14 Dez. 2022
Bearbeitet: Stephen23 am 14 Dez. 2022
Original question by Stefanos retrieved from Google Cache:
"Why I'm I getting results in terms of t for an and bn even though it is an integration with specific limits?"
%Excercise 4
Theme
syms t
syms N
%prompt = "Please enter a function rules for variable segments of the function f: ";
%'Enter 2D array with [] around it and commas between the columns and semicolon at end of each row '
f = input('Please enter function rules for variable segments of the function f:')
flim= input('Please enter real numbers to define the limits of the segments of f:')
N= input('Please enter an intiger to specifie the max order of Fourier coefficients of f:')
%flimFirst= flim(1);
%filmEnd= flim(end);
%a0= 2/(flim(end)-flim(1))*int(f(1),flim(1),flim(2));
%a0= sprintf('%.4f', a0)
%a02= 2/(flim(end)-flim(1))*int(f(2),flim(2),flim(3));
%a02= sprintf('%.4f', a02)
T = flim(end)-flim(1);
w0 = 2*pi/T;
a0= (2/T)*int(f(length(f)),t,flim(length(flim)-1),flim(length(flim)));
sprintf('%.4f', a0)
a02= (2/T)*int(f(1),t,flim(1),flim(2));
sprintf('%.4f', a02)
a03= (2/T)*int(f(2),t,flim(2),flim(3));
sprintf('%.4f', a02)
for i = 1:N
for k= 2:length(flim)
an= (2/T)*int((f(k-1))*cos(N*w0*t)),t,flim(k-1),flim(k);
an(i)=an;
bn= (2/T)*int((f(k-1))*sin(N*w0*t)),t,flim(k-1),flim(k);
bn(i)=bn;
fs= (a0/2)+(an*cos(w0*N*t))+(bn*sin(w0*N*t));
end
end
an
%sprintf('%.4f', an);
bn
%sprintf('%.4f', bn);
fs
%sprintf('%.4f', fs);

Melden Sie sich an, um zu kommentieren.

Antworten (1)

Torsten
Torsten am 13 Dez. 2022
syms t
f = [pi+t,pi-t];
flim= [-pi,0,pi];
N = 5;
T = flim(end)-flim(1);
w0 = 2*pi/T;
fs = 0.0;
for i = 0:N
for k= 2:length(flim)
an= (2/T)*int(f(k-1)*cos(i*w0*t),t,flim(k-1),flim(k));
bn= (2/T)*int(f(k-1)*sin(i*w0*t),t,flim(k-1),flim(k));
fs= fs + an*cos(w0*i*t)+bn*sin(w0*i*t);
end
if i==0
fs = fs/2;
end
end
fs = matlabFunction(fs);
t = -pi:0.01:pi;
plot(t,fs(t))
  15 Kommentare
Torsten
Torsten am 14 Dez. 2022
Summarizing Walters's response:
You should improve your MATLAB skills and invest two hours of your time to visit MATLAB's online course for free:

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Loops and Conditional Statements 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!

Translated by