SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

データサイエンス基礎を高校数学から復習

三角関数で傾向(周期)をイメージとして捉えてみよう

データサイエンス基礎を高校数学から復習しよう 第4回

 データサイエンスという分野は、データ収集や可視化などが身近になったことで、より重要になってきています。システムを使ってデータ分析する際、利用者は最終的な結果のみを求めますが、私たちエンジニアはその途中経過についても正しく評価する必要があります。そのためには、中学や高校で学んだ数学の知識が欠かせません。そこで本連載は、高校までに学ぶ基本的な数学知識を使って、データ分析やデータ表現の基礎的な考え方を紹介します。また、既に学んだ数学的基礎からデータの特徴を見つけるためにデータ表現する方法について紹介したいと思います。

はじめに

 前回は、三角関数の本質である「円運動」について深掘りしました。円周上を一定の速度で回る動きは、その「高さ」や「横の位置」の変化だけに注目すると、美しい「波(周期)」として描き出されます。

 本稿では、この「周期」という概念を一歩先へと進めます。単に波形を描くだけでなく、複雑に絡み合ったデータの中から「周期性」を抽出する方法を解説します。三角関数を使って、データの裏側に隠された「傾向」や「真の原因」を特定する、実践的な応用方法について紹介します。

周期とは

 「周期」とは、簡単に言えば「一回転して元の状態に戻るまでの時間」のことです。

 私たちの身の回りは、この周期性で溢れています。ビジネスにおけるトレンドも例外ではありません。一見すると不規則なノイズに見える「売上の変動」「サイトへのアクセス数」「消費者の心理変化」も、実はその根底に「季節」や「昼夜」といった一定のリズムが深く関わっています。

 究極を言えば、私たちの社会活動は、地球の自転・公転などの「物理的な回転周期」に同期していることが多いのです。三角関数を学ぶことは、こうした社会の鼓動を正しく捉える武器を手に入れることでもあります。

太陽と月の影響から海水の高さを予測する(1)

 満潮や干潮という現象は、主に月と太陽の引力によって引き起こされます。実際の海面変動には地形や気象も関係しますが、まずは本質を理解するために、この2つの天体要素のみに絞って考えてみましょう。

 このシンプルなモデルを通して、「いつ、どのようなリズムで海面が上下するのか」のメカニズムを、三角関数の視点から解き明かしていきます。

太陽と月の三角関数

 地球は1日に1回自転しています。太陽に対して「最も近い地点(正午ごろ)」と「最も遠い地点(真夜中ごろ)」を通過する際、海水は引力や遠心力の影響で盛り上がり、1日に2回の満潮を迎えます。

 これを数式で表すと、「12時間を1周期とするsin関数」になります。本来は海域ごとの初期位置(位相)や高さ(振幅)の違いがありますが、本質を掴むためにこれらは一旦脇に置いておきます。

図1:太陽の影響による周期関数(12時間周期)
図1:太陽の影響による周期関数(12時間周期)

 月の影響も仕組みは同じですが、太陽とは決定的な違いが2つあります。

周期のズレ(12.4時間)

 地球が自転している間、月も地球の周りを公転しています。この「追いかけっこ」の状態があるため、地球上の同じ地点が再び月と正対するまでには、約24時間50分かかります。つまり、満潮1回分の周期は「12.4時間」となるのです。

影響力の大きさ(振幅)

 月は太陽よりも圧倒的に地球に近いため、海面を引っ張る力(振幅)は太陽の約2.2倍にも達します。

 結果、以下の周期関数で表現できます。

図2:月の影響による周期関数(12.4時間周期・振幅2.2倍)
図2:月の影響による周期関数(12.4時間周期・振幅2.2倍)

 太陽が刻む正確な12時間のリズムと、月が刻む12.4時間のリズム。このわずか「0.4時間」のズレが、私たちの知る「潮の満ち引き」に劇的な変化をもたらすことになります。

次のページ
太陽と月の影響から海水の高さを予測する(2)

この記事は参考になりましたか?

データサイエンス基礎を高校数学から復習連載記事一覧

もっと読む

この記事の著者

WINGSプロジェクト 小林 昌弘(コバヤシ マサヒロ)

WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

山田 祥寛(ヤマダ ヨシヒロ)

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるReact実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/23071 2026/01/29 11:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング