How to create a Fourier series using for loops
11 ビュー (過去 30 日間)
古いコメントを表示
I am supposed to plot this function on matlab along with another function. I have tried using for loops to create this, I am new to matlab and I don't know what I am doing wrong. Could someone point me in the right direction please? the range for x is from -2 to 2 and NUM is 14
f_init = repelem(0.5,401)
f_approx = (2/((k^2)*(pi^k)))*((-1^k)-1)*cos(k*((pi*x)/2))+(2/(pi*k))*(-1^(k+1))*sin(k*(pi*x/2));
t= length(x)
for k=1:14
for x=-2:0.01:2
F(x) = f_init(t)+ f_approx(k);
end
end
plot(F);
0 件のコメント
採用された回答
Torsten
2022 年 10 月 2 日
編集済み: Torsten
2022 年 10 月 2 日
k = 1:14;
x = (-2:0.01:2).';
f = 0.5 + sum(2./(k.^2*pi^2).*((-1).^k-1).*cos(pi*k.*x/2) + 2./(k*pi).*(-1).^(k+1).*sin(pi*k.*x/2),2);
plot(x,f)
f is a (401x14) matrix with row i made up of the k terms of the Fourier series, evaluated at x(i).
3 件のコメント
Torsten
2022 年 10 月 2 日
.^, ./ and .* are elementwise operations for vectors and matrices being potentiated, divided or multiplied.
This is in contrast to matrix operations.
Look what comes out if you try
a = [1 2 3];
b = [4 5 6];
a.^b
a./b
a.*b
or
(a.').^b
(a.')./b
(a.').*b
For further information, see
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Fourier Analysis and Filtering についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!