5  関数

5.1 関数の定義

AB を集合とするとき,関数 f は,A の各要素に対して B の要素を対応させる規則であり,

f: A \to B

と書く.

例 5.1 A = \{1, 2, 3\}B = \{4, 5, 6\} とするとき,f(1) = 4f(2) = 5f(3) = 6 と定義される関数 f: A \to B がある.

f(x) という記号は,入力 x に対して関数 f が出力する値を表す.y = f(x) と書くとき,入力 x に対して,関数 f が出力する値 y を決定する.x \mapsto y と書くこともある.

例 5.2 f(x) = 2x + 1 という関数を Python で定義するには,次のようにする.

def f(x):
    return 2 * x + 1

f(3)
7

この関数に x = 3 を入力すると,f(3) = 7 となる.

ノートPython での関数の定義

Python では,def キーワードを使って関数を定義する.: と字下げに注意すること.

関数は複数の引数(arguments)を持つこともできる.例えば,f(x, y) = x + y という関数は,2つの引数 xy を持ち,その和を出力する.

例 5.3 f(x_1, x_2, x_3) = 3x_1 + 2x_2 + x_3 という関数を Python で定義するには,次のようにする.

def f(x1, x2, x3):
    return 3 * x1 + 2 * x2 + x3

f(1, 1, 1)
6

x_1 = 1x_2 = 1x_3 = 1 のとき,f(1, 1, 1) = 6 となる.

関数が区分的に定義されることもある.

例 5.4 次のような関数を考える.

f(x) = \begin{cases} x^2 & (x \geq 0) \\ -x & (x < 0) \end{cases}

この関数は,x0 以上のときは x^2 を出力し,x0 未満のときは -x を出力する.Python で定義するには,次のようにする.

def f(x):
    if x >= 0:
        return x ** 2
    else:
        return -x

print(f(3))
print(f(-3))
9
3

f(3) = 9 であり,f(-3) = 3 である.

5.2 標準関数

数学でよく使われる関数には,次のようなものがある.

5.2.1 絶対値関数

|x| は,x の絶対値を表す関数である.

Python では,abs() 関数を使う.

abs(-3)
3

5.2.2 指数関数

e^x は,ネイピア数 e を底とする指数関数である.

Python では,math.exp() 関数を使う.

import math

math.exp(1)
2.718281828459045

5.2.3 床関数と天井関数

床関数 \lfloor x \rfloor は,x 以下の最大の整数を返す関数である.天井関数 \lceil x \rceil は,x 以上の最小の整数を返す関数である.英語では,floor と ceiling と呼ばれる.

Python では,math.floor() 関数と math.ceil() 関数を使う.

import math

math.floor(3.7)
3
import math

math.ceil(3.3)
4

5.3 練習問題

練習 5.1 if 文を使って,|x| を計算する関数 abs_val(x) を定義せよ.

練習 5.2 床関数と天井関数を計算する関数 floor_val(x)ceil_val(x) を定義せよ.ただし,math モジュールを使わないこと.

ヒント:int(x) は,x を整数に変換する関数である.

練習 5.3 次の関数を Python で定義せよ.

f(x) = \begin{cases} -1 & (x < 0) \\ 0 & (x = 0) \\ 1 & (x > 0) \end{cases}

ヒント:elif を使うと,3 つの場合に分けることができる.

練習 5.4 次の関数を Python で定義せよ.

f(x, y) = \frac{x^2 + y^2}{x - y}