
塾長です。
今回は高校生からよく出る質問、というか疑問
虚数
について考えてみます。
Contents [hide]
2次方程式と2次関数のおさらい
解の公式
まず中学3年生が1学期で習う「2次方程式の解の公式」を思い出してみましょう。
2次方程式
の解の公式
判別式
高校1年生になると、さらに「判別式」を習います。
1学期の後半または2学期の初めくらいです。
実数
について、2次方程式 の判別式をDとすると、
のとき、解は0個(解なし) のとき、解は1個(重解) のとき、解は2個
続いて、2次関数
2次方程式
つまり、
2次方程式
の判別式をDとする。
と 軸との共有点は、
のとき、0個 のとき、1個(接する) のとき、2個(交わる)
この様子を直感的なグラフで表すと、次のようになります。
複素数
高校2年生では、虚数単位
すると方程式の解を必ず求めることができるようになります。
2次方程式
の判別式をDとすると、
のとき、解は複素数で2個 のとき、解は実数で1個(重解) のとき、解は実数で2個 であり、どの場合でも解は、
と表すことができる。
特にのときは として、
である。
ざっと、ここまでが中3、高1、高2の二次方程式と二次関数のおさらいです。
複素数の世界では必ず共有点がある?
素朴な疑問
さて、ここで塾長は、ふと疑問に思いました・・・
せっかく複素数まで拡張して、判別式
の場合でも解が求まるようになったのに、対応するグラフの共有点が無いままって、寂しくない?
寂しいですよね!?
疑問です。というか、不満です。
なんとかして、このモヤモヤを解消する必要があります。
問題解決というヤツです。
仮説を立ててみる
そこで、
もしかしたら、グラフを複素数まで拡張すれば、共有点が2つに見えるのではないか?
という仮説を立ててみました。
本当にそうなるのでしょうか?
コンピューターの力を借りて、そのグラフを描くことにチャレンジすることにしました。
仮説を立てて確かめるってヤツです。
4次元のグラフは描けない!!
コンピューターは具体的な数値しか扱うことができません。
そこで今回は、つぎの関数を例に、グラフを描いてみることにします。
もちろん、これの判別式Dは負です。
そして方程式
という虚数解です。
今回の目的
今回の目的を次のように設定します。
xを複素数としたときに、
の共有点が2つあることをグラフで示す!
実数と複素数で何がどう変わる?
高校1年生までは、
実数
つまり、
数直線上の1つの実数
ということになります。
つまり「2本の数直線」があれば、話ができます。
よって、
が実数ならば、
のグラフは、x軸とy軸で構成される「平面(2次元空間)」の上に描くことができる
ということです。
直線は「1次元」ですから、2本の直線で表現できる空間は、せいぜい「2次元空間」となります。
さて、
ここで
そこで2つの実数
すると、式の計算結果
そこで2つの実数
すると、これは、
複素数
つまり、
実数平面上の座標
ということになります。
つまり「2つの平面」があれば、話ができます。
よって、
が複素数ならば、
のグラフは、平面a-bと平面c-dで構成される「4次元空間」の中で描くことができる
ということです。
平面は「2次元」ですから、2つの平面で表現できる空間は、せいぜい「4次元空間」となります。
拡張し過ぎた
上の考察から、コンピューターで「4次元のグラフ」を描けば、今回はミッションクリアできそうです。
・・・ん?
無理です!
私たちはどんなに精神を研ぎ澄ませても、3次元までしか空間の広がりを認識することができません。
ましてやグラフを描くことも見ることもできません。
これはコンピューターでも表示できません。
(計算だけならできます。表示が無理ということです)
グラフを3次元にまとめる!
ということで、何とかして3次元で済ませる方法を考えなければいけません。
グラフを3次元で描けるようにする
という「課題」が生まれてしまいました。
どうしたらよいでしょうか?
【豆知識】
問題解決の世界では、最終的に解決する「目的」のことを「問題」と呼びます。
そして、問題を解決する過程(途中)で乗り越えるべき「目標」のことを「課題」と呼びます。
そもそも何がしたかったのか?
道に迷ったら、目的の再確認です。
目的さえ達成すればよいのです。
もしかしたら「やらなくても良いこと」で悩んでいたりするかもしれません。
今回は、
あ、な~るほど!
次元を減らす
目的の式をじーっと眺めていたら、思いつきました。
だって0(ゼロ)の時だけ考えればよいのですから。そこで、
yの次元を2次元から1次元に減らす!
ことを考えましょう。
グラフ表示の方針
ということで、グラフに表示する方針をまとめましょう。
実数の世界のグラフは、横軸がx軸、縦軸がy軸です。
今回は
を複素平面 へ拡張(平面:2次元) も複素平面 へ拡張(平面:2次元)
としたかったのですが、無理でした。
これではグラフの座標が (a,b,c,d) の4次元になってしまい、描けないからです。
そこで次の方針としたのでした。
を複素平面 へ拡張(平面:2次元) は1次元に落とした値(直線:1次元)
つまり、
- 横軸だったx軸は、横に広がる複素平面に拡張
- 縦軸だったy軸は、実数の数直線のまま
これなら3次元の立体的なグラフで表すことができます。
あとは、縦軸のyをどのような値に決めるか、ですね!
案1:yの実数だけを縦軸にとる → 失敗!
そもそもグラフは実数しか描けません。
そのため、1つの複素数を2つの実数の組に対応させ、それを平面上に表すのでした。
であるならば、安直ではありますが、yの実部だけをグラフに採用すればよいかもしれません。
- 横軸:複素数
(平面:2次元) - 縦軸:
の実部 (直線:1次元)
それでは、この案でグラフを描いてみましょう。
こうなりました。
馬の鞍みたいな形のグラフになりました。
最後の考察で、このグラフも少し使いますから、とりあえず「馬の鞍型」のグラフとでも呼んでおきましょう。
ちなみに、赤い線が、実数の
さて、これで目的は果たせたでしょうか・・・?
うーん、何だかよく分かりません。
しかし「共有点が2つ」である様子が、これでは分かりません。
よく考えてみたら、これはダメです。
もしも4次元のグラフが描けるとすれば、本来のグラフは、
(a,b,c,d) の4次元でグラフを描き、それを平面
でカットした切り口が、求める3次元のグラフ
が本当のグラフです(※)。
4次元のグラフは描けませんが、本来はそんな感じです。
そう考えると、無条件に
(※)【豆知識】
4次元の立体を平面で切ると、その切り口が3次元の立体になります。
私たちの世界は3次元です。私たちの世界で立体は3次元です。
例えば、スイカを包丁で切った時の断面を想像してみてください。
スイカは3次元の球です。それを2次元の平面でスパッと切ると、切り口が2次元の円になります。
4次元の世界は、私たちの世界よりも1つ次元が上ですから、上の考察をすべて1つずつランクアップして考えます。
つまり、4次元の中で球体を切ると、切り口が3次元の球になります。
案2:yの絶対値を縦軸にとる → 成功!
そこで、数学的に条件を壊さないことを考えます。
すなわち、
を考えたグラフであれば目的を達成できるわけです。
ところで、
ですから縦軸を
- 横軸:複素数
(平面:2次元) - 縦軸:
すなわち (直線:1次元)
それでは、この案でグラフを描いてみましょう。
こうなりました。
うまくいきました!
グラフの2カ所が尖っていて、2つの虚数解
の所で平面
共有点は「2だけ」ですから、平面
グラフの解像度の問題で「点」まで鋭利に描き切れていません。
念のため、100倍に拡大してみましょう。
この倍率で
どうです?
共有点の1つ
このグラフを1000倍にしても、10000倍にしても、ずっとこんなグラフになります。
「1点に突き刺さ差っている!」
のですから、倍率をどこまで上げても、こんな感じです。
もちろん、
これで本当に
「たった2点」だけの共有点を持つ!
ことが、グラフで表示できたのではないかと思います。
思ったより大変でした。
教えてエライ人!
上のような考察をFacebookにアップしていたら、色々な人からご意見をいただきました。
なかでも吉田先生には色々と教えていただきました。
ということで、今回のエライ人は、吉田信夫先生です!
吉田先生はあの「大学への数学」で原稿を書かれていた先生の内の1人です。
超すごくないっすか!
先生のブログ「yoshidanobuo’s diaryー高校数学の“思考・判断・表現力”を磨こう!」はこちらです。
グラフで虚数解を見える化するにあたり、いろいろとご指導をいただきました。
また数学的におかしな用語の使い方についてもご指摘いただき、修正することができました。
用語の誤用
今回やってしまった用語の誤用を2つ紹介します。
どこが間違っているのか、考えてみてください。
- 誤用1:「
の判別式の値は負です。」 - 誤用2:「複素数
と実数 において、 のグラフ(a,b,y)は、平面 と2点で接しています。」
わかりますか?
私は吉田先生に指摘されるまで気づかなかったです。まさに
「それは違反です」
という感じで、御用とあいなりました。
大学入試の2次試験で記述回答を予定している人は、気を付けてくださいね。
さて、上のものは次の点で間違っていました。
- 誤用1:関数に対して判別式を語ったところがアウト。判別式は方程式「
」に対して定義されるもの。 - 誤用2:「接する」は「微分可能な領域」で定義されるもの。今回は尖っていて微分不可(微分する向きによって微分係数が異なる)。
さぁ、どうでしたか?
滑らかに「接する」グラフにする
さらに誤用2に関連して、グラフが2つの
みなさん、分かります?
- 横軸:複素数
(平面:2次元) - 縦軸:
すなわち (直線:1次元)
それでは、この案でグラフを描いてみましょう。
こうなりました。
yの値が2乗されているので、グラフが大きくなりすぎて「2点」どころではなくなってしまいました。
そこで例によって、
おお、本当に滑らかに接してそうですね!
例によって「1点」で接しているので、このグラフを1000倍にしても、10000倍にしても、ずっとこんなグラフになります。
次元を減らすもう1つの方法
さらにさらに、吉田先生からもう1つのグラフ表示の方法を教えていただきました。
を (a,b) だけで描く!
です。
つまり、(a,b)に色々な実数を当てはめて
もう少し正確に言うと、
1つの複素平面だけで示すやり方です。
やってみましょう。まず、
について、
です。
すなわち、
です。
これらの交点が求める解になります。
あらためて、実部の
これは吉田先生からいただいたグラフです(軸が
確かに複素平面の世界では、2点の共有点がありました。
そしてグラフの交点はそれぞれ、
これは感動です!
考察とまとめ
もしも
のグラフを4次元
すると、上の吉田先生からいただいた平面グラフは、その4次元グラフを
やってみました。それが下のグラフです。
緑の実線が、実数の世界での2次関数のグラフです。
赤の実線と青の実線は、それぞれ上の平面グラフに対応しています。
このグラフをもとに、これまでの話を全て振り返ってみます。
まず青い曲面が、最初に描いた「馬の鞍型」のグラフです。
これは4次元グラフを平面
そして、この青い曲面をさらにy=0で切ると、青い実線の双曲線になります。
次に、4次元グラフを平面
それが、上のグラフの赤い曲面です。
そして、その赤い曲面をさらにy=0で切ると、赤い実線の2直線になります。
そして青い双曲線と赤い直線の交点が、まさに
これらの様子を総合すると、2次方程式の虚数解
- 3次元空間 (a, b, c) の曲面(縦軸をyの実部としたグラフ)
- 3次元空間 (a, b, d) の曲面(縦軸をyの虚部としたグラフ)
- y=0の水平な平面
の3つを重ねた時にできる共有点
であることがグラフで確認できました。
グラフ表示に使ったPythonプログラム
今回、グラフを描くのにプログラミング言語の「パイソン(Python)」を使いました。
以下が、そのプログラムです。
Jupyterという環境を使いました。
ちなみに、パイソンのプログラミングを学ぶなら、無料で使える Google Colaboratory がオススメです。
もちろん下のプログラムも Google Colaboratory で動作します(動作確認済)。
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
%matplotlib inline
fig = plt.figure(figsize = (8, 8))# Axes3D
ax = Axes3D(fig)# タイトルを設定
ax.set_title(“”, size = 20)
#ax.set_title(“”, size = 20) # 軸ラベルを設定
ax.set_xlabel(“x-Real”, size = 14)
ax.set_ylabel(“x-Image”, size = 14)
ax.set_zlabel(“y”, size = 14)# 表示角度の設定
ax.view_init(elev=10, azim=35)# 座標のメッシュ
rr = np.linspace(-1.5, 3.5, 200)
ii = np.linspace(-1.5, 3.5, 200)
#rr = np.linspace(0.9, 1.1, 200)
#ii = np.linspace(0.9, 1.1, 200)
i0 = np.zeros(200)
r,i = np.meshgrid(rr, ii)
z = r + i*1j# 曲線・曲面を描画
y0 = r*r-2*r+2
ax.plot_wireframe(rr, i0, y0, color = “red”)
y = np.abs( z*z-2*z+2 )
#y = ( np.abs( z*z-2*z+2 ) )**2 *100
ax.plot_surface(r, i, y, color = “yellow”, alpha=0.4)
plt.show()
あとがき
どの学年も文字式と関数の季節になりました。
今年から中学生は教科書改訂で「主体的な学び」が重視され、プログラミング教育も強化されました。
来年からは高校生でもそうなります。
そういう流れの中で、今回は、
高校生のレベルで数学を題材に「主体的な学び」を「プログラミング」も活用して行ったらどうなるか?
を実践してみました。
さらに今後の常識というか、新しい価値観である
「集合知」で「問題解決を加速する」という姿勢
も取り入れてみました。
ですから、問題解決の用語や流れも、それとなく意識してあります。
これが次世代型の教育であり、同時に、いま日本で遅れてしまっている教育でもあります。
今のところ私はそのように思っております。
教育者も間違えます。
先生が何でも知っていて間違いを起こさない聖人君子である、なんていう時代は終わっています。
そもそも非科学的で不合理です。
もう、1人の聖人君子や、優れたリーダー、1部の天才に問題の解決を任せるよな時代では、ありません。
というか、そんな人はいません。
幻想です。
今や、世界中の人たちがコンピューターでつながっているのです。
みんなが意見や知恵を出し合う「集合知」で、いち早く問題を解決していこう!
そのように考える方が大切です。
このような価値観でコンピューターを活用しながら問題解決を実践できる人。
それが、これから日本で、いや世界で多く必要とされる人たちなのだと思います。
現場からは以上です。
生徒・保護者様のお友達登録はこちら
LINE登録するとプレゼントがもらえます!
【会員限定】お子様の成績と可能性を伸ばす18個のノウハウ
塾関係者様のお友達登録はこちら
LINE登録するとプレゼントがもらえます!
「zoomで簡単。オンライン授業移行の教科書」
または個別対談も可
名古屋市天白区の植田で塾を探すなら個別指導のヒーローズ!!
★ 直接のお問い合わせ ★
――――――――――――――――――――――
個別指導ヒーローズ 植田一本松校
〒468-0009
名古屋市天白区元植田1-202 金光ビル2F
TEL:052-893-9759
教室の様子(360度カメラ) http://urx.blue/HCgL