はじめに
常々、生徒たちは今習っている数学の内容が生活の糧にならぬことに不満を抱いているようである。それは、日本において高校で学ぶことの多くが大学入試というものに関わっていることを十分承知している本校生にとっても同じであるようである。よく考えてみると、同じ高校で同じ校風(と言っても今と昔では若干変わっているが)のもとで学んで来た私も同じであったのだから当然と言えば当然なのかもしれない。私の場合、生活に役立たぬ(?)数学科ではなく、化学科に進学しようと考えて科学研究部で化学の内容での研究に没頭していた一時期もあった程である。……話しが脇道にそれた。
教育課程の変遷に伴って、今年度、初めて複素数平面を教えなければならないこととなった。対象生徒の層が過去の3校とは全然違う中で、初めてふれる(自分自身も高校では教わっていないため)教材のため、四苦八苦しながらの授業展開であった。
本稿は、その中で感じた事項をまとめた『実践感想記録(つぶやき集)』である。特に数学的な新たなものなどはないが、同じ教材を扱った先生方には共感していただける内容だろうとは思っている。今回は、やや趣向を変えて、演劇の台本風なレポートとして作ってみた。
第1場 生徒が来たりて
私は普段の授業では生徒をどんどん指名しながら進めている。生徒の表情を見ていると『わかっている』か『わかっていない』かすぐわかる。数学Bの複素数平面の内容では、こちらも要領がわからず教えていたせいもあろうが、生徒の理解は大変芳しくなかった。特に、ド・モアブルの定理以降、極形式のやや便利なことを理解できた生徒だが、自分たちで教科書に載っていない数字でやろうとし始めると途端に立ち往生となる。そんな生徒の一人がパソコン教室にやって来たところからこのレポートは始まる。
生徒 | 『先生、ちょっといいですか?』 |
私 | 『何か質問でも?』 |
生徒 | 『はい。』 |
私 | 『ああ、でもちょっと待って。今、スキャナを使っているので…』 |
やや、間。 | |
私 | 『………。何かな質問は?』 |
生徒 | 『実は、最近習った極形式とn乗のことなのですが……、』 |
私 | 『そのどこがわからないの?』 |
生徒 | 『実は、いつも先生が『数学を生活の場で使って〜』とおっしゃるので、 |
普通の複素数のn乗を極形式でやろうとしたのですが、なかなか | |
極形式が求まらないのです。特に偏角が求まらないのです。 | |
家にパソコンがあるので、BASIC言語でプログラムを | |
組んでみたのですが、ダメでした。それで教えていただきたくて…』 | |
私 | 『(いやな予感を感じながら)はあ、それでプログラムを見せて…』 |
前任校でも本校でも、BASIC言語という旧時代の言語を使って何かやろうと生徒はするが、教える私の方は、もうBASIC言語は使っていないので質問される度に復習となる。今回もこの生徒と一緒にBASIC言語の復習をすることとなった。この生徒がもってきたのは、次のリスト1のような最も基本的なプログラムであった。
10 | INPUT A:REM 実部 |
20 | INPUT B:REM 虚部 |
30 | C=A/SQR(A*A+B*B) |
40 | D=B/SQR(A*A+B*B) |
50 | FOR I=0 TO 360 STEP .01 |
60 | E=I/180*3.14159 |
70 | IF C=COS(E) AND D=SIN(E) THEN 100 |
80 | NEXT I |
100 | PRINT "KOTAE = ";I:REM 偏角 |
110 | END |
このプログラムは間違ってはいない。ところが、これは、実行しても答えが求まらない。精度を上げたり、多倍長計算用のUBASICを使って求めても同じで、答えが見つからないのである。プログラム作りをやったことのある方には容易にその理由がわかるだろう。もっとも大きな理由は行番号60の文で角度をラジアンに直す際の式の部分に誤差が含まれているためなのである。
第2場 生活の場で役立たぬ(?)数学〜極形式をめぐって
その日、質問に来た生徒はこれまでも何回かプログラミング関係のことで質問に来たことのある生徒で、自宅にはパソコンがあるが、まだBASIC言語を若干使える程度の生徒であった。前任校のように、いきなり『C言語を教えて下さい』と言われない分そういう意味では楽な現在である。さて、その生徒はせっかく自宅にパソコンがあるのだから(1+5i)の100乗のように代数計算では面倒な複素数のn乗の計算を最近習った極形式とド・モアブルの定理を使って計算しようとしただけなのである。ところが、前述のように『正しいが求まらないプログラム』となってしまったのである。彼に限らず、多くの生徒がこのように数学を『数学の世界』(特に教科書に載っているような数字の取り合わせだけの世界)ではなく、現実の、言うならば使える数学にしていこうとするとき、ままならない現実に出くわし、数学がいやになるのではなかろうか。プログラミングの手法や理論をある程度身につけていなければ、このような問題をクリアーすることはなかなか難しい。
生徒 | 『先生、どこが正しくないのですか。』 |
私 | 『誤りはない。でも、これでは偏角が求まらない。』 |
生徒 | 『………』 |
私 | 『丸めの誤差というのを知っているだろうか』 |
生徒 | 『?』 |
私 | 『90°がπ/2ということは知っているよね。では、その値がどうなっているか |
わかっているだろうか?』 | |
生徒 | 『3.14159の半分だから、1.570795?』 |
私 | 『そう、通常はπは3.14159ぐらいとやっているからそうなる。ところがこれは |
近似値であり、真値ではない。こうした所に誤差を生じる原因があるのだ。』 | |
生徒 | 『……』 |
私 | 『加えて、相手はパソコンという機械。ちょっとでも違っていたら |
『同じではない』と判断 する。だから、便利なようで便利ではないのだ。』 | |
生徒 | 『先生の言ったことはわかりますが、では授業で習った極形式は |
教科書のような例題でしか使えないのですか。実際の場では | |
使えないのですか。それではいつもの先生の言い分が | |
通らないのでは…』 | |
私 | 『(むむ、痛い所をついたな。)』 |
授業開始のチャイムが鳴る。 | |
私 | 『授業が始まるぞ。後は次回に。』 |
生徒はシブシブ帰っていく。生徒の後ろ姿を見ながら、 | |
私 | 『(さあて、どうしようかな? 苦肉の策を探すとするか。)』 |
第3場 苦肉の策は見つかるが、概数しか求まらないプログラム
IBMの関数ラボやいろいろなアプリケーションソフトを使ってみたが、どうにもうまくいかない。生徒がせっかく問題意識を持ったことなのだから、少しはいい答えを見つけだしてあげるように努力したい。そういう思いから、三角比の逆関数がTANだけでは定義されているのを利用して解けないか考えてみた。
10 | DEFDBL A-D |
20 | INPUT A:REM 実部 |
30 | INPUT B:REM 虚部 |
40 | C=ATN(B/A) |
50 | D=C*180/3.14159 |
60 | IF A>0 AND B>0 THEN GOTO 120 |
70 | IF A>0 AND B<0 THEN GOTO 100 |
80 | IF A<0 AND B>0 THEN GOTO 100 |
90 | IF A<0 AND B<0 THEN GOTO 110 |
100 | D=D+180:GOTO 120 |
110 | D=D+360:GOTO 120 |
120 | PRINT A,B,D |
130 | END |
このプログラムを使えば、複素数の実部と虚部の数値を入力することによって、偏角の概数だけはつかめる。しかし、誤差を含んだこの偏角を用いて、n乗の計算をすると恐らく正しい値は出ないと思われる。今回、この生徒は私が見せたこのプログラムが限界だと悟って、このことについてはそれ以上追求してこなかったのが幸いだったが、複素数平面を教えていて『どこが便利なんだろう』と考え込むことが多かった。
第4場 複素数のn乗の代数的計算
ところで、普通の計算方法で複素数のn乗を計算するときの最も基本的なプログラムはどうなるのだろうか。これは、下のようなものであろう。
【N88BASIC】 | 【 UBASIC】 | |||
10 | INPUT A:REM 実部 | 5 | POINT 20 | |
20 | INPUT B:REM 虚部 | 10 | INPUT A | |
30 | INPUT N:REM n乗 | 20 | INPUT B | |
40 | C=A | 30 | INPUT N | |
50 | D=B | 40 | C=A | |
60 | I=2 | 50 | D=B | |
70 | E=A*C-B*D | 60 | I=2 | |
80 | F=A*D+B*C | 70 | E=A*C-B*D | |
90 | IF I=N THEN 130 | 80 | F=A*D+B*C | |
100 | A=E:B=F | 90 | IF I=N THEN 130 | |
110 | I=I+1 | 100 | A=E:B=F | |
120 | GOTO 70 | 110 | I=I+1 | |
130 | PRINT E | 120 | GOTO 70 | |
140 | PRINT F | 130 | PRINT E | |
150 | END | 140 | PRINT F | |
150 | END |
このようにパソコンを使うと複素数のn乗も容易に計算できるため、なお一層、極形式の有用性がわからなくなってくる。極形式は、どこで役立つのだろうか。さらに、別の内容で考えてみた。
第5場 n乗根をめぐって
授業中、生徒が質問をする | |
生徒A | 『1の5乗根をさっきのように作図する場合は、1つが72°になるようにすれば |
いいでしょ。では、割り切れないときはどうするんですか。』 | |
生徒B | 『それと、いつも使っている0°,30°,45°,60°,90°に関係する角度の |
場合はいいですが、72°などがベースになる場合は値がかえって面倒で…』 | |
私 | 『確かに。』 |
生徒達 | 『?』 |
生徒たちは、私が何らかの弁解めいたものをするのだろうと期待していたらしい。しかし、あっさり同調したものだからあっけにとられてしまったようである。
確かに計算しやすい値で与えられた場合は、極形式を使うとn乗根は比較的短時間で値が求まる。しかし、一般化して考えていくと、前述同様、偏角が正確に出ないために計算ができないものが多くなってしまう。このギャップを我々は生徒にどう伝えたらいいのだろう。指導しながら悩む日々である。
おわりに
数学実践研究会での活動を本格的に始めて1年が過ぎた。本研究会も発表者が固定化したり、新たな参加者があまり増えないなど、いくつかの課題はあろうが、地方都市に住んでいる私にとっては数少ない研修の場となっており、大変貴重な時間を過ごさせていただいている。参加するからには、手ぶらではなくその時々のつぶやきをまとめた物(レポート)を持参してと、いつも自分に言い聞かせている。ただ、他の先生方の立派な研究論文と私のようなつぶやきに対して同じ発表の場を与えられてしまうことは最近やや重荷になって来ている。さりとて、手ぶらで行くのは自分の生き方に反するような気がして……。可能であれば、『読むだけのレポート』と『発表するレポート』と分けていただけないものであろうか(もちろん、私の書く物はすべて『読むだけ』に属する)。前回のように、せっかく数学の良い内容のレポートが出て来ていたにもかかわらず、時間不足で今回に持ち越してしまうと駄作しか書けない私は『私がレポートを持参しなければ…』という気持ちになってしまう。
さて、本稿は『数学B』の複素数平面における極形式に関わって生徒と考えた冬の1日をもとにまとめたものである(実際には1週間以上のやり取りがあったのだが、)。本校に赴任して1年近くなり在校生の様子もわかり、一方、生徒の方も私の方針を理解したようなので、今後は生徒とのこのようなやり取りを大切にしていきたいと考えております。そして、本校でも『数学コンテスト』を実施できるように環境整備を図りたいと思います。