def f(x):
return 2 * x + 1
f(3)7
A と B を集合とするとき,関数 f は,A の各要素に対して B の要素を対応させる規則であり,
f: A \to B
と書く.
例 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 と書くこともある.
例 5.2 f(x) = 2x + 1 という関数を Python で定義するには,次のようにする.
def f(x):
return 2 * x + 1
f(3)7
この関数に x = 3 を入力すると,f(3) = 7 となる.
関数は複数の引数(arguments)を持つこともできる.例えば,f(x, y) = x + y という関数は,2つの引数 x と y を持ち,その和を出力する.
例 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 となる.
関数が区分的に定義されることもある.
例 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
練習 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}