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

Octave 如何将symprod与符号数组一起使用?,octave,symbolic-math,Octave,Symbolic Math,我想用符号来解这个方程: 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]) >> prod(a) ans = (sym) a₁₁⋅a₁₂⋅a₁₃ 错误消息显示: 错误:下标索引必须是整数或布尔值 然而,这是可行的: a(2) ans=(sym)a

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

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])
>> prod(a)
ans = (sym) a₁₁⋅a₁₂⋅a₁₃
错误消息显示:

错误:下标索引必须是整数或布尔值

然而,这是可行的:

a(2)
ans=(sym)a12

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

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

>> a(i)
error: subscript indices must be integers or boolean
如果a是整数索引,则最好使用
prod

try
  pkg load symbolic
end
a = sym('a', [1 3]);
syms x0 i
x0*symprod(a(i), i, [1 3])
>> 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)

您的预期结果不是这样的:
x0+prod(a)
?事实上,该函数起到了作用。我现在有了完整的解决方案。但我不明白的是,当我评估它时,为什么不是所有的
symprod
都展开了<代码>符号x0 i j k a(i)b(i);席=X0*SimPROD(A(I -J),J,[0 I-1 ])+ SysMe(B(i-j)*SyPROD(A(I -K),K,[0 J]),J,[0 I-1 ]);x3=x0*symprod(a(3-j),j[03-1])+symsum(b(3-j)*symprod(a(3-k),k[0j]),j[03-1])