13

是否可以在 Octave 中进行求和系列?

matlab中有它的symsum功能,但是我没有发现任何类似的八度音阶。

例如,我想找到以下总和

求和


附录:

是否有可能总结出这样的事情

f = @(x) nchoosek(5,x)*0.1.^x*0.9.^(5-x)

sum(f([0:5]))

因错误而失败

error: called from:
error:   /usr/share/octave/3.6.4/m/help/print_usage.m at line 87, column 5
error:   /usr/share/octave/3.6.4/m/specfun/nchoosek.m at line 95, column 5
error:    at line -1, column -1
error: evaluating argument list element number 1
4

1 回答 1

31

如果您不需要分析解决方案,那么您不需要symsum. 例如,如果你想计算

\sum_{k=1}^{5} k

你可以简单地使用sum

sum([1:5])

这是另一个例子:

\sum_{k=1}^{5} \exp(-k)

f = @(x) exp(-x)
sum(f([1:5]))

另一个有factorial功能的:

\sum_{n=0}^{5} \frac{1}{n!} \约

g = @(n) 1 ./ factorial(n)
sum(g([0:5]))

相同,但没有匿名函数:

sum(1 ./ factorial([0:5]))

更新

至于你的最后一个例子,nchoosek只允许标量参数。所以,你需要额外的arrayfun电话:

f = @(x) nchoosek(5,x)*0.1.^x*0.9.^(5-x)
sum(arrayfun(f,[0:5]))
于 2013-10-31T07:40:21.547 回答