5  関数

5.1 関数の定義

\(A\)\(B\) を集合とするとき,関数 \(f\) は,\(A\) の各要素に対して \(B\) の要素を対応させる規則であり, \[ f: A \to B \]

と書く.

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

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

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

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

f(3)
7

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

Note

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

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

Example 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 = 1\), \(x_2 = 1\), \(x_3 = 1\) のとき,\(f(1, 1, 1) = 6\) となる.

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

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

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

この関数は,\(x\) が0以上のときは \(x^2\) を出力し,\(x\) が0未満のときは \(-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 練習問題

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

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

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

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

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

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

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