我想用符号符号解这个方程:
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;也不起作用,但是错误消息有所不同。)
问题已经在表达式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)