検索
Close this search box.
NOTE

獲得標高の数学的構造と計測誤差:なぜ順回りと逆回りでログの数値がずれるのか

目次

記事情報

メール
Xで共有

はじめに

トレイルランニング(トレラン)というスポーツをご存知でしょうか。舗装された道路を走るマラソンとは異なり、山の細道や砂利道、時には岩場といった未舗装路を駆け抜けるアウトドアスポーツです。起伏に富んだコースを走るため、平坦な道を走るのとはまた違った体全体を使い切るような爽快感と、刻一刻と変化する山の風景を楽しめるのが最大の魅力です。

トレイルランニングを楽しむ私たちにとってGPSウォッチはなくてはならないデバイスです。走っている間、手首につけた時計が、上空の衛星から届くGPS信号と周囲のわずかな空気の重さを感じる気圧センサーを駆使して、私たちがどれだけ登ったかを獲得標高という数字で教えてくれます。

獲得標高とは、簡単に言えば「登った高さの合計」のことです。数学的に考えれば、コースの標高の変化をグラフに描き、その中で「登り」の部分だけを足し合わせる(積分)計算をしていることになります。

もし、スタートとゴールが同じ場所にある周回コースであれば、右から回っても、左に回っても、最終的に登るべき高さの合計はピタリと一致するはずです。後ほど、数学を用いてそのことを厳密に証明します。

ところが、現実はそれほど単純ではありません。先日、いつものお気に入りのコースを、あえて逆回りで走ってみたときのことです。走り終えてウォッチの記録を確認すると不思議なことが起きていました。以前同じコースを順方向で走った時よりも獲得標高が10パーセント近くずれていたのです。同じ山、同じ道、同じ時計を使っているのに、コースを回る向きを変えただけで、なぜ獲得標高が変わってしまうのでしょうか。

ウォッチはGPSで自分の位置を確認しながら、気圧のわずかな変化を捉えて「今、何センチ登ったか」を1秒ごとに休まず計算しています。この「1秒ごとに測る」というデジタルの仕組みと、私たちの走るスピードが斜面によって変わるという現実が組み合わさることにより獲得標高に差が生じるという仮説を後ほど提示します。

本稿では、獲得標高の数学的定式化、順方向と逆方向で獲得標高が一致することの証明、実際の計測におけるずれの原因を体系的に解説します。

 

順回りに走る場合の獲得標高の定式化

ランナーは時点\(0\)に出発し、時点\(T>0\)にコースを一周してスタート地点に戻ってくるものとします。時点\(t\in \left[0,T\right] \)におけるランナーの平面上の位置を特定するベクトル値関数を、\begin{equation*}\boldsymbol{r}:\mathbb{R} \supset \left[ 0,T\right] \rightarrow \mathbb{R} ^{2}
\end{equation*}で表記します。\(\boldsymbol{r}\)がそれぞれの時点\(t\in \left[0,T\right] \)に対して定めるベクトルを、\begin{equation*}\boldsymbol{r}\left( t\right) =\left(
\begin{array}{c}
x\left( t\right) \\
y\left( t\right)
\end{array}\right)
\end{equation*}で表記します。つまり、時点\(t\)におけるランナーの位置の緯度が\(x\left( t\right) \)であり、経度が\(y\left( t\right) \)であり、それらの組が\(\boldsymbol{r}\left( t\right) \)であるということです。コースを平面上にプロットすると平面上の曲線\begin{equation*}C\left( \boldsymbol{r}\right) =\left\{ \boldsymbol{r}\left( t\right) \in \mathbb{R} ^{2}\ |\ t\in \left[ 0,T\right] \right\}
\end{equation*}が得られます。

平面上の地点\(\left( x,y\right) \in \mathbb{R} ^{2}\)の標高を特定する2変数関数を、\begin{equation*}h:\mathbb{R} ^{2}\rightarrow \mathbb{R} \end{equation*}で表記します。つまり、地点\(\left( x,y\right) \)の標高が\(h\left( x,y\right) \)であるということです。したがって、時点\(t\in \left[ 0,T\right] \)においてランナーがいる地点の標高は、\begin{equation*}h\left( \boldsymbol{r}\left( t\right) \right) =h\left(
\begin{array}{c}
x\left( t\right) \\
y\left( t\right)
\end{array}\right)
\end{equation*}です。

