Spreadsheet Mathematics I



Spreadsheet Mathematics I


 [研究ノート]

             表計算ソフトの数学教育への応用 I

               Spreadsheet Mathematics I


                 白 石  清
              (1994年9月10日受理)


 §1 序 論

 最近のいわゆる情報教育において,実際に取り扱うものとして重要視されているものに@ワープロ,A
表計算,B小規模なデータベース,Cプログラム言語とその周辺,D通信とメール,等がある。
 実際にカリキュラムを考える際には,Dについては設備との関連において講義形態や指導内容が大きく
左右される。また,Cについては学生が実際に仕事についた場合に(研究職であっても)必要となるかど
うか,またその言語の選択などについてさまざまな検討,議論が必然的に生じてくることが考えられる。
Bについても規模の設定についてさまざまな意見が出されるであろう。
 一方,ワープロと表計算ソフトは,種類による操作性の違いも少なく,また,たとえば短大や高校卒業
後の就職においても,すぐに実務に生かすことができるので,必修的な講義を組むことが望ましいと思わ
れる。また,ワープロについては言うまでもなく,表計算についても検定制度ができる気運が高まってい
るので,これらのソフトの操作ならびに技術の獲得は,(この不況のなかで,)学生の就職のさいのプラ
スポイントとなりうることも見逃せない。このような“功利的”な動機もあって,近いうちに高等教育(
将来的にはおそらく初等教育から)を受けるものはほとんどワープロと表計算ソフトを習得しなければな
らないようになるであろう。
 さてこれらのソフトの操作を演習によって指導するにあたって最も重要なことは適切な例題としての素
材選びであろう。ワープロについては,もちろん選択の余地はあるであろうが,ほとんど反射的なタイピ
ングの訓練が主であるので,あまり題材が議論されることはない。
 表計算ソフトの場合,著者の知っている限りでは,たいていは金銭出納表の様なものや統計分布を調べ
るようなものに終始してしまう。実際には,学生が飽きてしまうようなテキストもありうる。
 私は,表計算ソフトの特性をよく理解することが,表計算ソフトの操作技術の向上に役立つのではない
かと思う。私の考える表計算ソフトの特性は1)縦横にそれぞれ関連した操作ができる,2)複写により
再帰的な表現が一括した操作でできる,3)グラフによるデータなどの可視化が簡単にできる,4)マク
ロによるプログラミングができる,5)データベースとしての使用,などである。(もちろん異論もあろ
う。)
 この報告では,表計算の特性を利用した題材を,簡単な数学の問題の中に求めてみる。それと同時に,
表題にあるように,数学の教育の場への表計算ソフトの導入ということを目論んでいる。いいかえると,
応用問題の活用と,経験学習による効果の一石二鳥を考えているわけである。ここでは特に1)2)の特
性を生かした例題を考えてみる。そうする理由は,一)数学的な操作,あるいは恒等式を一括した表計算
ソフトの操作と対応づけられるから,二)3)や4)や5)を主題とした応用例はすでに数々の著者によ
ってすでに扱われているから,である。
 このような題材は,特に文系の短大などでは“異端”と思われるかもしれないが,思考の筋道を追って
行けばむずかしいと思われないし,むしろ一本筋のとおった考え方の練習になると思う。もちろん,正規
のたとえば「文書管理演習」などでこのような例を示すのは適当ではないかもしれない。幸い私どもの短
大では,ゼミナール制度があるので,私のゼミで(多少無理があることを認めるが)試してみている。
 二節以降で示す例題は,もしかしたらすでにどなたかが報告済みのものかもしれない。しかし,表計算
あるいは数学の指導の新たなヒントとなればなによりである。
 各節では主題についての具体的なワークシート上の表現が与えられる。その先の発展については,主に
“演習問題”の形にとどめた。
 なお,ワークシート上の記法は文献[1]にしたがった。
 また,表計算ソフトの教育的(?)実例は[1-3]を見よ。ここで扱わなかったことを含め,一般的な
数学,特に整数論に関しては,[4-10]を見よ。


 §2 例1:Fibonacci数列

 ワークシートは数列を大きな視野で眺めるのに適しているので,まず簡単な数列を考えてみる。
 Fibonacci数列は,次の漸化式と初期値で与えられる:
   an=an-1+an-2,     (n>=3)
         a1=1,   a2=1 .
 このように,漸化式で与えられた数列を計算するのに表計算ソフトは便利である。初期値をワークシー
トに記入し,漸化式を一度だけ記入する。そして,式の部分を複写機能をつかって任意の項までの数列を
得ることができる。
 具体的には:
             A1: +1
             A2: +1
             A3: +A2+A1
             A3: /Copy A3 to A4..A20
 これでA列に第20項までのFibonacci数列が示される。もちろん複写範囲を延ばせば,より高い項まで
計算される。(もちろん,一般の漸化式でも同様に分析することができる。)
 このようにしてつくったFibonacci数列の性質を調べるのにも,表計算ソフトの機能は便利である。
 Fibonacci数列については文献[4,5,7,9,10,12]を参照。
 一般に数列に関しては,定数倍や2つの数列の各項どうしの足し算が複写を用いて簡単にでき,またそ
