def f(x):
return 2 * x + 1
f(3)7
\(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\) となる.
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\) である.
数学でよく使われる関数には,次のようなものがある.
\(|x|\) は,\(x\) の絶対値を表す関数である.
Python では,abs() 関数を使う.
abs(-3)3
\(e^x\) は,ネイピア数 \(e\) を底とする指数関数である.
Python では,math.exp() 関数を使う.
import math
math.exp(1)2.718281828459045
床関数 \(\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
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} \]