0

我试图找到这个简单的 for 循环问题的答案,但我找不到任何关于它的教程。我正在尝试计算列向量的特定条目,但错误“MuPAD 命令中的错误:DOUBLE 无法将输入表达式转换为双精度数组”不断出现。我很确定 for 循环中的两个条目都应该作为 u1,...,u20 的标量函数出现,但我一定做错了什么。我的脚本如下:

U = sym('u', [21 1]);
P(1,1) = 1;
Q(1,1) = 0;
for k = 1:20
    P(k+1,1) = 1/20*(-.3*P(k,1) +.65*Q(k,1)+U(k,1))+P(k,1);
    Q(k+1,1) = 1/20*(-.65*Q(k,1) + .3*P(k,1)-U(k,1))+Q(k,1);
end
P(21,1)
Q(21, 1)

任何帮助将不胜感激。

4

1 回答 1

0

正如大卫建议的那样,也许:

U = sym('u', [21 1]);
syms P Q
for k = 1:20
    P(k+1,1) = 1/20*(-.3*P(k,1) +.65*Q(k,1)+U(k,1))+P(k,1);
    Q(k+1,1) = 1/20*(-.65*Q(k,1) + .3*P(k,1)-U(k,1))+Q(k,1);
end
P(21,1)
Q(21, 1)

在堆栈溢出的其他地方看到了类似的解释。数组中的 2 个变量

于 2013-11-07T14:25:44.437 回答