Corollaryは必然に。

このブログは「コロちゃんぬ」の提供でお送りします

世界の果てまで異なる2つの実数解

ここに放物線y=x^2のグラフがあります。

f:id:corollary2525:20170705181305p:plain

このグラフにy=1という真横の直線を引きます。

f:id:corollary2525:20170705181327p:plain

2つの点で交わりました。この直線の高さを変えるとどうなるでしょう?

f:id:corollary2525:20170705181403g:plain

x軸よりも上に引いた場合は2点で交わり、ちょうどx軸のときは1点だけで交わり,それよりも下側に直線を引くと交わりません。


それではここでクエスチョンです。


どんな高さの真横の直線を引いても、ちょうど2点で交わるような関数とは一体何でしょうか?



問題を正確に書きます。

問題1
関数f:\mathbb{R}\to\mathbb{R}のうち,任意の実数kに対して,f(x)=kを満たすxがちょうど2個あるような関数は存在するか?存在しないならば証明し,存在するならば例を挙げよ.

難しい?簡単?よかったら少し考えてみてください。

ただし、注意してほしいことは定義域は実数全体ということです。勝手に定義域を狭めてはいけません。



さて、前回自然数が選ぶ自然数総選挙」というのを書きました。
corollary2525.hatenablog.com
有権者自然数の皆さん、立候補者も自然数の皆さんとしたときの総選挙の起こりうる結果について書きました。また、この記事内でf(n)を「自然数nさんの投票先」と定義しました。

そして、今回の問題は「実数が選ぶ実数総選挙」と考えることもできます。x軸に投票者である実数たち、y軸に立候補者の実数たちが並んでいると考えましょう。このとき、「任意の実数kに対して,f(x)=kの解がちょうど2個であること」は「全員が2票獲得すること」と同じになります。



さあ、問題1は解けましたか?自信がある方はスーパーなんとか人形をご用意して次節にお進みください。








問題1の解説

それでは正解例です。ズバリこんな感じのグラフです。

数式で書くならf(x)=x-\frac{\lfloor x\rfloor}{2}でしょうか(\lfloor x\rfloorxを超えない最大の整数)。これならどんな真横の直線を引いても必ず2点で交わりますね。


ちなみに、不正解の例はこちら。

f(x)=\log |x|としてみました。確かにどんな真横の直線を引いても必ず2点で交わります。しかし、この関数はx=0で定義されていないですね。実数総選挙で例えるなら、0さんが誰にも投票していません!だからといって、この状態で0さんが慌てて誰かに投票しても(すなわちf(0)をどう定義しても)、誰かが3票獲得してしまいます。

このままでは不正解なのですが、少し工夫して正解のグラフを作ることもできます。それがこちら:
数式をちゃんと書けば、
\begin{equation*}
f(x)=\begin{cases}
\log(x+1) & \text{if}\;x=0,1,2,\ldots\\
\log |x| & \text{otherwise}
\end{cases}\end{equation*}です。何をしてるかというと、f(0)=\log1=0と定義した代わりに、1の行き先を\log1=0から\log2に変更しました。そして、\log2に行く予定だった2は\log3に行き先を変更しています。このようにして自然数の皆さん全員にずれてもらいました。自然数のみんな、ありがとう。


連続関数で作れないの?

さてさて、皆さんお気づきだと思いますが、先ほどの関数はどれも不連続です。できることなら連続関数で作りたいところです。


それではここでクエスチョンです。


問題2
連続関数f:\mathbb{R}\to\mathbb{R}のうち,任意の実数kに対して,f(x)=kを満たすxがちょうど2個あるような関数は存在するか?

ちなみに、この問題は僕が大学1年生のときのレポート課題として出たような、出てないような。数式は置いといて、条件を満たすようにグラフを書けるかどうかだけでも考えてみてください。






問題2の解説

正解は…そんな連続関数は存在しません!ボッシュート

証明をする前に、次の連続関数の基本的な定理を使います。

最大値・最小値の定理
区間[a, b]上で定義された実数値連続関数f:[a, b]\to\mathbb{R}は最大値と最小値をとる.

どんな連続関数も、閉区間上であれば最大値と最小値が必ずあるという定理です(最大・最小をとる点が複数ある場合もあります)。


中間値の定理
f:[a, b]\to\mathbb{R}を連続関数とする.このとき,ff(a)f(b)の間の任意の値をとる.
(正確には,f(a)f(b)の間の任意の実数kに対して,あるc\in[a, b]f(c)=kを満たす)

