和式和遞歸式
和式很多情況下可以轉化爲遞歸式然後進行求解,比如:Sn=∑k=0nak,就等價於遞歸式S0=a0,Sn=Sn−1+an。迴歸上一章求解,雖然不一定簡單,但是將問題轉化爲已經解決的問題,是一定有效的方法。
回一下上一章講的那個“成套方法”。假設現在有遞歸式R0=αRn=Rn−1+β+γn
我們將解寫成Rn=A(n)α+B(n)β+C(n)γ。
令α=1,β=0,γ=0,得到A(n)=1。
令α=0,β=1,γ=0,得到B(n)=n。
令α=0,β=0,γ=1,得到C(n)=2n2+n。
所以得到:Rn=α+nβ+2n2+nγ
迴歸到和式,如果我們要計算∑k=0n(a+bk),那我們就可以帶入上面的式子,其中α=β=a,γ=b。得到Rn=(n+1)a+2n2+nb。
這裏舉的例子是和式轉化爲遞歸式,反過來也是可以的,各有各的優點。比如上一章的河內塔問題。
我們這裏研究一下這個式子:anTn=bnTn−1+cn。
我們引入一個求和因子sn,原式變成snanTn=snbnTn−1+sncn。
我們之所以要引入求個因子,是想式子化簡爲樸素的遞歸形式。
我們使得sn滿足這個snbn=sn−1an−1條件。
那我們記Sn=snanTn,就可以將Sn化簡爲Sn=Sn−1+sncn。
那我們就得到Sn=s0a0T0+k=1∑nskck=s1b1T0+k=1∑nskck
所以Tn=snan1(s1b1T0+k=1∑nskck)
那麼現在這個式子看似解決了,但是s該是什麼呢?
化簡約束式子得到sn=sn−1bnan−1
得到sn=bnbn−1...b2an−1an−2...a1∗k
現在這個方法就完整了,注意這個方法並不是萬能的,是有限制的。
舉個例子,我們研究快排的平均次數。容易得知有下列遞歸式C0=C1=0Cn=n+1+n2k=0∑n−1Ck
這個遞歸式看着是可怕的,相信好多人是沒有嘗試解決過看着如此複雜的問題。
也許我們的工作的第一步目標是清晰的,一般會先消去最可怕的∑符號。
Cn=n+1+n2k=0∑n−1CknCn=n2+n+2k=0∑n−1Ck(n−1)Cn−1=(n−1)2+(n−1)+2k=0∑n−2CknCn−(n−1)Cn−1=2n+2Cn−1nCn=(n+1)Cn−1+2n
所以,式子化簡爲下面的形式:C0=C1=0C2=3nCn=(n+1)Cn−1+2n
帶入上面推出的結論,其中:an=nbn=n+1cn=2n−2[n=1]+2[n=2]sn=bnbn−1...b1an−1an−2...a1=n2+n2
所以Cn的解爲Cn=snan1(s1b1C0+k=1∑nskck)=2(n+1)k=1∑nk+11−32(n+1)
我們記Hn=∑k=1nk1,則原式等於:Cn=2(n+1)Hn−38n−32
和式的處理
我們知道,有些等價的和式,不同的寫法運算量是不一樣的。這裏就需要一些和式的運算法則。
k∈K∑cak=ck∈K∑ak (分配率)k∈K∑(ak+bk)=k∈K∑ak+k∈K∑bk(結合律)p(k)∈K∑ak=k∈K∑ap(k) (交換律)
擾動法,例如Sn=∑k=0naxk,那麼有Sn+1=Sn+axn+1=a+xSn所以,Sn=1−xa−axn+1,這就是擾動法。
現在,我們來考慮難一點的和式,Sn=∑k=0nk∗2k。
現在,嘗試尋找Sn+1與Sn的關係,Sn+1=k=0∑n+1k∗2k=Sn+(n+1)∗2n+1Sn+1=k=0∑n+1k∗2k=k=0∑n(k+1)∗2k+1=k=0∑nk∗2k+1+k=0∑n2k+1=2∗Sn+2n+2−2
兩個式子聯立,得:Sn+(n+1)∗2n+1=2∗Sn+2n+2−2Sn=(n+1)∗2n+1−2n+2+2Sn=(n−1)∗2n+1+2
那麼,我們現在將這個式子平凡化,求Sn=∑k=0nk∗xk。
同上推導,在演示一遍,就是:Sn+1=k=0∑n+1k∗xk=Sn+(n+1)∗xn+1Sn+1=k=0∑n+1k∗xk=k=0∑n(k+1)∗xk+1=k=0∑nk∗xk+1+k=0∑nxk+1=x∗Sn+1−xx−xn+2
聯立得:Sn+(n+1)∗xn+1=x∗Sn+1−xx−xn+2(x−1)∗Sn=(n+1)∗xn+1−1−xx−xn+2(x−1)∗Sn=1−x(n+1)∗xn+1−n∗xn+2−xSn=(1−x)2x+n∗xn+2−(n+1)∗xn+1
多重和式
多重和式可以交換求和次序,例如:
i∑j∑ai,j[P(i,j)]=j∑i∑ai,j[P(i,j)]
下面,我們考慮求得SΔ上=i=1∑nj=i∑nai∗aj
由於SΔ上=i=1∑nj=i∑nai∗aj=i=1∑nj=i∑naj∗ai=SΔ下
2∗SΔ上=SΔ上+SΔ下=i=1∑nj=1∑nai∗aj+i=1∑nai2=(i=1∑nai)2+i=1∑nai2
完成。
下面繼續看這個和式:Sn=1≤i<j≤n∑(ai−aj)(bi−bj)
2∗Sn=1≤i,j≤n∑(ai−aj)(bi−bj)−1≤i=j≤n∑(ai−aj)(bi−bj)=1≤i,j≤n∑aibi−1≤i,j≤n∑aibj−1≤i,j≤n∑ajbi+1≤i,j≤n∑ajbj−1≤i=j≤n∑(ai−aj)(bi−bj)=2n∗i=1∑naibi−2∗i=1∑naii=1∑nbi−1≤i=j≤n∑(ai−aj)(bi−bj)Sn=n∗i=1∑naibi−i=1∑naii=1∑nbi
所以,移項得:i=1∑naii=1∑nbi=n∗i=1∑naibi−1≤i<j≤n∑(ai−aj)(bi−bj)
那麼研究這個和式Sn=1≤i<j≤n∑j−i1
和式展開:Sn=j=1∑ni=1∑j−1j−i1=j=1∑nj−i=1∑j−1i1=j=1∑ni=1∑j−1i1=j=1∑nHj−1=j=1∑n−1Hj
但是這樣還是∑2的複雜程度。我們這個思路還是不是太優。這是很正常的,我們需要嘗試另一種方式求解(?怎麼嘗試另一種思路呢?上面是消除j,下面我們消除i)。
1≤i<j≤n∑j−i1=1≤j<j+i≤n∑j1=j=1∑ni=1∑n−jj1=j=1∑njn−j=j=1∑njn−n=n∗Hn−n
我們將上面的錯誤結論和現在的正確結論結合起來,就得到一個很有趣的式子。
i=1∑n−1Hi=n∗Hn−n
這個式子看起來是如此的美妙。
一般性方法
推導了那麼多,我們現在來研究研究,遇到一個式子應該怎麼做,來求出他的封閉形式的解。
比如我們現在遇到了這樣的和式Sn=k=1∑nk2
我們遇到這樣的和式,一般都是要列一下前幾項。
nn2Sn0001112453914416305255563691749140864204
方法一、OEIS
首先,我們可以查表,查出這個函數是什麼。我們可以登錄OEIS進行查找。
然後我們就可以搜索到Sn=6n(n+1)(2n+1)
這樣的結果。
方法二、猜測答案,然後歸納法驗證
有些數列數列是特別容易就猜到答案了,我們需要在這基礎上進行驗證。
現在假設我們根據前幾項猜出來了通項公式是Sn=6n(n+1)(2n+1)
那麼我們怎麼證明他的正確性呢?
Sn=Sn−1+n2=6(n−1)n(2n−1)+6n2=62n3+3n2+n=6n(n+1)(2n+1)
又由於S0也成立,所以得證。
方法三、擾動法
我們加上最有一項。
Sn+(n+1)2=k=0∑n(k+1)2=k=0∑nk2+2∗k=0∑nk+k=0∑n1=Sn+2∗k=0∑nk+n+1
然鵝,左右兩邊的Sn消去了,得到了一個毫無卵用的恆等式。
但是,我們發現,這樣能消去一維,那麼我們將初始的式子設爲三維的不就可以了嗎?
設Tn=∑k=0nk3。
Tn+(n+1)3=k=0∑n(n+1)3=k=0∑nk3+3k=0∑nk2+3k=0∑nk+k=0∑n1=Tn+3Sn+23n(1+n)+n+1
3Sn=(n+1)3−23n2+3n−n−1Sn=62n3+3n2+nSn=6n(n+1)(2n+1)
方法四、建立成套方法
之前我們研究了遞歸式{R0=α,Rn=Rn−1+β+γn+δn2.
我們可以說這樣的遞歸式的一般解是這樣的:Rn=A(n)α+B(n)β+C(n)γ+D(n)δ
現在,我們可以確信的是,D(n)=Sn,C(n)=∑k=1nk,B(n)=∑k=1n1,這是不容置否的。
我們現在令Rn=n3,那麼α=0,β=1,γ=−3,δ=3。
所以:B(n)−3C(n)+3D(n)=n3
Sn=D(n)=3n3+3C(n)−B(n)=3n3+3∑k=0nk−n=3n3+23n(1+n)−n=62n3+3n2+n=6n(n+1)(2n+1)
方法五、用積分代替和式
我們用f(x)=x2這一曲線的面積近似代替∑k=0nk2,求得:
k=0∑nk2≈∫0nx2 dx=3n3
但是這是約等,我們記Sn=k=0∑nk2=3n3+En
En=Sn−3n3=Sn−1+n2−3n3=3(n−1)3+n2−3n3+En−1En=En−1+n−31
然後En就可以借用上面的方法進行求解了。
方法六、展開和收縮
Sn=k=0∑nk2=i=0∑nj=i∑nj=i=0∑n2i+n∗(n−i+1)=2∑i=0nn(n+1)−i2+i=2n3+n2+4n(n+1)−2Sn
23∗Sn=42n3+3n2+n
Sn=6n(n+1)(2n+1)
小結
方法實在是特別多,後面也會遇到更精妙的算法。後面再補充。
有限微積分和無限微積分
什麼是有限微積分?什麼是無限微積分?
無限微積分是由微分算子D所定義的性質。Df(x)=h→0limhf(x+h)−f(x)
有限微積分是由差分算子Δ所定義的性質。Δf(x)=f(x+1)−f(x)
我們知道,設f(x)=xm,則Df(x)=mxm−1。
但是,Δ算子則沒有這樣的性質。
那麼,我們就規定與之相對應的運算。
我們記xm=x(x−1)(x−2)...(x−m+1)xm=x(x+1)(x+2)...(x+m−1)
這個運算時和階乘有一點點聯繫的,n!=nn=1n。
那麼Δ(xm)=(x+1)m−xm=m∗xm−1。
下面介紹算子Δ和D的逆運算。
D運算的逆運算就是∫,g(x)=D f(x)⇐⇒∫g(x) dx=f(x)+C。
Δ運算的逆運算就是∑,g(x)=Δf(x)⇐⇒∑g(x)δx=f(x)+C。
注意,Δ運算的C並不一定是常數,也有可能是函數,只要滿足C(x)=C(x+1)就好了。
那麼知道這一點,如果我們要求∑k=ab−1g(x),那麼我們僅僅需要找出g(x)=f(x+1)−f(x),那麼答案就等於f(b)−f(a)。
我們知道∫ab+∫bc=∫ac,同樣的∑ab+∑bc=∑ac。
基本積分規則:
∫0nxm=m+1xm+1∣0n=m+1nm+1
x=0∑n−1xm=m+1xm+1∣0n=m+1nm+1
那麼,根據這個式子,就可以輕鬆地推出1+2+...+n的結果:
x=0∑nx=2x2∣0n+1=2(n+1)2=2n(n+1)
現在,我們嘗試推導12+22+...+n2的通項公式:
x=0∑nx2=x=0∑nx2+x=0∑nx=3(n+1)3+2(n+1)2=62n3+3n2+n=6n(n+1)(2n+1)
甚至,這個式子可以計算立方,只要我們求出來x3=x3+3∗x2+x。
所以:
x=0∑nx3=4(n+1)4+(n+1)3+2(n+1)2=4n2(1+n)2
而且,下降冪滿足分配率,比如:
(x+y)2=x2+2xy+y2
還有其他的一些基本的性質:
xm+n=xm(x−m)n
到這,我們開始回想下剛纔的式子
x=a∑b−1xm δx=m+1xm+1∣ab
這個式子是一直成立的,但是,當m=−1時,這個式子會變成什麼。
首先,我們先探討下x−1是什麼?
觀察x+的規律,得出xm+1=xm∗(x−m)。
所以,爲了保持好的性質,x−m=(x+1)(x+2)...(x+m)1。
經過檢驗,x−和x+沒有什麼不同。
所以x−1=x+11。
我們設:f(x)=x=a∑b−1xm δx
所以:Δf(x)=f(x+1)−f(x)=x+11。
所以:f(x)=Hx
那麼,我們的公式就得到了拓展:
x=a∑b−1xm δx=⎩⎪⎪⎨⎪⎪⎧m+1xm+1∣ab,Hb−Ha,if m̸=−1if m=−1
這個其實和∫運算是很像的。
∫abxm dx=⎩⎪⎪⎨⎪⎪⎧m+1xm+1∣ab,ln(b)−ln(a),if m̸=−1if m=−1
其實Hx就是對ln(x)的離散模擬。
我們找到了D ex=ex,那麼是否存在Δ f(x)=f(x)呢?
這其實是很好找的:Δ f(x)=f(x+1)−f(x)=f(x)f(x+1)=2f(x)
只要滿足這個式子就好了。
Δ(cx)=cx+1−cx=(c−1)cx
a≤x<b∑cx=x=a∑b−1cx δx=c−1cx∣ab=c−1cb−ca
習題
記號∑k=40qk的含義是什麼?
這個其實是沒有嚴格的定義的,你可以認爲是0。也可以認爲是q0+q1+q2+q3+q4。也可以認爲是-q4-q3-q2-q1-q0。
化簡表達式x∗([x>0]−[x<0])。
x∗([x>0]−[x<0])=⎩⎨⎧x,−x,if x≥0if x<0=∣x∣
將和式∑k=05ak與∑k2=05ak2完全展開以證實你對記號∑的理解。
k=0∑5ak=a0+a1+a2+a3+a4+a5
k2=0∑5ak2=a(−2)2+a(−1)2+a0+a12+a22=a4+a1+a0+a1+a4
將三重和式∑1≤i<j<k≤4aijk表示成三個重疊的和式
a、先對k,再對j,再對i求和。
1≤i<j<k≤4∑aijk=i=1∑4j=i+1∑4k=j+1∑4aijk=a123+a124+a134+a234
b、先對i,再對j,再對k求和。
1≤i<j<k≤4∑aijk=k=1∑4j=1∑k−1i=1∑j−1aijk=a123+a124+a134+a234
下面的推導何處有錯?(j=1∑naj)(k=1∑nak1)=j=1∑nk=1∑nakaj=k=1∑nk=1∑nakak=n2
第二步到第三步錯了。
作爲j和n的函數,∑k[1≤j≤k≤n]的值是什麼?
k∑[1≤j≤k≤n]=⎩⎨⎧0,n−j+1,if (j<0) ∣∣ (n<1) ∣∣ (n<j)else
設∇f(x)=f(x)−f(x−1),∇(xm)是什麼?
∇(xm)=xm−(x−1)m=m∗xm−1
當m是給定的整數時,0m的值是什麼?
0m=⎩⎨⎧0,∣m∣!1,if m≥0if m<0
證明∑k=0n−1(ak+1−ak)bk=anbn−a0b0−∑k=0n−1ak+1(bk+1−bk)
這裏需要先證明一個引理:
Δ(u(x)v(x))=u(x+1)v(x+1)−u(x)v(x)=u(x+1)v(x+1)−u(x)v(x+1)+u(x)v(x+1)−u(x)v(x)=v(x+1)Δu(x)+u(x)Δv(x)
這裏引入一個算子E,表名Ef(x)=f(x+1)。
Δ(uv)=uΔv+EvΔuuΔv=Δ(uv)−EvΔu∑uΔv=uv−∑EvΔu
同樣,定積分也是這樣:
k=0∑n−1uΔv=uv∣0n−k=0∑n−1EvΔu
那麼,答案就顯而易見了:
k=0∑n−1(ak+1−ak)bk=k=0∑n−1bkΔak=anbn−a0b0−k=0∑n−1ak+1(bk+1−bk)
證明:只要c是一個整數,函數p(k)=k+(−1)kc就是對所有整數的全排列。
設p(k)=n,則:
n=k+(−1)kcn+c=k+((−1)k+1)c
因爲((−1)k+1)是偶數,所以:
(−1)n+c=(−1)k && k=n−(−1)kc
所以,由k能夠唯一的推出n,而且由於奇偶性,不可能重複,所以就是全排列。
利用成套方法求∑k=0n(−1)kk2的封閉形式。
設:
⎩⎪⎪⎨⎪⎪⎧R0=α,Rn=Rn−1+(−1)n(β+nγ+n2δ)
則:R(n)=A(n)α+B(n)β+C(n)γ+D(n)δ
易知,這時候我們要求的答案就蘊含在D(n)裏面。
考慮Rn=(−1)nn時,研究A(n)、B(n)、C(n)的關係:2C(n)−B(n)=(−1)nn
考慮Rn=(−1)nn2時,研究A(n)、B(n)、C(n)、D(n)的關係:2D(n)−2C(n)+B(n)=(−1)nn2
所以,k=0∑n(−1)kk2=D(n)=2(−1)n(n2+n)
//mathematics代碼
Simplify[Sum[(-1)^k*k^2, {k, 0, n}]]
將∑k=1nk∗2k重新改寫成多重和式∑1≤j≤k≤n2k的形式來對他進行計算。
k=1∑nk∗2k=j=1∑nk=j∑n2k=2n+1(n−1)+2
//Mathematics代碼
FullSimplify[Sum[k*2^k, {k, 1, n}]]
用正文中的方法5來計算Tn=∑k=1nk3:首先記Tn+Sn=2∑1≤j≤k≤njk,然後應用。
Tn+Sn=k=1∑nk2(k+1)=2∗j=1∑nk=j∑njk=j=1∑nj2+(j=1∑nj)2=Sn+4(n(n+1))2Tn=4n2(n+1)2
//mathematics代碼
FullSimplify[Sum[k^3, {k, 1, n}]]
證明xm/(x−n)m=xn/(x−m)n,除非其中有一個分母爲0。
xm(x−m)n=xm+n=xn(x−n)m
證明,對於所有的整數m,下面的公式可以用來在上升階乘冪與下降階乘冪之間進行轉換:
xm=(−1)m(−x)m=(x+m−1)m=(x−1)−m1
xm=(−1)m(−x)m=(x−m+1)m=(x+1)−m1
設ℜz和ℑz是複數z的實部和虛部,其絕對值∣z∣是(ℜz)2+(ℑz)2,當實值的和式∑k∈Kℜak和∑k∈Kℑak兩者都絕對收斂時,就說複數項ak組成的和式∑k∈Kak絕對收斂。證明:∑k∈Kak絕對收斂,當且僅當存在一個有界常數B,使得對所有的有限子集F⊆K,都有∑k∈F∣ak∣≤B。
沒看懂題目。
利用求和因子來求解遞歸式T0=5;2Tn=nTn−1+3∗n!,n>0。
2Tn=nTn−1+3∗n!n!2nTn=(n−1)!2n−1Tn−1+232n
記Gn=n!2nTn,那麼Gn的遞歸式爲:
Gn=⎩⎪⎪⎨⎪⎪⎧5,Gn−1+232n,if n=0,if n>0.
所以:Gn=5+23i=1∑n2i=3∗2n+2
所以:Tn=3∗n!+2n2∗n!
試用擾動法計算∑k=0nkHk,不過改爲推導出∑k=0nHk的值。
這一道題根據mathematics秒出答案。
k=0∑nkHk=4n(n+1)(2Hn+1−1)k=0∑nHk=(n+1)(Hn+1−1)
Simplify[Sum[k*HarmonicNumber[k], {k, 0, n}]]
Simplify[Sum[HarmonicNumber[k], {k, 0, n}]]
不過,還是要親自計算一下,記Sn=∑k=0nkHk。
Sn+(n+1)Hn+1=Sn+k=0∑nHk+n+1k=0∑nHk=(n+1)(Hn+1−1)
假設n≥0,用擾動法計算和式Sn=∑k=0n(−1)n−k,Tn=∑k=0n(−1)n−kk以及Un=∑k=0n(−1)n−kk2。
Sn=k=0∑n(−1)n−k=2(1+(−1)n)(−1)nTn=k=0∑n(−1)n−kk=(−1)n42(−1)nn+(−1)n−1Un=k=0∑n(−1)n−kk2=2(−1)2nn(n+1)
mathematics代碼:
Sum[(-1)^(n - k), {k, 0, n}]
Sum[(-1)^(n - k) k, {k, 0, n}]
Sum[(-1)^(n - k) k^2, {k, 0, n}]