【问题标题】:How to substract two Sums in Maple如何在 Maple 中减去两个和
【发布时间】:2011-05-21 05:01:51
【问题描述】:

我有两个具有可变边界的序列,例如

> a:=Sum(x(i),i=n..m);
> b:=Sum(x(i),i=n-1..m+1);

nm 是任意自然数,显然m>n
我想从b 中减去a,看看Maple 如何将表达式简化为

> b-a;
x(n-1)+x(m+1);

是否可以在 Maple 或其他 CAS 中使用?

【问题讨论】:

  • 我需要这个,以便使用未定系数的方法引入这样的标量积公式,从而使有限差分算子成为自共轭的。 IE。标量积的形式是 prod(x,y)=Sum(x[i]*y[i]*h[i]*K[i],i=1..N-1) 其中 K[i] -是未定系数。有限差分算子看起来像 Ax[i]=a[i]*x[i-1]+b[i]*x[i]+c[i]*x[i+1]。我所拥有的是等式 prod(Ax,y)-prod(x,Ay)=0,它在一般形式中必须为真。

标签: sum symbolic-math maple


【解决方案1】:

你可以通过使用一个临时对象来做​​到这一点,然后分两个阶段行动。

a:=Sum(x(i),i=n..m):
b:=Sum(x(i),i=n-1..m+1):

temp := Sum(x(i),i=op(1,rhs(op(2,a)))..op(2,rhs(op(2,b))));
                       m + 1     
                       -----     
                        \        
                         )       
                        /    x(i)
                       -----     
                       i = n    

value( combine(b-temp) + combine(temp-a) );
                  x(n - 1) + x(m + 1)

或者你可以把它放到一个过程中。

combminus:=proc(s::specfunc(anything,Sum),t::specfunc(anything,Sum))
   local temp;
   if op(1,s) = op(1,t) then
      temp:=Sum(op(1,s),i=op(1,rhs(op(2,s)))..op(2,rhs(op(2,t))));
      value(combine(s-temp)+combine(temp-t));
   else
      s-t;
   end if;
end proc:

combminus(b, a);
                  x(n - 1) + x(m + 1)

【讨论】:

  • 这个程序正是我需要的!您的方法很好地了解了如何使用 Sums,非常感谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-03-05
  • 1970-01-01
  • 2020-10-06
  • 2017-09-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多