どちらも閉区間上の連続関数という仮定が重要です。

余談ですが、これらを証明するには「Bolzano-Weierstrassの定理*1」が必要で、その定理は「連続性の公理」によって支えられています。


では、早速証明してみましょう。ザ・世界の仰天!

証明
背理法で証明する.f:\mathbb{R}\to\mathbb{R}は任意の実数kに対して,f(x)=kの解がちょうど2個あるような連続関数とする.このとき,f(a)=0f(b)=0となるa,\;b\;(a< b)が存在する.ここでfの定義域を[a,b]に制限して考えると,最大値・最小値の定理より最大値M・最小値mが存在する(x_{\max}\in[a, b]f(x_{\max})=Mを満たす点とする).

M>0とする(以下M=0のときも同様に示せる).もし,m< 0< Mとすると中間値の定理よりf(c)=0となるa< c< bが存在してしまうのでm=0でなければならない.

ここで,f[a,x_{\max}]に制限して考えると,中間値の定理よりf0Mの間の値をとる.同様に,[x_{\max}, b]に制限して考えると,0Mの間の値をとる.したがって,任意のk_0\in(0,M)に対して,f(x)=k_0を満たすx[a,x_{\max}]内に1点,[x_{\max}, b]内に1点存在することが分かる.

さて,f(x_{\max})=Mとなる点以外にもf(\xi)=Mとなる点\xiが存在するはずである.このとき\xi< aまたはb< \xiのいずれかである(もし,\xi\in(a, x_{\max})だとすると,[\xi,x_{\max}]内で最小値m_0(< M)を取るが,中間値の定理よりf[a,x_{\max}]内でm_0を2回以上とってしまう.\xi\in(x_{\max},b)でも同じ)

b< \xiとすると,中間値の定理よりf(x)=k_0を満たすx\in(b,\xi)が存在する.これは[a, b]内にすでに解が2つあるのであり得ない.\xi< aのときも同様に矛盾が得られる.■



ふう…じわじわとfを追い詰めていく感じがたまらない。毎度思いますが、非存在の証明をできる数学の力って凄いですね。


最後にもう一つ

問題1および問題2では、f(x)=kの解がちょうど「2個」あるような関数を考えました。不連続でよければいくらで例を挙げることはできますが、連続関数では不可能であることが分かりましたね。


それでは最後のクエスチョンです。


問題3
連続関数f:\mathbb{R}\to\mathbb{R}のうち,任意の実数kに対して,f(x)=kを満たすxがちょうど3個あるような関数は存在するか?

不連続でよいのであれば、問題1で挙げた例を少し応用すればできます。では、連続関数でも作れるのでしょうか?結論をいうと作れます!意外とあっさり作れるのでこの問題は読者に任せたいと思います!(解答例は2、3日後「続きを読む」で公開しました)ただ、具体的に関数を表すことは少し難しいので、図だけでOKです。また、質問等があれば、記事の最後の「コメントを書く」およびコロちゃんぬ (@corollary2525) / Twitterにお願いします。余力のある人は3個に留まらず、4個以上の場合はどうかについても考えてくれると嬉しいです。



thank Q for rEaDing.φ(・▽・ )

そういえば、「世界まる見え」ってまだやってるのかな?

問題3の解答

こんな感じの図であればOKです:

数式で表示したければ、例えば、f(x)=\sin x +axを考えてa=0.21723くらいに調整すれば所望の関数が得られます。

しかし、aの満たすべき式を計算すると解析的に解けない方程式が出てきてしまうんですよね…。


そこで別解考えました。
f_0(x)=\frac{3}{2}\left(-\left|x-1\right|+1\right)とおいたときに
\begin{equation*}
f(x)=f_0(\operatorname{mod}(x,2))+\frac{x}{2}
\end{equation*}と定義すれば、こんな関数ができます:


簡単に解説すると、f_0(x)三角波1個分を表します。

これに周期2で繰り返しを表す「\operatorname{mod}(x,2)」を合成して三角波をこしらえました。
(代わりに\operatorname{mod}(x,2)=x-2\left\lfloor\frac{x}{2}\right\rfloorを利用しても構いません)


この三角波を傾かせれば完成です!



ちなみに、偶数個の解をもつような連続関数は存在しません。これは2個の場合の証明と同じようにできます。

*1:名前がくっそカッコイイ