1

数列の和(シグマ記号の基本)

213
0

はじめに

Latexの練習と暇つぶしを兼ねて、数列の和について、基本的なことをおさらいしていきたいと思います。
はじめて記号に触れた人がみれば少しは参考になるかも。
最近、大中小カッコの順番が高校数学と国際的な表記で異なることを学びました。
今後は国際的な書き方を意識してみたいと思います。

記号について

Σ 記号

k=mnak=am+am+1+am+2++an2+an1+an
右辺のような和を省略して書くための記法。
上の例では、添字kmからnまでの整数を順に代入したものを足し合わせている。

基本的な性質

定数列の和

k=mnc=c(nm+1)
特にm=1のとき
k=1nc=cn

m項から第n項までの項数を数える。
項番号と自然数を下のように対応づけ、数え終わりを仮にeとする。
mm+1m+2n2n1n123e2e1e
各々の列において上下の差は常にm1なので

ne=m1
よって
e=nm+1

定数c(nm+1)回足し合わせた値はc(nm+1)となる。

線形性

k=1ncak=ck=1nak

k=1n(ak+bk)=k=1nak+k=1nbk

King Property

k=mnak=k=mnam+nk

添字の移動

任意の整数δに対して以下が成り立つ
k=mnak=k=m+δn+δakδ

添字範囲の結合 または 分割

mi<nなる整数minに対して以下が成り立つ
k=mnak=k=miak+k=i+1nak

階差について

任意の自然数 mn に対して以下が成り立つ
k=1n(ak+mak)=k=1m(ak+nak)

特に、m=1のとき
k=1n(ak+1ak)=an+1a1

ここでN=n+1とおくと、N2であり
aN=a1+k=1N1(ak+1ak)

下の式を変形すると等式の左辺および右辺を得る
k=1m+nakk=1makk=1nak


詳細はこちら
以下の式変形で左辺を得る。
k=1m+nakk=1makk=1nak=(k=1m+nakk=1mak)k=1nak=k=m+1m+nakk=1nak=k=1nak+mk=1nak=k=1n(ak+mak)
mnを入れ替えて同様の式変形を行うと右辺を得る。

等差数列の和

数列{an}を初項a、交差dの等差数列とすると、一般項は an=a+(n1)d であり
1項から第n項までの和は
k=1nak=12n(a1+an)=12n[2a+(n1)d]
特にa=1d=1のとき
k=1nk=12n(n+1)

命題3(King Property)より
k=1nak=12k=1n(ak+an+1k)
この式に、ak=a+(k1)dを代入すると
k=1nak=12k=1n{[a+(k1)d]+[a+(n+1k1)d]}=12k=1n{a+[a+(n1)d]}=12k=1n(a1+an)=12n(a1+an)

等比数列の和

数列{an}を初項a、公比rの等比数列とすると、一般項はan=arn1であり
r1のとき、第1項から第n項までの和は

k=1nak=a(rn1)r1

定義より等比数列において以下の式が成り立つ
rak=ak+1
両辺からakを引くと
(r1)ak=ak+1ak
k=1,2,3,,nの範囲で和をとると
(r1)k=1nak=k=1n(ak+1ak)
階差の形なので右辺はan+1a1であり、
(r1)0のとき両辺を(r1)で割ると
k=1nak=an+1a1r1
したがって
k=1nak=a(rn1)r1

おわりに

初めて学習したときは等比数列の和の公式を導くアイデアが分かり難かった覚えがあります。
こうしてみると、和を考えるときの常套手段「階差の形をつくる」を普通に実行した感じですね。

おまけ

実験的に数列の和を表示するPythonプログラム。
calcTermの内容を編集して数列の一般項akを定義する。
Jupyter Notebook で動作確認済。

      import math
from fractions import Fraction

def calcTerm(k):
#数列の一般項を計算する
    term=k**2
    return term
    

def calcSum(n):
#1~nまでの項を合計する
    seqSum=0
    for i in range(n):
        idx=i+1
        seqSum=seqSum+calcTerm(idx)
    
    return seqSum


def printSum(n):
#1~nまでの数列の和を表示する
    result=''
    sp='         '
    result=result+'n'+sp+'\t'
    result=result+'a_n'+ sp +'\t'
    result=result+'S_n'+ sp +'\n'
    
    for i in range(n):
        idx=i+1
        t=calcTerm(idx)
        s=calcSum(idx)
        result=result+str(idx)+ sp +'\t'
        result=result+str(t)+ sp +'\t'
        result=result+str(s)+ sp +'\n'
    
    print(result)
#1~20項目までの情報を表示
printSum(20)
    
投稿日:20231020
更新日:2024215
OptHub AI Competition

この記事を高評価した人

高評価したユーザはいません

この記事に送られたバッジ

バッジはありません。
バッチを贈って投稿者を応援しよう

バッチを贈ると投稿者に現金やAmazonのギフトカードが還元されます。

投稿者

tanu
29
18928

コメント

他の人のコメント

コメントはありません。
読み込み中...
読み込み中
  1. はじめに
  2. 記号について
  3. 基本的な性質
  4. おわりに
  5. おまけ