スタート後に時間が\(t\geq 0\)だけ経過した時点までにランナーが走った平面上での距離(道のり)を特定する弧長関数を、\begin{equation*}s:\mathbb{R} \supset \left[ 0,T\right] \rightarrow \mathbb{R} \end{equation*}で表記します。時点\(t\)における弧長を得るためには速さ\(\left\Vert \boldsymbol{r}^{\prime }\left( t\right) \right\Vert \)を区間\(\left[ 0,t\right] \)上で積分すればよいため、任意の\(t\in \left[ 0,T\right] \)に対して、\begin{eqnarray*}s\left( t\right) &=&\int_{0}^{t}\left\Vert \boldsymbol{r}^{\prime }\left(
s\right) \right\Vert ds \\
&=&\int_{0}^{t}\sqrt{\left[ x^{\prime }\left( s\right) \right] ^{2}+\left[
y^{\prime }\left( s\right) \right] ^{2}}ds
\end{eqnarray*}が成り立ちます。

曲線\(C\left( \boldsymbol{r}\right) \)が正則(\(\boldsymbol{r}\)が\(C^{1}\)級かつ導関数が非ゼロベクトル)である場合には弧長関数\(s\)は狭義単調増加関数になります。その場合、\(s\)の終集合を値域に制限すれば全単射になります。\(s\)の値域は、\begin{equation*}s\left( \left[ 0,T\right] \right) =\left[ s\left( 0\right) ,s\left( T\right) \right] =\left[ 0,s\left( T\right) \right] \end{equation*}です。\(s\left( T\right) \)はコースの平面上での総道のりであるため、簡便化のために、\begin{equation*}L=s\left( T\right)
\end{equation*}と表記します。弧長関数\(s\)の終集合を値域に制限した関数\begin{equation*}s:\mathbb{R} \supset \left[ 0,T\right] \rightarrow \left[ 0,L\right] \end{equation*}は全単射であり、したがってその逆関数\begin{equation*}
t:\mathbb{R} \supset \left[ 0,L\right] \rightarrow \left[ 0,T\right] \end{equation*}が存在します。ランナーが走った平面上での道のりが\(s\in \left[ 0,L\right] \)である場合、それだけ走るのに必要な時間が\(t\left( s\right) \in \left[ 0,T\right] \)であるということです。

道のりが\(s\in \left[ 0,L\right] \)である時点においてランナーがいる地点の座標は、\begin{equation*}\boldsymbol{r}\left( t\left( s\right) \right) =\left(
\begin{array}{c}
x\left( t\left( s\right) \right) \\
y\left( t\left( s\right) \right)
\end{array}\right)
\end{equation*}であり、さらにその地点の標高は、\begin{equation*}
h\left( \boldsymbol{r}\left( t\left( s\right) \right) \right) =h\left(
\begin{array}{c}
x\left( t\left( s\right) \right) \\
y\left( t\left( s\right) \right)
\end{array}\right)
\end{equation*}であることに注意してください。以上を踏まえた上で、それぞれの道のり\(s\in \left[ 0,L\right] \)に対して、その時点においてランナーがいる地点の標高\begin{equation*}H\left( s\right) =h\left( \boldsymbol{r}\left( t\left( s\right) \right)
\right)
\end{equation*}を特定する関数\begin{equation*}
H:\mathbb{R} \supset \left[ 0,L\right] \rightarrow \mathbb{R} \end{equation*}を定義し、これを標高関数と呼ぶこととします。

道のり\(s\in \left[ 0,L\right] \)において、\begin{equation*}H^{\prime }\left( s\right) >0
\end{equation*}が成り立つ場合、その時点においてランナーは登っています。他方で、\begin{equation*}
H^{\prime }\left( s\right) \leq 0
\end{equation*}が成り立つ場合、その時点においてランナーは下っているか、または平坦な道を進んでいます。獲得標高\(D^{+}\)は上りの部分だけを合計したものであるため、\begin{equation*}D^{+}=\int_{0}^{L}\max \left\{ H^{\prime }\left( s\right) ,0\right\} ds
\end{equation*}として得られます。

 

