【发布时间】:2014-01-10 10:44:07
【问题描述】:
我想用 Maple 绘制以下表达式:
> I_n:=Sum((H_(k+1)H_(n-k+1))/k+2,k=0..n);
女巫
> H_n:=sum(1/k,k=1..n);
我的作品:
>f:=n->sum(1/k,k=1..n);
I_n:=sum(f(j+1)*f(n-j+1)/(j+2), j = 0 .. n);
但我不知道如何绘制这个。
感谢您的帮助。
【问题讨论】:
我想用 Maple 绘制以下表达式:
> I_n:=Sum((H_(k+1)H_(n-k+1))/k+2,k=0..n);
女巫
> H_n:=sum(1/k,k=1..n);
我的作品:
>f:=n->sum(1/k,k=1..n);
I_n:=sum(f(j+1)*f(n-j+1)/(j+2), j = 0 .. n);
但我不知道如何绘制这个。
感谢您的帮助。
【问题讨论】:
plot(I_n, n= 0..20);
或将 20 更改为任何其他上限。
【讨论】:
sum 和大写的Sum。我的回答仅适用于您始终使用小写的sum。
sum 在两个地方都使用,那么plot(I_n, n= 0..20) 将计算非整数值的符号sum 结果。由于对sum 的调用以定义I_n 会导致在任何未计算的sum 之外的n 表达式,因此plot 使用的n 的浮点值将生成虚假的值和曲线,如果仅整数n 的值是预期的(似乎是一个合理的猜测)。
如果您区分是否允许n 采用非整数值(例如,n=10.23 等),则会对结果产生很大影响。
您最初编写Sum 用于定义I_n,但后来您的代码片段具有小写sum。您应该小心尝试和使用哪个,因为它会影响plot 尝试使用n 的非整数值时发生的情况。 (使用Sum 而不对n 进行任何舍入调用也将有产生空图的风险,因为evalf/Sum 将阻碍非浮点值,您可能会意外得到一个空图。)
比较所有这些,特别注意在使用sum 定义I_n 时出现在求和之外(作为部分结果)的n。
由您决定是否希望 n 为纯整数值,然后相应地选择绘图方法。
f:=n->sum(1/k,k=1..n):
I_n:=Sum(f(j+1)*f(n-j+1)/(j+2), j = 0 .. n);
sum(f(j+1)*f(n-j+1)/(j+2), j = 0 .. n); # Note the `n` outisde the sum.
value(I_n); # As if I_n:=sum(...) had been used. Note the `n` outside the sum.
plot(value(I_n), n= 0..20); # also what you'd get if you plotted I_N:=sum(...)
plot(subs(n=floor(n),I_n), n=0..20); # Step function. Could also try with round().
plot(I_n, n=0..20); # Empty plot since I_n=Sum(...) used without rounding `n`.
plots:-pointplot([seq([n,I_n],n=0..20)]); # use style=line option to join the points
我的主要观点是,在n 不是整数的情况下,执行sum(f(j+1)*f(n-j+1)/(j+2), j = 0 .. n) 的结果很可能不是您想要绘制的结果。如果是这样,那么您应该在绘制时考虑到这一点。
【讨论】: