如何输入上面显示的公式?我似乎无法得到 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”变量的目的是什么?
假设您不承诺使用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()将矩阵折叠为一行,其元素是各个列的总和。