在 MATLAB 中编写公式之前,您可以进行大量简化。首先定义一个函数f(i)如下:
f(i) = Log(b(i)/b(i-1)) = Log(b(i)) - Log(b(i-1))
然后,应用您定义的Sum 函数,您可以看到许多术语相互抵消:
Sum(f(i),10) = f(i) + f(i-1) + ... + f(i-8) + f(i-9)
= Log(b(i)) - Log(b(i-1)) +
Log(b(i-1)) - Log(b(i-2)) +
... +
Log(b(i-8)) - Log(b(i-9)) +
Log(b(i-9)) - Log(b(i-10))
==> Sum(f(i),10) = Log(b(i)) - Log(b(i-10))
现在,这里有点棘手,因为可能有两种方法可以解释嵌套的 Sum 操作:一种是内部求和变量 i 取决于 外部求和变量i,其中内部求和变量i 独立于外部求和变量i。
当内部i依赖外部i时...
然后对于外部求和的每一项,内部求和从该项的i 的递减值开始计算。例如,外部求和的第五项如下所示:
... + f(i-4) - Sum(f(i-4),10) + ...
a(i) 的等式因此将简化如下:
a(i) = Sum(f(i) - Sum(f(i),10),10)
= Sum(Log(b(i)) - Log(b(i-1)) - Log(b(i)) + Log(b(i-10)),10)
= Sum(Log(b(i-10)) - Log(b(i-1)),10)
= Log(b(i-10)) - Log(b(i-1)) +
Log(b(i-11)) - Log(b(i-2)) +
... +
Log(b(i-18)) - Log(b(i-9)) +
Log(b(i-19)) - Log(b(i-10))
[b(i-11)*b(i-12)*...*b(i-18)*b(i-19)]
==> a(i) = Log[-----------------------------------]
[ b(i-1)*b(i-2)*...*b(i-8)*b(i-9) ]
这个最终方程可以在 MATLAB 中编码如下:
a(i) = log(prod(b(i-(11:19)))/prod(b(i-(1:9))));
当内部i独立于外部i时...
那么内部求和的结果相对于外部求和基本上看起来是一个常数。例如,外部求和的第五项如下所示:
... + f(i-4) - Sum(f(i),10) + ...
a(i) 的等式因此将简化如下:
a(i) = Sum(f(i) - Sum(f(i),10),10)
= Sum(f(i),10) - 10*Sum(f(i),10)
= -9*Sum(f(i),10)
= 9*Log(b(i-10)) - 9*Log(b(i))
==> a(i) = 9*Log(b(i-10)/b(i))
这个最终方程可以在 MATLAB 中编码如下:
a(i) = 9*log(b(i-10)/b(i));