逆回りに走る場合の獲得標高の定式化

コースを順回りで走る場合の道のりを、\begin{equation*}
s\in \left[ 0,L\right] \end{equation*}で表記しましたが、それに対して、コースを逆回りに走る場合の道のりを、\begin{equation*}
u\in \left[ 0,L\right] \end{equation*}で表記します。コースを逆方向に\(u\)だけ進んだ場合、順向きのスタート地点からの残りの距離は\(L-u\)であるため、両者の間には以下の関係\begin{equation*}s=L-u
\end{equation*}が成り立ちます。

コースを順回りで走る場合の標高関数を、\begin{equation*}
H:\mathbb{R} \supset \left[ 0,L\right] \rightarrow \mathbb{R} \end{equation*}で表記しましたが、それに対して、コースを逆回りに走る場合の標高関数を、\begin{equation*}
G:\mathbb{R} \supset \left[ 0,L\right] \rightarrow \mathbb{R} \end{equation*}で表記します。順まわりで\(s\)だけ走った地点は、逆回りで\(L-s\)だけ走った地点と一致するため、以下の関係\begin{equation*}H\left( s\right) =G\left( L-s\right)
\end{equation*}が成り立つことに注意してください。したがって、\begin{eqnarray*}
H^{\prime }\left( s\right) &=&\frac{d}{ds}G\left( L-s\right) \\
&=&\left. \frac{d}{du}G\left( u\right) \right\vert _{u=L-s}\cdot \frac{d}{ds}\left( L-s\right) \quad \because \text{合成関数の微分} \\
&=&G^{\prime }\left( L-s\right) \cdot \left( -1\right) \\
&=&-G^{\prime }\left( L-s\right)
\end{eqnarray*}すなわち、\begin{equation*}
H^{\prime }\left( s\right) =-G^{\prime }\left( L-s\right)
\end{equation*}が成り立ちます。

コースを逆回りで走る場合の獲得標高は、\begin{equation*}
D^{-}=\int_{0}^{L}\max \left\{ G^{\prime }\left( u\right) ,0\right\} du
\end{equation*}として得られます。置換積分を行います。先の考察より、\(s\)を\(u\)に関する関数\begin{equation*}s=g\left( u\right) =L-u
\end{equation*}として表現できますが、その逆関数は、\begin{equation*}
u=g^{-1}\left( s\right) =L-s
\end{equation*}です。積分範囲は、\begin{equation*}
\left[ 0,L\right] \rightarrow \left[ g\left( 0\right) ,g\left( L\right) \right] =\left[ L,0\right] \end{equation*}へと変換されることを踏まえると、\begin{eqnarray*}
D^{-} &=&\int_{0}^{L}\max \left\{ G^{\prime }\left( u\right) ,0\right\} du \\
&=&\int_{L}^{0}\max \left\{ G^{\prime }\left( L-s\right) ,0\right\} \frac{dg^{-1}\left( s\right) }{ds}ds\quad \because \text{置換積分} \\
&=&-\int_{L}^{0}\max \left\{ G^{\prime }\left( L-s\right) ,0\right\} ds\quad
\because \frac{dg^{-1}\left( s\right) }{ds}=-1 \\
&=&\int_{0}^{L}\max \left\{ G^{\prime }\left( L-s\right) ,0\right\} ds \\
&=&\int_{0}^{L}\max \left\{ -H^{\prime }\left( s\right) ,0\right\} ds\quad
\because H^{\prime }\left( s\right) =-G^{\prime }\left( L-s\right)
\end{eqnarray*}すなわち、\begin{equation*}
D^{-}=\int_{0}^{L}\max \left\{ -H^{\prime }\left( s\right) ,0\right\} ds
\end{equation*}が成り立ちます。

 

どちら回りでも獲得標高が一致する理由

