結論を最初にいうと、関数とは入り口と出口を持った箱の事です。
ここでいう関数とは、数学で使う用語の事ですが、エクセルなどのマクロやプログラムでも関数は使われます。
エクセルなどのプログラミングで使用される関数も、数学で使われる関数と似ています。
プログラムで使用する関数の場合、入り口は入力、出口は出力と呼ばれます。
ここではプログラミン用語の関数ではなく、数学でいう関数の意味を説明します。
入り口と出口を持った箱が関数
超簡単に関数を説明すると、入り口と出口をもった箱の事を数学では関数と言います。
関数と呼ばれる箱は、入り口と出口があります。ここが重要!
この入り口には、いろいろなものを入れることができますが、数学では主に数を入れます。
箱が持つ唯一の性質(機能)は、入り口になにかいれると、ある規則に従って出口からなにか出てくるという事です。
ここで重要なのは、同じものをいれると、出てくるものも同じだということです。つまり、入れたものと出てきたものは関連がありますが、どういう関連があるのか箱の中の秘密となっています。
数学ではでてくるモノも数に限定することがほとんどです。
簡単にいうと、数をいれたら、数がでてくる箱、これが数学で取り扱う関数です。
プログラミングで扱う特殊な関数の例
プログラムでは、ランダムという乱数(でたらめな数)を発生させる関数があります。この関数はでてくるものがバラバラです。これもランダムという規則に従って(数ではなく)乱数という(数のように扱えるもの)がでてくると考えると、関数とみなせます。
プログラムでは、入り口になにもいれないのに値がでてくる関数もあります。これは、空(から)のものを入れたと考えて関数とみなします。
関数の書き方
関数は、箱だと書きましたが、これだと扱いにくいので、数学では箱に名前をつけて取り扱います。
関数の名前としてよく使われるのは、英文字の「\(f\)」という記号です。
関数の事を英語でfunction(ファンクション)と言うのでその頭文字を使っています。
「function」は英単語です。通常は日本語で「機能」と訳されますが、もちろん「関数」とも訳されます。
「関数」のことを「函数(かんすう)」と書くこともあります。この「函」という文字は、「はこ」という意味です。なので、関数を箱(はこ)というのは、理に適っています。
数学のfunctionを函数と訳した人はセンスが高いですね。
箱の入り口にあたる部分は、「( )」をつかって表します。
関数名に 「( )」 もつけて\(f( )\)と書くことで、\(f\)が関数であることを強調することもよくあります。
関数にはいろいろな数を入れることができますが、入れるものにも名前を付けます。
よく使われるのは、英文字の「\(x\)」です。
さきほどの入り口の「()」の中に関数にいれるものを書くことになっていますから、関数\(f()\)に\(x\)を入れた場合を、\(f(x)\)と書きます。
\(f(x)\)の意味
関数名と、関数にいれるものはセットで使うことが多いので、関数を表すときには、関数名と入れる物の名前をセットにして、\(f(x)\)と書くことが多いです。
「関数\(f\)に入れる物の名前を\(z\)にするよ」、という場合は、\(f(z)\)と書きます。
関数からでてくるものは、英文字の「\(y\)」を使うことが多いです。
関数「\(f\)」に「\(x\)」を入れると「\(y\)」がでてくることを式で
\(y=f(x)\)と書いて表します。
式でかくと、数学らしくなりますね。
\(y=f(x)\)と書いてある時は、「\(f\)という箱に\(x\)をいれると\(y\)がでてくる。」もしくは、「\(x\)をいれると\(y\)がでてくる箱\(f\)がある。」という風に解釈します。
例として、3を入れたら、9がでてくる箱があったとしましょう。
この箱の名前を\(f\)とすると、\(9=f(3)\)と書いて表します。
あ、これからは、箱といわず、関数というようにします。
関数になにかを入れる事を数学では代入といいます。
関数\(f\)に3をいれることを、関数\(f\)に3を代入するといい、代入した式を\(f(3)\)と書き表します。
数字の4を代入した場合には、\(f(4)\)と表します。関数\(f\)に4をいれると16が出てきたとしましょう。
この場合は、\(f(4)=16\)となりますね。
等式(\(=\)の式)は左右逆に書いても同じ意味ですから、上記のように左右逆に書く場合もあります。
さて、実は、\(f(x)=x^2\)というような式もよく使われます。
これは、関数\(f\)の中身を表しています。
関数は、箱と言いましたが、箱のなかでどのような処理をしているのかを示すのが中身です。
箱の中で入れたものを2乗しているという処理を表す式が\(f(x)=x^2\)です。
この式は下記の2つの意味を持ちます。
- 「関数\(f(x)\)の中身は、\(x^2\)の処理である(関数の定義)」
- 「関数\(f\)に\(x\)を入れて出てくる数は、\(x^2\)と同じである」
どちらの解釈でもつじつまがあうので、その時々で都合のよいように解釈すればよいです。
一般的に「\(f(x)=x^2\)とする。」と書いてある場合は、「\(x\)をいれたら2乗して出す箱を\(f\)とする」という意味、つまり関数\(f\)の定義として書かれています。
ここでちょっと慣れないとややこしいと感じると思いますが、\(f(x)\)には関数\(f\)に\(x\)を入れたという意味もありますが、その関数(箱)からでてきたものも、\(f(x)\)と書くことがあります。
つまり、前の説明でいうと、\(y\)と書く代わりに\(f(x)\)と書くこともあるということです。
こういう書き方をしても、全然問題は起こりません。むしろ、新しい記号\(y\)を導入しなくてもよいのでものすごく便利なのです。
二つの関数を扱う場合
二つの関数を取り扱う場合、二つの関数を区別するために、名前も別々にします。
別の名前の代表は「\(g\)」という記号です。
これは、アルファベットの順番で「\(f\)」の次が「\(g\)」になっているからです。
関数の使用例
関数の簡単な使用例として次の問題を考えます。
\(f(x)=x^2-3x+2\)とする。
このとき、\(f(0),f(3)\)を求めよ。
これは、「箱の中身が\(x^2-3x+2\)で処理されている箱に\(0\)や\(3\)をいれたらなにがでてくるか。」という問題です。
中身の\(x\)の部分に\(0\)や\(3\)を入れて計算すれば答えになります。
\(0\)をいれた場合は、\(f(0)\)がでてくるわけですが、\(0^2-3×0+2\)を計算して\(2\)を得ます。
したがって、\(f(0)=2\)となります。
同様に、\(3\)を代入してみます。
\(f(3)=3^2-3×3+2=2\)なので、答えは2となります。
まとめると答えは、「f(0)は2で、f(3)も2である。」となります。
1次関数\(y=ax+b\)
なにか入れたら、規則に従ってなにかでてくる、これが関数の定義でした。
規則はどんなに複雑であってもよいのですが、最も簡単と考えられる規則が1次関数で表される規則です。これはありとあやゆる規則の中で基本中の基本で、まず関数を知るには1次関数を知らなければなにも関数はわからないというほどのものです。
一次関数は、\(y=ax+b\)という式で表されます。
どこにも\(f\)はでてきませんが、暗黙でこれは関数を表しているのです。
その関数の名前を\(f\)とすると、\(f(x)=ax+b\)と表される関数になります。
\(x\)は、関数に入れるモノを表していますが、\(a\)や\(b\)は、実際には数が入ります。
例えば、2とか3です。\(f(x)=2x+3\)という具合です。
この例えの関数は、なにか数をいれると、2倍して3を足した答えを出します。
関数に入れる数\(x\)は変数と呼び、\(a,b\)は定数と呼んで変数と区別します。
特に、\(b=0\)の場合は、\(f(x)=ax\)となりますが、この場合は比例関数と呼ばれています。
比例関数は、一次関数の特別な場合といえます。