の操作が実感を伴うので,教育的効果が大きいと考えられる。
 次にいくつかの演習問題の例を示す。

 演習問題
 (1)Fibonacci数列の次の性質を確かめよ。
      a)  an+1an-1-an2=(-1)n
      b)  a1+a2+...+an=an+2-1
    (@SUMを使うと簡単だが,私は使わない方法を学生に教えられた。考えてみよ。)
      c)  a12+a22+...+an2=anan+1
 (2)Fibonacci数列でan/an-1はどんな値に近づくか。また,それをφと書くときに,an-φan-1
    はどんな数列か。この方法で一般項の公式を求めよ。この方法を一般の数列に使えるか。
 (3)Fibonacciの漸化式で,初期値をa1=1,a2=3としたときの数列では同様の性質が成り立つか?
 (4)次のような(二項間)漸化式が与えられたときの数列を調べよ。
    an=2 an-1+1,(n>=2) ただしa1=1



 §3 例2:Pascalの三角形

 これは作り方さえ教われば,だれでもすぐにワークシート上に作れるだろう。(参考文献には,[4,5,7]
のほか,[11]がある。)
 念のため,具体的には:
             F1: +1
             F1: /Copy F1 to F2..F20
             G1: +1
             H2: +1
             G2: +F1+G1
             G2: /Copy G2 to G3..Z20
 こうすれば右端の1も生成される。この例では20段までだが,いうまでもなく拡張可能である。
 この形でなくともよいが,あとで性質を調べるには都合がよい。(もっともシンプルには,たとえばG2
に+F2+G1などを使う。)

 演習問題
 (1)行ごとに和をとってみよう。
    (たとえば,A1: @SUM(F1..Z1)とし,複写する。)
 (2)二項係数を階乗をつかった式で表し,表中の数と比べてみよう。
    階乗もワークシートをつかって計算しよう。うまく表を作れるか?
 (3)Fibonacci数列が隠れている。ある方向に和をとってみると,現れる。
    (E20: F20+G19+H18+...+O11+P10など。)
 (4)G列,H列,I列などはどんな数列になっているか。(ヒント:三角数など。)


 §4 例3:n進数への変換

 簡単なので,いきなり,問題を与える。

 演習問題
 (1)十進数をn進数に変換するシートを
    @INT
     と
    @MOD
    を使って,作ってみよう。
 (2)逆に,n進数から十進数に変換してみよう。
    簡単だから,効率の良い方法を追求してみよう。


 §5 例4:級数(和)

 これは最も簡単な例だけれども,発展させると結構複雑なことも可能なので,ここで紹介する。ただし
,ここでは簡単な例のみをあげるので,読者は各自発展問題を考えてほしい。
 具体例:(有限和) 
             A1: +1
             A2: +A1+1
             A2: /Copy A2 to A3..A20
             B1: @SUM(A$2..A1)
             B1: /Copy B2 to B3..B20
 何を行っているかは,すぐにわかるであろう。絶対番地の使い方が表計算ソフトの初学者にはポイント
となろう。

 演習問題
 (1)(有限和)同様に,自然数の2乗,3乗の和を作れ。3乗和と1乗和の間の関係は?
 (2)1/[k(k+1}]の級数和はどう表されるか。
 (3)(無限和)1/n4の和をずっと計算していくとどうなるか。
    π4/90とくらべてみる。


 §6 例5:連分数

1.無理数を連分数で表す。
  ここには例を書かないので,各自考えてください。特に文献[8]に詳しい。さらに文献[4,6,9,10,13]
 を参照のこと。(ほかの文献も参考になる。)
 有理数による無理数の近似は興味が持たれるかもしれない。
2.連分数の値を求める。
  具体例:(黄金比φの近似値)
             A2: +1
             A2: /Copy A2 to A3..A20
             B2: +1
             B2: /Copy B2 to B3..B20
             C20: +1
             C1: +A2+B2/C2
             C1: /Copy C1 to C2..C19
  途中でエラーの出るのを気にしなければ,記入の順番はそんなに気にしなくてもよい。
  なおC20(種となる数)はいろいろと変えて試してみてほしい。もちろん長さも変えてみてほしい。
 どのくらいのはやさで近づくだろう。

 演習問題
 いろいろな無理数を分数で近似してみる。連分数表示を有限のところで切ってみればよい。覚えやすい
分母分子のを探そう。例えば円周率など。(残念ながら,この目的においては,やはりMathematica等
の数式処理ソフトを使うのがベストであろう。)


 §7 例6:再帰的関数のグラフ

 関数を繰り返し適用したものを考える。
 例えばまずA列に変数xを0.1刻みに記入する。もちろん
             A1: +0
             A2: +A1+0.1
             A2: /Copy A2 to A3..A20
