2010-12-06 81 views
1

兩個和我有可變邊界的兩個序列像如何在。減去楓

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

nm是任意的自然數,顯然m>n
我想從b。減去a,看看Maple簡化楓樹或其他CAS的表達,

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

這可能嗎?

+0

爲什麼你需要這個? – 2010-12-06 20:30:27

+0

我需要這個,以便使用待定係數方法引入標量乘積的這種公式,以便有限差分算子變成自共軛。即標量積的形式爲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]。我所擁有的是方程式產品(Ax,y) - 產品(x,Ay)= 0,這在一般形式下必須是真實的。 – Mike 2010-12-07 06:51:43

回答

3

您可以通過使用臨時對象,然後分兩個階段進行操作。

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)