これまでの議論より、同じコースを順回りで走った場合の獲得標高が、\begin{equation*}
D^{+}=\int_{0}^{L}\max \left\{ H^{\prime }\left( s\right) ,0\right\} ds
\end{equation*}である一方で、逆回りで走った場合の獲得標高が、\begin{equation*}
D^{-}=\int_{0}^{L}\max \left\{ -H^{\prime }\left( s\right) ,0\right\} ds
\end{equation*}であることが明らかになりました。

2つの被積分関数の差\begin{equation*}
\max \left\{ H^{\prime }\left( s\right) ,0\right\} -\max \left\{ -H^{\prime
}\left( s\right) ,0\right\}
\end{equation*}に注目します。\(s\in \left[ 0,L\right] \)において\(H^{\prime }\left( s\right) \geq 0\)である場合には、\begin{eqnarray*}\max \left\{ H^{\prime }\left( s\right) ,0\right\} -\max \left\{ -H^{\prime
}\left( s\right) ,0\right\} &=&H^{\prime }\left( s\right) -0 \\
&=&H^{\prime }\left( s\right)
\end{eqnarray*}である一方で、\(H^{\prime }\left(s\right) <0\)である場合には、\begin{eqnarray*}\max \left\{ H^{\prime }\left( s\right) ,0\right\} -\max \left\{ -H^{\prime
}\left( s\right) ,0\right\} &=&0-\left[ -H^{\prime }\left( s\right) \right] \\
&=&H^{\prime }\left( s\right)
\end{eqnarray*}であるため、任意の\(s\in \left[ 0,L\right] \)において、\begin{equation*}\max \left\{ H^{\prime }\left( s\right) ,0\right\} -\max \left\{ -H^{\prime
}\left( s\right) ,0\right\} =H^{\prime }\left( s\right)
\end{equation*}が成り立つことが明らかになりました。左辺を積分すると、\begin{eqnarray*}
\int_{0}^{L}\left[ \max \left\{ H^{\prime }\left( s\right) ,0\right\} -\max
\left\{ -H^{\prime }\left( s\right) ,0\right\} \right] ds
&=&\int_{0}^{L}\max \left\{ H^{\prime }\left( s\right) ,0\right\}
ds-\int_{0}^{L}\max \left\{ -H^{\prime }\left( s\right) ,0\right\} ds \\
&=&D^{+}-D^{-}
\end{eqnarray*}が成り立つ一方で、右辺を積分すると、\begin{eqnarray*}
\int_{0}^{L}H^{\prime }\left( s\right) ds &=&H\left( L\right) -H\left(
0\right) \quad \because \text{微分積分学の第1基本定理} \\
&=&0\quad \because H\left( L\right) =H\left( 0\right)
\end{eqnarray*}が成り立ちます。なお、\(H\left( L\right) =H\left( 0\right) \)が成り立つ理由は、周回コースを想定しているためスタート地点とゴール地点の標高が一致するからです。いずれにせよ、これらの結果は一致するため、\begin{equation*}D^{+}-D^{-}=0
\end{equation*}すなわち、\begin{equation*}
D^{+}=D^{-}
\end{equation*}を得ます。以上より、コースをどちら回りで走った場合にも獲得標高は一致することが明らかになりました。

 

離散化と速度の非対称性が生む計測誤差

理論の世界では、順向きと逆向きとでは獲得標高が完全に一致することが明らかになりました。しかし、GPSウォッチは連続的な積分計算を行っているわけではなく、1秒間に1度の間隔で標高をサンプリングし、その点と点の差分を足し合わせることで獲得標高を算出しています。つまり、以下の計算式\begin{equation*}
D_{rev}^{+}=\sum_{i=1}^{n}\max \left\{ H\left( s_{i}\right) -H\left(
s_{i-1}\right) ,0\right\}
\end{equation*}を利用しているということです。ただし、\(\Delta s=s_{i}-s_{i-1}\)は1秒間で走る道のりです。この離散化こそが問題の温床であると考えられます。つまり、1秒間で走る道のり\(\Delta s\)の間に起伏が存在する場合、連続的な積分であればすべてを拾い上げますが、デジタル計測ではサンプリング点の間にある起伏は平均化されて消えてしまいます。言い換えると、区間\(\left[ s_{i-1},s_{i}\right] \)の内部に「登り\(\rightarrow \)下り\(\rightarrow \)登り」のような微細構造が存在すると、連続積分では寄与しますが、離散化では端点のみが評価されるため、内部の登りが消失します。なぜこれが獲得標高の差を生み出すのでしょうか。

