如何将 symprod 与符号数组一起使用?

How to use symprod with symbolic arrays?

我想用符号求解这个方程:

x_i = x_0 + \prod_{j = 0}^{i-1}(a_{3-j})

我写了下面的脚本,直到我调用 symprod:

try
  pkg load symbolic
end
a = sym('a', [1 3]);
syms x0 i
x0*symprod(a(i), i, [1 3])

错误消息说:

error: subscript indices must be integers or boolean

但是,这有效:

a(2)

ans = (sym) a12

我的代码有什么问题? (我也尝试使用 Matlab Symbolic Toolbox;也不起作用,但错误消息不同。)

表达式 a(i) 已经存在问题,这样的索引是不可能的:

>> a(i)
error: subscript indices must be integers or boolean

在 a 是整数索引的情况下,您最好使用 prod:

>> prod(a)
ans = (sym) a₁₁⋅a₁₂⋅a₁₃

另一种方法是使用函数:

>> syms fa(i)
>> e=x0*symprod(fa(i), i, [1 3])
e = (sym) x₀⋅fa(1)⋅fa(2)⋅fa(3)