Python
Mathematics
python3
sigma

Σを使った数式をpythonで試す

More than 1 year has passed since last update.

目次

経緯

  1. 授業でΣ(シグマ)に出くわす
  2. 久しぶりだしPython使って簡単に表現できないか思いつく
  3. 軽くググッて見る
  4. [使えそうなリソース]を発見
  5. ちょっとだけ試してみる

Σとは

一言で言うとsumとか(主に)数列の和と表現したりする。

sigma.jpg

*画像転載元: Learn Sigma Notation Online

詳しい使い方は以下参照:

Σの意味ってなんでしたっけ?
【数列9】シグマ1 シグマとは?シグマの意味、計算を説明 【高2数学・数B】
数列の和~シグマΣの定義と計算方法:ビジュアル数学(数学B:数列

やりたいこと

ソース元を参考に、
544x215xsigma.png.pagespeed.ic.f1Iqf-52cp.png

をどうにかしてpythonで動かしてみる。

Pythonで動作確認

以下が元のコード

sigma.py
def f(x):
    return 2*x + 1

def g(x):
    return (x-1) * (x-3)

def sigma(func, frm, to:
    result = 0;
    for i in range(frm, to+1):
        result += func(i)
    return result

sigma(f, 2, 4) #21
sigma(g, 1, 3) #-1

細かい流れはここ参照。

これをPython3.xでも使えるように

sigma2.py
def f(x):
    return 

def sigma(func, frm, to):
    result = 0;
    for i in range(frm, to+1):
        result += func(i)
    print(result)

sigma(f, 1, 10) #21

例題を軽く

例題:以下の式の和を求めよ。

math.png

これを

math.png --- #1

math copy.png --- #2 (これが上の画像で言うk番目のa)

に分ける。

まずは#2の答えを出す関数を作る

def f(n):
    return 3 * n - 2

そして#1の答えを出す関数

def sigma(func, frm, to):
    result = 0; #答えの受け皿
    for i in range(frm, to+1):
        result += func(i) 
        #ここで関数を呼び出す。ちなみにここではi = x
    print(result)

完成形はこんな感じ

ef f(n):
    return 3 * n - 2  

def sigma(func, frm, to):
    result = 0; #答えの受け皿
    for i in range(frm, to+1):
        result += func(i) 
        #ここで関数を呼び出す。ちなみにここではi = x
    print(result)

sigma(f, 1, 4) #22

番外編~what if~

f(x)の式を作る必要がない式に出くわした場合、
1. sigma関数の引数funcを消す
2. result += func(i)からresult += i
3. これで正常に動く。。はず

def sigma2(frm, to):
    result = 0;
    for i in range(frm, to+1):
        result += i
    print(result)

sigma2(1,10) #55