トレイルランニングにおいて、登りと下りの速度は大きく異なります。

登りでは低速であるため、1秒間に進む道のり\(\Delta s\)が短く、したがって路面の凹凸を細かい解像度でスキャンします。結果として、微小な登りが漏らさずカウントされるため、獲得標高は真の値に近づくか、あるいはノイズを拾って過大になります。

下りでは高速であるため、1秒間に進む道のり\(\Delta s\)が長く、スキャンの解像度が粗くなります。結果として、サンプリング点の間にある微小な登りのカウント漏れが発生し、獲得標高は真の値よりも過少になります。

山の形状は左右対称であるとは限らないため、順回りと逆回りを比べた場合、登る高さと下る高さは同じだとしても、登り時間と下り時間の比率まで一定であるとは限りません。具体例として、順回りで走った場合、最初に急な坂を上り、その後、なだらかに下りながらスタートへ戻るコースプロファイルを想定します。同じコースを逆向きで走った場合、最初になだらかに登り、その後、急な坂を下ってスタートへ戻ることになります。この場合、順回りでは低速で進む時間の割合が逆回りの場合よりも高くなるため、先の理由により、順回りでは獲得標高が相対的に大きく見積もられます。

$$\begin{array}{cccc}
\hline
走行方向 & セクション
& 斜度 & 速度 \\ \hline
順回り & 前半(急登)
& 大 & 低速 \\ \hline
& 後半(穏下り) & 小 & 高速 \\ \hline
逆回り & 前半(穏登り) & 小 & 中速 \\ \hline
& 後半(急下り) & 大 & 中〜高速 \\ \hline
\end{array}$$

私が目にした獲得標高の差。それは山が変わったからでも、数学が間違っていたからでもありません。登りでは微細な起伏を拾い、下りではそれを見逃すというデジタル計測の特性が、測度の差によって順向きと逆向きで異なる情報の欠落を引き起こした結果です。数学が保証する対称性は連続の世界に属しています。一方で、デジタルデバイスは有限の分解能でしか世界を観測できません。獲得標高のずれは、この2つの世界の間に生じる必然的な差です。

関連知識

