LoginSignup
24
20

More than 5 years have passed since last update.

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

Last updated at Posted at 2015-12-11

目次

経緯

  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
24
20
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
24
20