関数

ページ名:関数

登録日:2011/05/28(土) 03:37:14
更新日:2023/08/21 Mon 10:53:41NEW!
所要時間:約 5 分で読めます



タグ一覧
数学 変態項目 上級者向け ブラックボックス 概念 関数 二次関数



関数(函数とも)とは、数学全般において使われる非常に重要な概念である。
一般に、集合X,Yが与えられ、さらに任意のx∈Xに対しy∈Yがただ1つ決まるとき、その対応fをXからYへの写像と呼び、xに対応するyをf(x)などと表す。
(fはfunctionの頭文字)
特に、XとYが共に「数の集合」(C,Rやその直積など)のときにその写像を関数と呼ぶことが多い。
なお、XとYが共に「関数の集合」なら作用素、Xが「関数の集合」、Yが「数の集合」なら汎関数などと言ったように、
よく使われる写像にはそれぞれ固有の呼び方が付いているものが多い。
高校数学までに取り扱う関数には多項式関数、三角関数、指数関数、対数関数などがあり、これらをまとめて初等関数と呼ぶ。


こんなことを書いても訳がわからない人がいると思うので、例をあげよう。



(関数の例1)
X=Y=R (実数全体)として, x∈X に対し f(x):=2x+1 とするとfはXからYへの関数である。


(関数の例2)
X=N^2 (2つの自然数の組全体), y=N (自然数全体) として, (m,n)∈X に対し f(m,n):=(m,nの最大公約数) とするとfはXからYへの関数である。


例1は中学1年で学ぶ1次関数なので、これは問題ないだろう。
一方、例2はf(m,n)は例1のように具体的な数式で表示できてはいないが、(m,n)∈Xが決まればf(m,n)∈Yの値はただ1つに決まるのでこれも関数である。
ちなみにこの関数は式の表現で書くと、f(m,n):=GCD(m,n)とできる。(GCDは「最大公約数」を意味する。)
ただし、関数という概念が生まれた当初は例1のように具体的な数式で表されたものだけを関数と呼んでいた。



次に関数でないものの例をあげよう。


(関数でない例1.1)
X=Y=R として, x∈X に対し f(x):=(2乗するとxになる実数) とするとfはXからYへの関数ではない。


(関数でない例1.2)
X=Y=R として, x∈X に対し f(x):=(2乗するとxになる0以上の実数) とするとfはXからYへの関数ではない。


(関数でない例1.3)
X=R, Y=C (複素数全体) として, f(x):=(2乗するとxになる0以上の複素数) とするとfはXからYへの関数ではない。


まず例1.1は関数ではない。例えば、1∈Xに対し2乗すると1になる実数は1と-1の2つあるためである。
冒頭で述べたように、fが関数であるためには、xに対してyは「ただ一つ」に決まる必要がある。
そのため、yが2つとれてしまうこのfは関数ではない。


では、1つに決まるように定義に若干の修正をした例1.2はどうだろうか。これも関数ではない。
例えば、-1∈Xに対し2乗すると-1になる実数は存在しないためである。
冒頭で述べたように、fが関数であるためには、xに対してyは「ただ一つ」に決まる必要がある。
そのためyが1つもとれないこのfは関数ではない。


ならば、複素数を使えば良いのではないか?と思うかもしれないが残念ながら例1.3も関数ではない。
今度は、定義文自体が問題になる。実数の場合と違って複素数では正負の概念がないので、
「2乗するとxになる0以上の複素数」という文章はそもそも意味不明であり、yの決めようがない。
そのためこのfは関数ではない。このような平方根を取る操作は、たとえば次のように定義するときちんと関数となる。


(関数の例3)
X=Y=[0,∞) (0以上の実数全体) として, x∈X に対し f(x):=(2乗するとxになる0以上の実数) (数式で表現すると、f(x):=√x。)とするとfはXからYへの関数である。


このように、高校数学までではあまり気にされないが、「そもそも本当にそれが関数か?」というのが問題となることは意外と多い。
その関数が正しく定義できているとき、その関数はwell-definedであるという。



(微妙な例)
(関数の例3)では、平方根を取る対象を非負実数に制限し、さらにその値も非負のものを取ることでwell-definedな関数となっていた。
しかし、複素数全体で平方根を考えようとする場合、(関数でない例1.3)のように、yの値のとり方を固定するのに実数の場合と同じ方法を取ることは出来ない。
したがって、次のような複素平方根「関数」を真に「関数」として扱うためには何らかの方法でyの値の選び方を指定する必要がある。