メール
Xで共有
UAEのOPEC離脱が世界に与える衝撃をリアリズム国際政治学の観点から解説。サウジアラビアとの覇権争いや、脱炭素時代を見据えたUAEの生存戦略、そして日本のエネルギー安全保障への影響を、歴史的背景とデータから分析します。
フィボナッチ探索(Fibonacci search)は単峰関数の最小値(最大値)を求めるための基本的な探索アルゴリズムです。本稿ではフィボナッチ探索の仕組みを定式化するとともに、黄金分割探索との違いを解説します。
イスラエルとイランの対立はなぜ起きるのか。本記事ではジョン・ミアシャイマーの攻撃的リアリズムをもとに、イランの核開発、イスラエルの先制攻撃、米国の中東戦略、安全保障ジレンマの観点から今回の紛争を解説します。
技術分野では誤った判断が即座に故障や事故を招くため慎重になりますが、政治・教育・財政政策などの社会科学分野では結果が長期的で目に見えにくく、独りよがりの意見を述べやすくなります。本稿では、社会科学分野の知識を軽視する危うさと、専門知識を尊重する姿勢の重要性を解説します。
ランナーが怪我をしているのに走ってしまう理由を、簡単な経済学のモデルを用いて説明します。ポイントは時間不整合性(現在バイアス)です。
黄金分割探索(Golden section search)は単峰関数の最小値(最大値)を求めるための基本的な探索アルゴリズムです。本稿では黄金分割探索の仕組みを定式化し、区間保持、収束、誤差評価を数学的に証明するとともに、三分探索との違いを解説します。
三分探索(Ternary Search)は単峰関数の最小値(最大値)を求めるための基本的な探索アルゴリズムです。本稿では三分探索の仕組みを定式化し、区間保持、収束、誤差評価を数学的に証明します。
経済学でよく用いられる対応(correspondence)の連続性について、誤解が多いと思われる事実について整理します。
ユダヤ教はキリスト教やイスラム教徒と同様、唯一絶対の神から与えられた啓典を信仰の基盤にする啓典宗教です。ユダヤ教の特徴は、集団救済の宗教であり、外的規範の実践を重視する規範宗教であるという点です。その意味を解説します。
写真が本格的に発達した19世紀の中頃は、絵画を中心に印象派が勃興した時代でもあります。印象派の作風は写実主義の対極にあるように見えますが、実は、その成り立ちは写真の発明や普及と深い関係があることが指摘されています。写真が普及するまでの歴史的経緯を追いながら、印象派に及ぼした影響について解説します。
0は自然数なのでしょうか。0を自然数に含める流儀と含めない流儀がありますが、どちらが正しいか決め手はありません。重要なのは定義を共有しておくことです。ここでは後続集合を用いた定義や、帰納的集合を用いた定義などを紹介します。
オークションの入札者は商品への評価額などを私的情報として持っています。入札者たちが自身の利益を最大化するために真の評価額とは異なる金額を入札する結果、オークション市場ではインセンティブの問題が発生します。オークション理論はインセンティブの問題を解消するためのオークションメカニズムを設計する学問です。
もともとメキシコ領であったカリフォルニアからテキサスへ至る領域は、テキサス併合やメキシコ・アメリカ戦争(米墨戦争)などを経てアメリカへ編入されます。こうした動きを正当化するスローガンとして叫ばれたのが「明白な使命(マニフェスト・デスティニー)」。その意味を、時代背景やアメリカという国の成り立ちとともに解説します。
アダム・スミスの経済に関する思想は、社会秩序を導く人間本性について考察した著作である『道徳感情論』と関連付けながら理解する必要があります。今回はそのような立場からスミスの思想を概観します。
デカルトは『方法序説』において、理性の力を取り戻し、理性を活用するための方法を 4 つの準則としてまとめました。今回はデカルトの準則を参考にして、簡単には解けそうにない数学の問題に直面したときの対処方法を準則としてまとめます。
小学校などで割り算を学ぶ際に、「0では割ってはいけない」ことを理屈で説明するのではなく、守るべき「お約束」として習います。今回はその理由を体と呼ばれる数学概念を利用して解説します。
対戦競技におけるプレイヤーの実力を表す指標をレーティングと呼びます。対戦競技には相手がいるため、レーティングは実際の対戦結果から決定すべきです。イロ・レーティングシステムは1対1の対戦競技におけるレーティング決定ルールであり、チェスや将棋、囲碁、アメフト、サッカー、テニスなどの様々な対戦競技において採用されています。
日本では計算機が登場する前にそろばんが広く使われていましたが、西欧社会ではどのような道具が使われていたのでしょうか。フランス人の鉄道技術者ヘンリ・ルーカスが 1891 年に開発したジェナイル・ルーカスの定規は、計算機が登場する以前の西欧社会において科学者や会計士の間で広く使われていた計算道具です。

質問とコメント

プレミアム会員専用コンテンツです

会員登録

有料のプレミアム会員であれば、質問やコメントの投稿と閲覧、プレミアムコンテンツ(命題の証明や演習問題とその解答)へのアクセスなどが可能になります。

WIISでは、年齢・性別・学歴・職業・社会的立場などにかかわらず、すべてのユーザーが「学ぶ人」として対等であると考えています。ここは、知識を競う場所ではなく、互いに尊重し合いながら理解を深めていく場です。安心して思考し、質問し、考え続けられる環境を、みなさんと一緒につくっていきたいと考えています。

誤字脱字、リンク切れ、内容の誤りを発見した場合にはコメントに投稿するのではなく、以下のフォームからご連絡をお願い致します。

会員専用コンテンツです
ログイン】【会員登録