符号求和
Symbolic Math Toolbox™ 提供了两个用于计算和的函数:
比较 symsum 与 sum
您可以使用 sum 和 symsum 两者来求定总和。sum 函数用于基于某个维度对输入求和,而 symsum 函数用于基于某个索引对输入求和。
假设有定总和 首先,通过将索引值 k 代入表达式来求定总和的各项。然后,使用 sum 对得到的向量求和。
syms k f = 1/k^2; V = subs(f, k, 1:10) S_sum = sum(V)
V = [ 1, 1/4, 1/9, 1/16, 1/25, 1/36, 1/49, 1/64, 1/81, 1/100] S_sum = 1968329/1270080
通过指定索引和求和限值,使用 symsum 求同一和。sum 和 symsum 返回的结果相同。
S_symsum = symsum(f, k, 1, 10)
S_symsum = 1968329/1270080
symsum 与 sum 的计算速度对比
对于定级数求和,symsum 的运算速度通常快于 sum。对于不定级数求和,您只能使用 symsum。
可以通过以下方式来证明 symsum 可能比 sum 更快:对类似以下所示的大型定级数求和
为了在您的计算机上比较运行时间,请使用以下命令。
syms k
tic
sum(sym(1:100000).^2);
toc
tic
symsum(k^2, k, 1, 100000);
tocsymsum 和 sum 之间的输出格式差异
与 sum 相比,symsum 可以提供更简洁的求和表示。通过比较函数对定级数 的输出来演示此差异。为简化解,假设 x > 1。
syms x assume(x > 1) S_sum = sum(x.^(1:10)) S_symsum = symsum(x^k, k, 1, 10)
S_sum = x^10 + x^9 + x^8 + x^7 + x^6 + x^5 + x^4 + x^3 + x^2 + x S_symsum = x^11/(x - 1) - x/(x - 1)
使用 isAlways 来证明输出相等。isAlways 函数返回逻辑值 1 (true),表示输出相等。
isAlways(S_sum == S_symsum)
ans =
logical
1为了执行进一步的计算,请清除假设。
assume(x, 'clear')