などとする。
 次に列が先に行くに従って,関数の繰り返しが増えるようにする。
 例:
      f(x)=1+x/(1+x/(1+x/(...

             B1: +1+A1
             B1: /Copy B1 to B2..B20
             C1: +1+$A1/B1
             C1: /Copy C1 to C1..F20
 ここでも,初学者には,絶対番地の使い方がポイントとなる。
 グラフの機能を使って,いくつかの列のグラフを同時に表示させる。だんだんとグラフの線は1つに収
束していくのがわかるであろう。

 演習問題
 次の関数のグラフをかけ。
 (1)
     g(x)=√(x+√(x+√(x+...
     g(1)の値は?
 (2)
   h(x)=x^(x^(x^...
   ただしe-e<x<e1/e。
   この関数はオイラーが最初に考えた。h(2)の値は?


 §8 例7:eの話

 まず
             A1: +0
             A2: +A1+0.1
             A2: /Copy A2 to A3..A20
 などとする。
 次に
             B1: +1
             C1: +B1+1
             C1: /Copy C1 to D1..F1
             B2: +(+1+$A2/B$1)^B$1
             B2: /Copy B2 to B2..F20
 まず試してみたら次に1行目の数を大きくしてみる。
 ここでも,初学者には,絶対番地の使い方がポイントとなる。
 まず試してみたら次に1行目の数を大きくしてみる。
 グラフの機能を使って,いくつかの例のグラフを同時に表示させる。だんだんとグラフの線は一つに収
束していくのがわかるであろう。
 @EXP($A1)を適当な列に複写して,そのグラフと比べてみよう。

 演習問題
 (1)exp(x)を級数の形で近似する。項を増やしていったとき,グラフの近づき方をみよ。ここで
   用いる階乗も帰納的に考えて扱うこと。
 (2)e(つまりexp(1))を連分数で近似せよ。次のような正規型でない美しい式が知られている。

   e=2+1/(1+1/(2+2/(3+3/(4+4/...

   これをワークシート上に表せ。



 §9 まとめと展望

 本論文中の題材においては,数学の恒等式や定理を発見法的に導出するあるいは“実験”してみること
をほんの少し試みた。また,漸化式等の再帰的方法は表計算ソフトで扱うと,(いくつかの本にかかれて
いる)Basic プログラムなどで機械的にやってしまうよりも,操作として実感が残る。
 ここの例題に端を発して,学生のかたがた(ならびに教員のかたがた!)が数学の問題や,また表計算
ソフトをはじめとして(パソコン)ソフトの取り扱いに興味をもっていただければ,幸いである。
 私のゼミでここの例題の一部を与えてみた。正直言って,現実は厳しい。(私の教え方に大きな原因が
あるが,)せいぜい1,2名の学生をのぞいて,ちんぷんかんぷんのようであった。文系の学生にとって
は,(文献[4]のように,)もっと現実の問題からの導入が必要かもしれない。(ここではあつかわなか
った,xyプロットを用いたリサージュ図形の生成は比較的喜んではくれる。)
 この論文の続きとして,線形代数を扱った応用問題を考えている。線形代数は自然科学だけでなく,経
済学の基本でもあるから,いろいろな役にたつと思われる。少し(かなり?)上級向け例題として,微分
方程式をフロベニウスの方法で解くことや直交多項式の構成も試みたい。この場合は,グラフ化機能もた
いへん役に立つ。
 また,マクロをつかった数理科学的例題は,このシリーズとは別のところで扱ってみたい。そこではた
とえば,Ising model やLife Game, AIなどをワークシート上でモデル化してみたいと思う。この場合,
題材としても,ソフトの扱いにしても,上級レベルとなると思われるが,学生に提示するときには,
“こんなこともできる”例として,学習意欲の向上につながるかもしれない。

 謝 辞
 いつも訳のわからないことをやっている著者を暖かく見守ってくださる秋田短期大学のスタッフならび
に職員の方々に感謝しています。




 文 献
 [1] C.Misner & P.Cooney, "Spreadsheet Physics", Addison-Wesley
 [2] 臼田,井上,伊藤[Lotus1-2-3による理工系シュミレーション入門]CQ出版社
 [3] WJ.オーヴィス「科学技術計算のためのロータス1-2-3」入門編,応用編,啓学出版
 [4] 「話題源数学」とうほう
 [5] D.ウェルズ「数の事典」東京図書
 [6] 木村良夫「パソコンで遊ぶ数学」講談社ブルーバックス
 [7] L.ラーダ D.ネルソン(山下倫範監訳)「パソコンで解く数学パズル」海文堂
 [8] 正田良「アシストカルク活用法」啓学出版
 [9] グラハム,クヌース,パタシュニク「コンピュータの数学」共立出版
 [10]芹沢正三「Cによる初等整数論」森北出版
 [11]槇誠司「意外性あふれる数学問題ー神話的なパスカルの三角形ー」
    BASIC  数学1994年6月号,p. 70
 [12]茂木勇「フィボナッチ数列の話題」BASIC 数学1994年7月号,p. 4
 [13]竹内脩「連分数」BASIC 数学1994年9月号,p. 18








戻るback