如何在符号数组中使用symprod?

问题描述 投票:0回答:1

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

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])

错误消息说:

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

但是,这可行:

a(2)

ans =(sym)a12

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

octave symbolic-math
1个回答
1
投票

问题已经在表达式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)
© www.soinside.com 2019 - 2024. All rights reserved.