Matlab:如何绘制这个傅立叶级数,其中每个索引都是奇数

Gol*_*ame 1 matlab

在此处输入图片说明

如何输入上面显示的公式?我似乎无法得到 n = 1, 3, 5, ... 我沿着这条线尝试了不同的代码:

syms k x
x = 1/2 + symsum(k^2, k, [1:2:15])
Run Code Online (Sandbox Code Playgroud)

但是有一个错误信息。

另外,附带说明一下,在我获得此代码的 matlab 文档示例中显示的 syms 和“x”变量的目的是什么?

aks*_*adv 5

假设您不承诺使用symsum,这是一种方法:

t = [0:0.01:4]; % time grid
n = [1:2:15];   % range of n

x = 0.5 + sum(2/pi*diag(1./n)*sin(pi*n(:)*t(:)')); % summation

% plot
figure;
plot(t, x);
xlabel('t');
ylabel('x');
Run Code Online (Sandbox Code Playgroud)

以防万一您不熟悉 Matlab,以下是对这里发生的事情的一些解释:

  • n(:) 是列向量
  • t(:)' 是 r 行向量
  • 因此,乘积n(:)*t(:)'是原始方程中的n时间t项矩阵。矩阵中的每一列对应于 中的一个不动点t
  • 该术语diag(1./n)*缩放上述矩阵的每一行以处理n原始方程中的除法运算。
  • 最后,sum()将矩阵折叠为一行,其元素是各个列的总和。

这是通过评估上述代码获得的结果图。