X=Y=C として, f(x):=(2乗するとxになる複素数)
(複素変数にはzを使うのが一般的だが、ここでは実数の場合に合わせてxを用いた)


…しかし、実はそのようなyの「上手い」決め方は存在しないことが知られている。
粗っぽい言い方をすると、複素数に対してその平方根は本質的に2つあり、一方だけを恣意的に取り出すと性質が良くないのである。
このような理由から、複素解析においては、yが同時に2つの値を取ることを許し、複素平方根を取る「関数もどき」であるfを「多価関数」と呼び、この場合は「2価関数」となる。
(やや難しい内容だが、例えばXを0以外の複素数に拡張した自然対数の関数は複素数Yに対して無数の値を取る為、「無限価関数」になる。)
「関数」でないのにも関わらず多価「関数」と呼ぶのは歴史的な経緯による。
これらの混同が起きないように、普通の意味での関数であることを明示したい場合にそれを「1価関数」と呼ぶこともある。




ちなみに上記の関数の他にもこんな関数もある。



(関数の例4)
X=Y=Rとして、x∈Xに対してf(x)はxが有理数なら1、無理数なら0 とするとfはXからYへの関数である。


パッと見た感じでは「これが関数!?」と思うかもしれないが、全ての実数は有理数か無理数のどちらかになるので任意のxに対して対応する実数の値がただ1つ用意されているので立派な関数である。
この様に全てのxに対応する値をキッチリ決めて、それがwell-definedであれば関数を定義することができる。
(ちなみにこの関数も式で表現できる。)



追記・修正はwell-defined性を確かめてからお願いします。


[#include(name=テンプレ2)]

この項目が面白かったなら……\ポチッと/
#vote3(time=600,3)

[#include(name=テンプレ3)]


  • なんか地味にエロい… これをみた人が関数をみて欲情しないことを祈りたい… -- 名無しさん (2014-03-26 09:23:16)
  • プログラミング言語での関数「あたしの項目もほしいなぁ・・・」 -- 名無しさん (2014-03-26 11:13:58)
  • 時代はオブジェクト指向だぜ兄貴ィ -- 名無しさん (2014-08-04 19:18:53)
  • y=-xの時の刺激ってどうなるの? -- 名無しさん (2014-12-16 20:56:57)
  • 写像先輩にも一言インタビューほしい -- 名無しさん (2015-05-05 23:32:19)
  • 考えてみればこれだと数式に書けるものが関数って勘違いする人もいそうだから、せめてxの値が決まればyの -- 名無しさん (2015-05-05 23:34:35)
  • 値も決まるもので、式に表されているかは -- 名無しさん (2015-05-05 23:35:08)
  • 書いた方がよくないいか?(誤爆ごめんなさい) -- 名無しさん (2015-05-05 23:35:54)
  • この項目の最大の問題は建て主が関数の意味すら理解できていないことだと思う -- 名無しさん (2016-05-08 23:35:46)
  • 大幅に修正。一般論にはほとんど触れず例の羅列なので、一般論が足りなi -- 名無しさん (2017-01-14 22:41:22)
  • ↑誤送信。一般論が足りないと思う人は追加してください。例の追加もどうぞ -- 名無しさん (2017-01-14 22:42:21)
  • 初期の頃のデタラメだらけだったのが修正されてるな、あれはネタとしても寒かったし、修正者ナイス -- 名無しさん (2017-05-07 20:08:00)
  • なるほど、よく分からん -- 名無しさん (2018-07-22 22:51:47)
  • みんなのトラウマ -- 名無しさん (2021-03-30 19:29:32)
  • プログラミングの話だと、例えば生年月日(x)を与えて(現在時刻から)年齢(y)を返す処理も関数。メソッドとも言う。wikiのプラグインも関数の一種だな -- 名無しさん (2021-03-30 22:25:01)

#comment

シェアボタン: このページをSNSに投稿するのに便利です。

コメント

返信元返信をやめる

※ 悪質なユーザーの書き込みは制限します。

最新を表示する

NG表示方式

NGID一覧