使用symsum的matlab中的系列之和

Sae*_*ani 0 matlab

我有以下系列

在此输入图像描述

我尝试了这段代码,但它没有打印最终结果......而是提供了一长串数字!

syms n
y = symsum(1/sqrt(n),[1,100])
Run Code Online (Sandbox Code Playgroud)

结果:

y =

2^(1/2)/2 + 3^(1/2)/3 + 5^(1/2)/5 + 6^(1/2)/6 + % and so on....
Run Code Online (Sandbox Code Playgroud)

所以问题是如何产生最终数字作为答案?!

我应该使用这样的脚本吗?

y = 0;
for i = 1:1:100
    y = y + (1/sqrt(i));
end
disp(y);
Run Code Online (Sandbox Code Playgroud)

Ben*_*_11 6

要回答原始问题,您可以将最初使用double的符号表达式转换为从符号转换为数值:

y = double(y)
Run Code Online (Sandbox Code Playgroud)

或者实际上:

syms n
y = double(symsum(1/sqrt(n),[1,100]))
Run Code Online (Sandbox Code Playgroud)

你得到18.5896.

此外,您可以使用eval来评估符号表达式(感谢Luis Mendo).

好极了!

  • `eval(y)`也有效.`sym/eval`评估符号表达式 (3认同)