アメリカの大学で奮闘中

アメリカの大学でプログラミングを学ぶべくコンピューターサイエンス学部に留学したものの挫折し数学科に転部した著者が、自分の挫折ポイントを踏まえて数学、プログラミング、アルゴリズムついてできる限り分かりやすく解説してみるブログ。*できる限り記事の内容は技術的な間違いをしないように気をつけていますが、もし間違いがあれば教えていただけると助かります。

写像(Mapping)とは何か、関数とは何か

アメリカの大学の2年生の秋学期、長かったCalculasのクラスが終わろうとしている時期に、数学の基礎となる証明法や集合理論、数学的記述方法のクラスが始まりました。

 

その時の自分は英語力を未熟で、数学は先生の板書かスライドの数式と教科書の公式を見比べることだけで理解をしていた自分には初めての数学の抽象的な説明を英語で受けることに戸惑い理解することを苦戦していました。

 

そしてまさにその初めて苦労したトピックが写像(Mapping)でした。

 

この記事では、アメリカで数学の授業を受ける方や数学の知識を英語でも知っておかないといけない人に向けて、写像、単射(injective)、全射(surjective)、全単射(bijective)を説明したいと思います。

 

そもそも写像とは?

この答えとしては厳密性や正確性を一旦無視して関数(function)のことだと思ってください。

 

ただし、ここで新たな関数の見方をして欲しいのです。

関数を矢印だと考えてください。さらに言うとAという集合の要素からBという集合の要素に対応させるイメージです。その際には以下のように記述します。

f:A → B

 

例としてf(x)=x+2という関数を考えます。これは言うまでもなくxという値に2を足す関数なのですが、実数の集合から別の実数の集合に対応していると無理やりかもですが言えます。(そもそも実数が集合なんだという方は後々集合についての記事を書く予定ですのでお楽しみに。)

 

この場合、実数R(集合A)から、実数R(集合B)に対応させているという意味を込めて以下のように記述します。集合Bは2を足しても実数であることは変わりないので実数Rです

f:R → R

 

*実数は英語でReal Numberといい、頭文字のRで記述します。

 

この→の性質を考えてみます。そして特徴的なものは名前がつけられています。それが単射(injective)、全射(surjective)、全単射(bijective) になります。

 

以下では先程の関数

f:R → R   f(x)= x+2

g:R → R   g(x)= x^2

を用いて説明していきたいと思います。

 

単射(injective)

単写は集合Aと集合Bの要素が一対一で対応している写像です。

なので、f(x) = 2xは単写になります。その一方でg(x)=x^2はg(x)=g(-x)=x^2と二対一になっているので単射(injective)ではありません。

 

全射(surjective)

全射は矢印が集合Aから集合Bの全ての要素にリーチできる状態になっていることを言います。

f(x)=x+2は、もし集合Bのyという要素が欲しければxについて解いてあげてx=y-2という実数を見つけることができるので全射です。一方でg(x)= x^2はもしg(x)の値がマイナスの時のxの値を探すことができないため、集合Aから集合Bの全ての要素にリーチできる状態ではないので全射ではありません。

 

全単射(bijective)

単写と全射の両方を満たすものを全単射と呼びます。なのでf(x)=x+2は全単射と言えます。

 

余談:写像と関数の違い

こちらのサイトには以下のように記述されていました。

mathlandscape.com

 

結論,両者の違いは基本的にないと思って差し支えないです。
強いて言えば,終域が数やそれに関連するものであるとき,「関数」といい,そうでないとき「写像」ということが多いです。

 

実際に大学の授業でも(少なくとも学部生のうちは)特に区別することなく理解していても問題ありませんでした。