解析学基礎/関数のソースを表示
←
解析学基礎/関数
ナビゲーションに移動
検索に移動
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループに属する利用者のみが実行できます:
登録利用者
。
このページのソースの閲覧やコピーができます。
{{prevnext|next=極限}} ==関数(函数)== くだけた言い方をすれば、'''関数 (function)''' は機械みたいなものです。例えばたこ焼き機。たこ焼き機に材料を入れると、たこ焼きが出てきます。関数に入力を入れると、出力が出てきます。ほとんどの関数はある数値を入れるとそれに応じた別の数値が出てきます。例えばこのように書くと、 :<math>f(x) = 3x + 2</math>. この <math>f</math> は関数であり、ある数値を入れると、その 3倍たす2 が出てきます。入れる数値を関数の ''引数 (argument)'' または ''独立変数 (independent variable)'' と呼びます。出てくる数値を関数の ''値 (value)'' または ''従属変数 (dependent variable)'' と呼びます。 たとえば <math>f(2)</math>(引数 2 を与えたときの関数 <math>f</math> の値)は、以下のようになります。 :<math>f(2) = 3 \cdot 2 + 2 = 6 + 2 = 8.</math> ===関数の性質=== 関数には2つの重要な性質があります。 #関数には入力できる値の集合が決まっています。これは "すべての正の実数" の集合かもしれないし、{タコ, キャベツ, 紅しょうが} の集合かもしれません。この集合を関数の''定義域 (domain)'' といいます。関数に定義域にある要素をどんなものでも入れると、関数は値を返します。定義域にない値を関数に入れることはできません。 #:例えば、次の関数 <math>f(x) = \frac{1}{x-2}</math> があるとき、定義域は ''2 をのぞく全ての実数'' になります。なぜなら <math>f(2)</math> は存在しないからです(1 を 0 で割ることはできない)。 #定義域に属する要素のどれについても、関数はいつも ''ひとつだけ'' 値を返します。例えば、関数 <math>f</math> が定義域として全ての正の実数をとり、入力された値の平方根を返すとき、じつは <math>f</math> は関数ではありません。引数 <math>x</math> にたいして 2つ以上の値がありうるからです(例えば <math>x</math> が 4 なら、<math>f</math> は -2 か +2 のどちらもありうる)。4 の平方根(2乗して4になる数)はひとつではありません。 ===垂直線テスト=== [[Image:Vertlinetest.png|thumb|この図は垂直線テストで関数では無い事がわかった例です]] ''垂直線テスト (vertical line test)'' というのはある表現が関数であるかどうかを調べるための方法の一つです。 やり方は簡単です。関係式のグラフを用意します。定義域のいずれかを通る垂直な線を描きます。この垂直な線とグラフの交点が1つだけならこのグラフは関数を表すグラフです。交点が1つも無い場合、2つ以上ある場合は、関数を表すグラフではありません。先程、説明した関数の性質に反するからです。 :関数のグラフの描き方などは、後ほど説明します。 関数に名前を付けるとき特にルールはありませんが、だいたい <math>f</math>, <math>g</math>, <math>h</math> などの文字で関数を表し、<math>x</math> の文字で独立変数を表し、<math>y</math> は独立変数でも従属変数のときも使われる、といったところです。 関数には、特別な表記法があります。この表記法に慣れることは、数式を理解するためにとても重要なことです。 ===表記法=== 関数(例えば<math>f</math>)を見たら、まず、この関数は何を独立変数(例えば<math>x</math>)に持つのだろうか?ということを考えるのが普通です。したがって、関数<math>f</math>を、単に<math>f</math>と書くのではなく、独立変数<math>x</math>を添えて、<math>f(x)</math>と書きます。因みに、<math>f(x)</math>は「エフ エックス」と読みます。この表記法は、特定の独立変数の値に対応する従属変数の値を表すのにも便利です。 例えば :<math>f(x) = 3x + 2</math> と定義します。 <math>x</math>が<math>2</math>の時の、従属変数の値は?というと、上の<math>f(x)</math>の定義式の両辺の<math>x</math>の所を<math>2</math>で置き換えて :<math>f(2) = 3 \cdot 2 + 2 = 6 + 2 = 8</math>. このようになります。すなわち<math>f(2)</math>は<math>8</math>を意味します。 この<math>f(x)</math>という書き方は、単に<math>f</math>と書くよりも、関数の情報をしっかりと伝えてくれますし、この書き方を覚えておく事は、数学の教科書を読むのにとても大事なことです。ただ、<math>f(x)</math>を<math>f</math>かける<math>(x)</math>というかけ算と誤解しないようにしてください。 実は、この書き方にはもっといいことがあります。独立変数<math>x</math>の部分には、数だけではなく、いろいろな数式や、関数まで入れられるのです。関数を入れる場合は、関数の''合成 (composition)'' と呼ばれます。これは後ほど説明します。 === 例 === 簡単な関数の例をいくつか挙げてみます。 :{| class=wikitable style="margin: 1rem" |- |<math>f(x)=x\,</math> :与えられた入力をそのまま出力として吐き出す関数。 |- |<math>g(x)=3\,</math> :どんな値の入力に対しても 3 を出力する関数。 |- |<math>f(x)=x+1\,</math> :入力に対し、1 を加えて返す関数。 |- |<math>h(x)=\left\{\begin{matrix}1,&\mbox{if }x>0\\-1,&\mbox{if }x<0\end{matrix}\right.</math> :正の値の入力に対し<math>1</math>を、負の値の入力に対し<math>-1</math>を返す関数。注意すべきことに、この関数は正または負の数を入力として受け付けますが、<math>0</math>は入力できません。数学者はこの状況を、「<math>0</math>はこの関数の''定義域''に属さない」と表現します。 |- |<math>g(y)=y^2\,</math> :入力された値の二乗を返す関数。 |- |<math>f(y)=\left\{\begin{matrix}\int_{-y}^{y}e^{x^2}\,dx,&\mbox{if }y>0\\0,&\mbox{if }y\le0\end{matrix}\right.</math> :正の入力に対しては、それをつかった複雑な積分の値を返し、それ以外の入力には<math>0</math>を返す関数。 |- |} :独立変数の部分は、数字以外のもので置き換える事も可能です。例えば、独立変数の値が、ある関数を通して他の独立変数によって与えられるならば、独立変数の部分を、その関数に置き換えることもできます。この操作は''合成''と呼ばれます。このことは後ほど説明します。 === 関数の演算 === 関数の間には、他の変数に対するのと同様にして、和や積やべきなどといった演算を定義することができます。例えば :<math>f(x) = 3x + 2</math> :<math>g(x) = x^2</math> とすると、 :<math>f+g=(f+g)(x)=f(x)+g(x)=(3x+2)+(x^2)=x^2+3x+2</math> :<math>f-g=(f-g)(x)=f(x)-g(x)=(3x+2)-(x^2)=-x^2+3x+2</math> :<math>f\times g=(f\times g)(x)=f(x)\times g(x)=(3x+2)\times(x^2)=3x^3+2x^2</math> :<math>\frac{f}{g}=\left(\frac{f}{g}\right)(x)=\frac{f(x)}{g(x)}=\frac{3x+2}{x^2}=\frac{3}{x}+\frac{2}{x^2}</math> となります。 しかしながら、関数には他の変数ではできない関数特有の方法による結びつきがあります。関数 <math>f</math> の値は他の変数 <math>y</math> に依存して決まり、しかしその変数 <math>y</math> は別の関数 <math>g</math> と等しく、その値はさらに別の変数 <math>x</math> に依存して決まるとします。このような場合には、最初の関数 <math>f</math> の値は、第3の変数である <math>x</math> の関数になっていますからこれを <math>h</math> とします。この関数 <math>h</math> は二つの関数 <math>f</math> と <math>g</math> の''合成関数 (compositon)'' と呼ばれ、 :<math>f \circ g = (f \circ g)(x) = f(g(x))</math> のように記します。例えば、 :<math>f(x) = 3x + 2</math> :<math>g(x) = x^2</math> とすると、 :<math>h(x) = f(g(x)) = f(x^2) = 3 (x^2) + 2 = 3x^2 + 2</math>. ここに、<math>h</math> は <math>f</math> と <math>g</math> の合成です。注意すべきことに関数の合成は、交換可能な演算ではありません: :<math>f(g(x)) = 3x^2 + 2 \ne 9x^2 + 12x + 4 = (3x + 2)^2 = g(3x + 2) = g(f(x))</math>. あるいはもっと明示的に: :<math>f(g(x)) \ne g(f(x))</math>. 関数の合成は非常によくあるものです。関数自身が非常に平凡でよく使われる概念であるのがその主な理由です。例えば、和、積などといったものも、複数の独立変数を持つ関数として表現することができます: :<math>\operatorname{plus}(x, y) = x + y</math>, :<math>\operatorname{times}(x, y) = x \cdot y</math>, などといった具合です。 そして、数式 <math>2 \cdot 3 + 4</math> は関数の合成です: :<math>(2 \cdot 3) + 4 = \operatorname{times}(2, 3) + 4 = \operatorname{plus}( \operatorname{times}(2, 3), 4)</math>. <math>x</math> = 2 かつ <math>y</math> = 3 のときの関数 ''times'' の値は 6 ですから、したがって :<math>\operatorname{plus}( \operatorname{times}(2, 3), 4) = \operatorname{plus}(6, 4)</math>, となり、さらに <math>x</math> = 6 かつ <math>y</math> = 4 のときの関数 ''plus'' の値は 10 ですから、 :<math>(2 \cdot 3) + 4 = \operatorname{plus}( \operatorname{times}(2, 3), 4) = \operatorname{plus}(6, 4) = 10</math>. となります。 === 定義域と値域 === ====区間の表記法==== ''区間 (interval)'' の表記法は実に単純です。しかし、ちょっとした違いで意味が変わってきますので、括弧の形をよく見てください。 :{| class=wikitable style="margin: 1rem" |- |意味 |区間の表記 |集合としての表記 |- |全ての値は<math>a</math>以上<math>b</math>以下 |<math>\left[a,b\right]</math> |<math>\left\{x:a\le x\le b\right\}</math> |- |全ての値は<math>a</math>より大きく<math>b</math>より小さい |<math>\left(a,b\right)</math> |<math>\left\{x:a < x < b\right\}</math> |- |全ての値は<math>a</math>以上で<math>b</math>より小さい |<math>\left[a,b\right)</math> |<math>\left\{x:a\le x < b\right\}</math> |- |全ての値は<math>a</math>より大きく<math>b</math>以下 |<math>\left(a,b\right]</math> |<math>\left\{x:a < x\le b\right\}</math> |- |全ての値は<math>a</math>以上 |<math>\left[a,\infty\right)</math> |<math>\left\{x:x\ge a\right\}</math> |- |全ての値は<math>a</math>より大きい |<math>\left(a,\infty\right)</math> |<math>\left\{x:x > a\right\}</math> |- |全ての値は<math>a</math>以下 |<math>\left(-\infty,a\right]</math> |<math>\left\{x:x\le a\right\}</math> |- |全ての値は<math>a</math>より小さい |<math>\left(-\infty,a\right)</math> |<math>\left\{x:x < a\right\}</math> |- |全ての実数 |<math>\left(-\infty,\infty\right)</math> |<math>\left\{x: x\in\mathbb{R}\right\}</math> |- |} :注意! 「以上」「以下」と「より大きい」「より小さい」の使い分けに注意してください。「以上」「以下」は、その値も''含む''ときに使います。「より大きい」「より小さい」は、その値を''含まない''ときに使います。 :注意! <math>\infty</math>という記号は「無限大(むげんだい)」と読み、限りなく大きいという意味です。符号が無い場合や<math>+\infty</math>となっている場合は、正の方向へ限りないという意味で、<math>-\infty</math>のようにマイナスが付いている場合は負の方向に限りないという意味になります。<math>a</math>や<math>b</math>と違って<math>\infty</math>は数ではありませんが、区間を表記するために何も数字を入れないのは分かりにくいですから、代わりにこの記号を入れて、区間のこちら側には限りがありませんよということを示しています。繰り返しますが<math>\infty</math>は数ではありません。便宜的な記号です。そして括弧の形が丸括弧になっていることにも注意してください。この記号を使う時は、含むとか含まないとかいった事も意味がありませんから、丸括弧の方を使うというように統一されています。 ====定義域==== [[Image:Domainofsemicirclefunction.png|thumb|この関数の定義域は[-1,1]です]] 関数の''定義域 (domain)'' とは、関数が定義されている全ての点の集合のことです。 例えば :<math>f(x) = \sqrt{1 - x^2}</math> であれば、<math>f(x)</math>は、根号の中の符号がマイナスにならない点、すなわち、<math>x</math>が<math>-1</math>以上<math>1</math>以下の時に定義されるので、<math>f(x)</math>の定義域は<math>\left[-1,1\right]</math>となります。 逆に、<math>f(x)</math>は<math>x \in [-1, 1]</math>(或いは<math>-1 \le x \le 1</math>)の時に定義されているとも言えます。 ====値域==== [[Image:Rangeofsemicirclefunction.png|thumb|この関数の値域は[0,1]です。]] 関数の''値域 (range)'' とは、関数が取る全ての値の集合の事です。例えば :<math>f(x) = \sqrt{1 - x^2}</math> であれば <math>f(x)</math> の取る値は <math>0</math> 以上 <math>1</math> 以下となり、また、<math>0</math> 以上 <math>1</math> 以下の実数 <math>y</math> を選ぶと必ずそれに <math>f(x)</math> が等しくなる(即ち <math>f(x)=y</math> となる)ような <math>x</math> が存在します。従って、この <math>f</math> の値域は <math>[0, 1]</math> となります。また、この場合、<math>y=0</math> として、<math>f(x)=0</math> を満たす <math>x</math> を探してみると <math>x = \pm 1</math> となりますから、<math>y=0</math> に対応する <math>x</math> の値が <math>2</math> つあることになります。 <math>f</math> の取る値に対して、<math>x</math> が <math>1</math> つしかないとき、関数<math>f(x)</math> は''1対1 (one-to-one)'' であるといいます。 :1対1の書き方は、''1:1''と書かれることもありますし、<math>f(x)</math> は'''単射'''であると表現されることもあります。 例えば、すぐ上で示したケースは <math>2</math> つあることが分かりましたから、1対1ではないということになります。 1対1である関数の例としては、<math> f(x)=x+2</math> などがそうです。考えられる値 <math>y</math> に対して<math>y=f(x)</math> を考えると、<math>x=y-2</math> という関係がすぐに分かります。<math>y</math> を決めると、<math>x</math> が一つに決まるということになります。逆に <math>x</math> を <math>x=y-2</math> と取れば、<math>f(x)=y</math> ということがすぐにわかります。したがって、<math>x</math> を決めれば <math>y</math> が決まり、<math>y</math> を決めれば <math>x</math> が決まるという関係であることが分かります。これが、1対1という言葉の意味なのです。 ====逆関数==== <math>f(x)</math>が、1対1であるとき、また、その時に限り :<math>g(f(x)) = f(g(x)) = x</math> を満たす関数<math>g(x)</math>が存在します。 この<math>g(x)</math>を<math>f(x)</math>の''逆関数 (inverse function)'' といい<math>f^{-1}(x)</math>と書きます。 つまり :<math>g(x) = f^{-1}(x)</math> です。 例えば、<math>f(x)=x+2</math>の逆関数は<math>x-2</math>です。 :先程は、<math>y</math>という記号を使って<math>y-2</math>と書きました。<math>y</math>の所が<math>x</math>に置き換わってることに注意してください。元の関数では従属変数だった<math>y</math>が、独立変数になるのですから、それに合わせて<math>y</math>を<math>x</math>に置き換えてあります。もう一度、逆関数<math>g(x)</math>の定義を見て、そこで使われている<math>x</math>という記号が、元の関数<math>f(x)</math>の独立変数<math>x</math>と同じものかどうか考えてみましょう。 1対1ではなかった<math>f(x) = \sqrt{1 - x^2}</math>の場合は、逆関数はありません。もし、この関数の定義域が、<math>[0,1]</math>であったならば、1対1になりますから、逆関数が存在します。このように、定義域の取り方によっては1対1にでき、逆関数が存在したりもします。似たような例では、<math>f(x) = \sqrt{1+x^2}</math>がそうです。<math>x^2</math>の前の符号が先程と変わっていることに注意してください。この関数の定義域が実数全体であれば、1対1にはならないので逆関数は存在しませんが、もし、定義域が正の数全体であれば、逆関数が存在することになります。 ===関数のグラフ=== [[Image:Graphofyequals2x.png|thumb|y=2xのグラフ]] 関数の定義を見ただけでは、どういう関数なのか分かりにくいことがあります。そんな時は視覚的に表現してみたり、グラフを描いてみるととても分かりやすくなります。平面上の点の位置が(x,y)で表されるxy座標平面において、<math>f(x)=y</math>であるような点をとります。言い換えると、横方向(x-軸の方向、右の方へ行く程大きくなる)の位置で独立変数<math>x</math>の値を表し、縦方向(y-軸の方向、上へ行く程大きくなる)の位置で<math>f</math>の値を表すということになります。 関数のグラフを描くためには、まず独立変数<math>x</math>に具体的な値を入れ、<math>f(x)</math>を計算し、xy座標平面上の(x,f(x))にあたる位置に点を描いていきます。解析学で扱われる関数は連続であることが多いので描いた点を線分や、曲線で結びます。 :連続については、すぐ後の項目で説明します。 点を描いてない範囲まで予想して、線を書き込むこともできますが、不正確なものになってしまうことが多いので気をつけましょう。(もしかしたら、予想に反した曲がり方をしてるかもしれません。) 線を書き込む前の段階で、描いてある点が多いほど正確なグラフが描けます。 このように点を描いていく作業は、計算機を使えば結構簡単にできますが、手作業であれば結構大変な作業です。しかし、扱われる殆どの関数のグラフには、よく現れる形があります。例えば次のような関数を考えてみましょう。 :<math>f(x) = {a \over b}x</math> ここでbは 0ではないとします。<math>f</math>のグラフは、(<math>0</math>,<math>0</math>),(<math>\frac{b}{a}</math>, <math>1</math>),(<math>b</math>, <math>a</math>)を通る一本の直線になります。従って、この2つの点を取り、定規などで直線を描けば<math>f</math>のグラフが正確に描けます。点を描いた範囲よりも遥か遠くまで直線を延ばして構いません。 :すぐ上で述べた「点が多いほど正確なグラフが描ける」という事実と矛盾してるように感じるかもしれませんが、これは、関数<math>f(x)</math>のグラフは直線になるという性質が知られているために、点を描いてない範囲まで正確な予想ができグラフを正確に描けるのです。関数<math>f(x)</math>の性質がよく分かってない場合は、上記のように沢山の点を描くか、関数<math>f(x)</math>の性質をよく調べた上でグラフを描きます。いろいろな関数の性質を知れば知るほど簡単にグラフが描けるようになります。この「関数の性質を調べる」ということは解析学の中心的な課題でもあります。 <!-- グラフやグラフの描き方について、もっと技術的なものが欲しい --> === 連続性 === 殆どの関数のグラフは、点がばらばらに孤立して描かれることは無く、一つか或いはそれ以上の「線」の集まりで成り立っています。一つ一つの「線」を描くとき、鉛筆を紙から離さずに描くことができ、「線」の途中でいきなり遠くの点に飛ぶということもありません。この「鉛筆を紙から離さずに描ける」ということが''連続性 (continuity)'' なのですが、これについてはまた後程、厳密に定義します。 <!-- もうちょっと説明して、グラフも描いたほうがいいかもしれない。--> == 四則演算 == ===この節の目的=== この節では、四則演算を用いた関数の操作をしてみます。このような操作は、''代数学''という分野で詳しく研究されています。 ===演算規則=== 以下の規則はいつも成り立ちます。詳しく知りたい人は、ウィキペディアの[[w:ja:体論|体論]]の記事を見てください。結構沢山の人が間違えて覚えていたりしますので注意してください。 <!-- 本来、ウィキペディアの記事ではなく、ウィキブックス内で対応すべきかもしれません --> *加法(足し算) **交換法則: <math>a+b=b+a</math> **結合法則: <math>((a+b)+c)=(a+(b+c))</math> **単位元の存在: <math>a+0=a</math> **逆元の存在: <math>a+(-a)=0</math> *減法(引き算) **定義: <math>a-b=a+(-b)</math> *乗法(掛け算) **交換法則: <math>a\times b=b\times a</math> **結合法則: <math>(a\times b)\times c=a\times (b\times c)</math> **単位元の存在:<math>a\times 1=a</math> **逆元の存在: <math>a\times \frac{1}{a}=1</math> **分配法則: <math>a\times (b+c)=a\times b+a\times c</math> *除法(割り算) **定義: <math>\frac{a}{b}=a\times \frac{1}{b}</math> これらの法則は、任意の''a'',''b'',''c''に対して成り立ちます。''a'',''b'',''c''は具体的な数でなくとも、変数でも、関数でも、他の表現でも構いません。 例えば、これらの法則を使うことにより {| |- |<math>\frac{(x+2)(x+3)}{x+3}</math> | = <math>(((x+2)\times (x+3))\times (\frac{1}{x+3}))</math> |- | | = <math>((x+2)\times ((x+3)\times (\frac{1}{x+3}))</math> |- | | = <math>((x+2)\times (1))\,</math> |- | | = <math>x+2\,</math> |- |} このように長い式を、分子と分母に共通にある(x+3)で''約分''して簡略化することができます。表現が長くて分かりにくい関数も、このような操作によって簡略化し分かりやすくできる場合が沢山あります。 時々、これらの法則を間違えて使う人がいます。 例えば、次の式はどこが間違いなのか分かりますか? <math>{2 \cdot (x + 2) \over 2} = {2 \over 2} \cdot {x + 2 \over 2} = {x + 2 \over 2}</math>. ==== 問題集 ==== (予定は未定) {{prevnext|next=極限}} [[Category:解析学|かんすう]] [[en:Calculus/Functions]] [[nl:Analyse/Functies]]
このページで使用されているテンプレート:
テンプレート:Prevnext
(
ソースを閲覧
)
解析学基礎/関数
に戻る。
ナビゲーション メニュー
個人用ツール
ログイン
名前空間
ページ
議論
日本語
表示
閲覧
ソースを閲覧
履歴表示
その他
検索
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
特別ページ
ツール
リンク元
関連ページの更新状況
ページ情報