わさっきhb

大学(教育研究)とか ,親馬鹿とか,和歌山とか,とか,とか.

サイン・コサインで思い浮かぶもの

ざっと読んでから,自分が三角関数に関連する知識をどのように学んできたか,振り返ってみました.
授業で学んできた中で,主要なものは:

  • 小学校:三角定規の角度(30°60°90°,45°45°90°)
  • 中学校:上記三角定規の辺の長さの比(1:2:√3,1:1:√2),正三角形の面積
  • 高校1年:三角比(θは度数法で,0°から180°まで).記憶に間違いがなければすぐに三角関数と弧度法も
  • 高校3年:三角関数の極限や微積
  • 大学1年:三角関数マクローリン展開
  • 大学2年:フーリエ級数

小中では,もちろん三角比も三角関数も,学習しませんでしたが,上に挙げた項目は,間違いなく,高校での学習の素地となっていました.
学校で習わなかった,三角関数関連の一つは,中学時代のポケコンのプログラミングです.sin,cos,tanは関数として使用可能でしたが,角度の与え方について,DEG(度数法),RAD(弧度法),GRAD(グラード)のいずれかを指定しておく必要がありました*1.DEGを設定してあったら,sin(30)は0.5と等しくなります.なお,DEG/RAD/GRADの各定義と相互変換についてはhttp://www.storange.jp/2013/11/degradgrad.htmlで整理されています.
次の活用の機会は,テキスト情報を扱う研究に携わるようになってからです.「コサイン類似度」は,計算こそ実数値の掛け算と足し算・割り算で行えますが,なぜコサインがつくのかというと,ベクトルの内積を背景としているからです.計算例と合わせて,TF-IDF Cos類似度推定法 - Qiitaで平易に書かれています.
あと一つ,ありました…Cプログラミングの演習科目で,cosカーブを描く課題を取り入れてきました.滑らかな曲線ではなく,「*」の文字を打ち出して,波を描きます.出力は以下のとおり,ただし画面の下向きがx軸,右向きがy軸です.

                                        *
                                        *
                                       *
                                     *
                                  *
                               *
                            *
                        *
                    *
                *
            *
         *
      *
   *
  *
 *
 *
 *
   *
     *
       *
           *
              *
                  *
                      *
                          *
                              *
                                 *
                                    *
                                      *
                                        *
                                        *

「y = cos(x);」を「y = sin(x) + cos(x);」に置き換えると,曲線はどう変わるか,またなぜそうなるか*2も,考えてもらいました.
ただし,自分の研究で,何かの実装にあたって三角関数を活用した記憶はありません.
趣味のプログラミングで,真っ先に思い浮かんだのは,次の絵です.一言でいうと「等速円運動」です.

ラウンドアバウト

ですが,ソースを見ると,SVGの「」を活用しているものの,三角関数は明示的に使用していません.
Gistで公開していた自分のコードで,「Math.sin」を探すと,一つ,見つかりました.hubcalc.rbです.真ん中に一つ,周辺に等距離・等間隔になるよう任意個の円を描いて結び,小学校のかけ算の練習問題をつくるというものです.画像入りの解説も作っていました.


高校での三角関数の学習について,『高等学校学習指導要領解説 数学編』のPDFファイル*3を読み直しました.主要な用語や概念の出現箇所は,以下のとおりです*4

なお,冒頭でリンクした記事(学校の三角関数は教え方が悪い - shi3zの長文日記)のうち,「角度θの単位ベクトルは(cosθ,sinθ)である」については,単位円を連想して,検索したところ,三角関数の3通りの定義とメリットデメリット | 高校数学の美しい物語の「単位円による定義」のことを言っているのかなと推測しました.
タイトルの「教え方が悪い」についても,厄介な問題をはらんでいます.小学校の算数教育の話ですが,これこれこんな問題がある,私学の英知を結集して教科書を作ろう,とプロジェクトが立ち上がり,最終的には教科書に至らずワークブックになった事例*5が,最も関係しそうです.教科教育の改善は,思うよりも難しいのです.
サイン・コサイン・タンジェントの件を,理系で学習することの象徴ととらえるなら,思い浮かべるべきは,C.P.スノーの「二つの文化」でしょうか.「君はシェイクスピアの作品を読んだことがありますか?」と「あなたは加速度とは何かを説明できますか?」*6です.それぞれの質問に対して,自分が答えると,前者はノー,後者はイエスです.
教育の観点では,ともにイエスと言えるための環境を,提供すべきだと思っています.その一方で,社会において,自分ではない者の無知やレベルの低さを提示し,読者・聴衆の共感を得るために,小中高で学んだはずの用語を持ち出してくるんだよなあという思いもあります.

(最終更新:2015-09-08 朝)

*1:プログラムコードや実行結果を表示するのと別に,画面の隅に,DEG・RAD・GRDのうち1つだけを表示する箇所が画面にあったと記憶しています.ただし,関数電卓と混同している可能性もあります.

*2:上下限が変わります.ですが,-1≦sin(x)≦1,-1≦cos(x)≦1だからといって,-2≦sin(x)+cos(x)≦2とするのは,幅を大きく取りすぎています.数学的には(三角関数の合成により)-√2≦sin(x)+cos(x)≦√2,打点に際しては-1.5<sin(x)+cos(x)<1.5とすれば十分です.

*3:http://www.mext.go.jp/component/a_menu/education/micro_detail/__icsFiles/afieldfile/2012/06/06/1282000_5.pdf

*4:ただし,学習指導要領とその解説は,いわゆるwhat(どの教科・科目で何を学ばせるか)が中心であり,how(各事項をどの順番で学ばせるか)は必ずしも書かれていません.なので「サインカーブを描いて、円と対応させて、「sinの位相をずらしたものがcosです」って感じで教えるわけですが」という教え方をする,教科書や教師の可能性を,否定はしませんが,個人的にはそんなのあるかなあとも思っています.

*5:http://d.hatena.ne.jp/takehikom/20130402/1364847038

*6:https://books.google.co.jp/books?id=Y7NFBAAAQBAJ&pg=PA48-IA4&lpg=PA48-IA4&dq=%E3%82%B9%E3%83%8E%E3%83%BC+%E3%82%B7%E3%82%A7%E3%82%A4%E3%82%AF%E3%82%B9%E3%83%94%E3%82%A2+%E5%8A%A0%E9%80%9F%E5%BA%A6&source=bl&ots=Xf2VTIxG6t&sig=HaOdGF9jydDsI3gCgzJLJaVzBYE&hl=ja&sa=X&ved=0CCYQ6AEwAWoVChMIva_I3ezQxwIVBCeUCh1ztgvK#v=onepage&q=%E3%82%B9%E3%83%8E%E3%83%BC%20%E3%82%B7%E3%82%A7%E3%82%A4%E3%82%AF%E3%82%B9%E3%83%94%E3%82%A2%20%E5%8A%A0%E9%80%9F%E5%BA%A6&f=false, http://d.hatena.ne.jp/takehikom/20091010/1255110643