0

在matlab中,当k为1到6时,我实现了级数之和(x^k)/(2*k),如下:

syms x;
syms k real;
symsum(x^k/(2*k), k, 1, 6)

上述总和只有一个符号变量 (x)。现在我想在 Matlab 中实现以下总和(alpha 和 n 是常数)。如您所见,根据 n 的值,我们将有不同数量的符号变量。例如,如果 n=2,那么我们有 2 个符号变量 x1 和 x2。如果 n=4,那么我们有 4 个符号变量 x1、x2、x3 和 x4。如何在 Matlab 中实现这一点?

在此处输入图像描述

4

2 回答 2

1

您可以使用符号变量创建一个 1xN 向量

A=sym('A',[1 N]);

然后i使用 . 访问第 - 个元素A(i)

有关更多详细信息,请参见此处

至于写总和,我真的无能为力。我认为您可以使用 for 循环并指定索引,即

S=0;
for i=1:N/2
    S=S+alpha*(x(2*i)-x(2*i-1)^2)+(1-x(2*i-1))^2;
end

但这根本不能简化答案。不过,我不知道有更好的方法。

于 2013-11-04T03:33:03.180 回答
0

如果您可以接受 Mupad 解决方案,请尝试

sum(alpha*(x(2*k)-x(2*k-1)^2)+(1-x(2*k-1))^2, k=1..n/2)

当然你应该声明alphan

于 2013-11-04T13:06:50.107 回答