"3軸の加速度データを出力する加速度センサと、3軸の地磁気データを出力する地磁気センサと、前記加速度データ及び前記地磁気データから歩行者の進行方向を決定する進行方向決定手段とを有し、歩行者によって所持される携帯端末であって、前記進行方向決定手段は、各軸加速度データと、全ての軸の加速度データの二乗和平方根となる合成加速度とを用いて、遊脚期の加速度データを抽出する遊脚期抽出手段と、前記遊脚期の加速度データの中から、指定数分の加速度データを取得する指定数分加速度取得手段と、指定数分の遊脚期の加速度データに基づいて、右/左向きベクトルUを算出する右/左向きベクトル算出手段と、前記右/左向きベクトルUと、前記重力ベクトルGと、前記地磁気ベクトルMとを用いて、進行方向を算出する進行方向算出手段とを有することを特徴とする携帯端末。前記遊脚期抽出手段は、前記合成加速度から、連続する極大点を検出し、連続する極大点と極大点との間における前記合成加速度の極小点について、合成加速度が大小と交互に続くことを検出し、前記合成加速度小の前後の極大点間を、遊脚期として検出することを特徴とする請求項1に記載の携帯端末。前記右/左向きベクトル算出手段は、前記遊脚期の終了を示す加速度ベクトルBと、前記遊脚期の開始を示す加速度ベクトルFとの外積U=B×F又はF×Bによって、右/左向きベクトルUを算出することを特徴とする請求項2に記載の携帯端末。前記右/左向きベクトル算出手段は、指定数分の遊脚期の加速度データに基づいて、歩行者の歩行動作によって生じる加速度面を推定する加速度面推定手段と、指定数分の遊脚期の加速度データから、鉛直方向加速度を算出する鉛直方向加速度算出手段と、前記加速度面及び前記鉛直方向加速度から、当該加速度面における法線ベクトル右/左向きベクトルUと、前後方向加速度とを算出する前後方向加速度算出手段とを有することを特徴とする請求項2に記載の携帯端末。前記前後方向加速度算出手段は、前記加速度センサから出力された軸毎の加速度に基づいて、重力ベクトルGを算出し、前記加速度面の法線ベクトルVLR及び前記重力ベクトルGから、前向き又は後向きの前後方向ベクトルVFGを算出し、前記前後方向ベクトルVFG及び前記遊脚期の終了を示す加速度に基づいて、前記前後方向ベクトルVFGが前向きである場合、前記法線ベクトルVLRを右向きとし、前記前後方向ベクトルVFGが後向きである場合、前記法線ベクトルVLRを左向きとすることを特徴とする請求項4に記載の携帯端末。前記加速度面推定手段は、指定数分加速度について、各軸の分散Vxx、Vyy及びVzzを算出し、分散が最小となる軸について、最小二乗法に基づいて加速度面を推定することを特徴とする請求項4又は5に記載の携帯端末。前記右/左向きベクトル算出手段は、前記遊脚期の終了を示す加速度ベクトルBと、前記遊脚期の開始を示す加速度ベクトルFとの外積U=B×F又はF×Bによって、右/左向きベクトルUを算出し、前記加速度面推定手段は、3軸の中で、前記右/左向きベクトルUの方向に最も近い軸について、最小二乗法に基づいて加速度面を推定することを特徴とする請求項4又は5に記載の携帯端末。前記進行方向算出手段は、前記重力ベクトルG及び前記地磁気ベクトルMを用いて、G×M/|G×M|によって東向き単位ベクトルeEastを算出し、前記右向き単位ベクトルeRightと、前記東向き単位ベクトルeEastとの成す角αを算出し、前記東向き単位ベクトルeEastと前記右向き単位ベクトルeRightとの外積eEast×eRightと、重力ベクトルGとの成す角βに基づいて、前記東向き単位ベクトルeEastに対する方向角θを算出することを特徴とする請求項1から7のいずれか1項に記載の携帯端末。前記進行方向算出手段について、前記成す角αは、以下の式によって算出され、α=arccos/方位角θは、前記成す角αと、前記外積ベクトルと前記重力ベクトルGの成す角βとを用いて、以下の式によって導出されるcosβ≧0:θ=αcosβ<0:θ=360-αことを特徴とする請求項8に記載の携帯端末。3軸の加速度データを出力する加速度センサと、3軸の地磁気データを出力する地磁気センサとを有する携帯端末に搭載されたコンピュータを、前記加速度データ及び前記地磁気データから歩行者の進行方向を決定する進行方向決定手段として機能させるプログラムであって、前記進行方向決定手段は、各軸加速度データと、全ての軸の加速度データの二乗和平方根となる合成加速度とを用いて、遊脚期の加速度データを抽出する遊脚期抽出手段と、前記遊脚期の加速度データの中から、指定数分の加速度データを取得する指定数分加速度取得手段と、指定数分の遊脚期の加速度データに基づいて、右/左向きベクトルUを算出する右/左向きベクトル算出手段と、前記右/左向きベクトルUと、前記重力ベクトルGと、前記地磁気ベクトルMとを用いて、進行方向を算出する進行方向算出手段としてコンピュータを機能させることを特徴とする携帯端末用のプログラム。3軸の加速度データを出力する加速度センサと、3軸の地磁気データを出力する地磁気センサとを有する携帯端末によって、前記加速度データ及び前記地磁気データから歩行者の進行方向を決定する進行方向決定方法であって、各軸加速度データと、全ての軸の加速度データの二乗和平方根となる合成加速度とを用いて、遊脚期の加速度データを抽出する第1のステップと、前記遊脚期の加速度データの中から、指定数分の加速度データを取得する第2のステップと、指定数分の遊脚期の加速度データに基づいて、右/左向きベクトルUを算出する第3のステップと、前記右/左向きベクトルUと、前記重力ベクトルGと、前記地磁気ベクトルMとを用いて、進行方向を算出する第4のステップとを有することを特徴とする携帯端末の進行方向決定方法。特許文献4に記載された技術によれば、所定閾値を超える加速度が検出された方向を、進行方向の候補とする。しかしながら、加速度の分布が、直線状ではなく幅をもつ場合、多数の進行方向の候補に対する評価が必要となり、演算量が膨大になる。また、特許文献5、6、7に記載された技術によれば、歩行者の身に着けられた携帯端末の姿勢が大凡一定であることを想定し、歩行の際に検出される水平方向の加速度が、進行方向に分布することを利用している。しかしながら、実際には、歩行者が所持している携帯端末の姿勢が、大凡一定となるとは限らない。そのために、水平方向の加速度が、進行方向に分布しないことも多い。更に、特許文献8に記載された技術によれば、歩行者が携帯端末を把持した腕振りによって進行方向を決定するものであるが、携帯端末が腕振り運動に伴って動くことを想定しており、歩行者が、携帯端末を例えばズボンのポケットに入れている場合には、進行方向を決定することができない。尚、特許文献4から7のいずれに記載された技術についても、センサによって検出されたセンサ座標系の加速度データから、進行方向の座標系の加速度を算出する処理を要する。即ち、センサによって検出された個々の加速度データについて、座標変換処理を要する。これは、結果として、演算量の増大を招く。そこで、本発明は、歩行者が、携帯端末をズボンのポケットのような衣服に入れている場合であっても、その携帯端末に搭載された加速度センサ及び地磁気センサを用いて、歩行者の進行方向をできる限り正確に決定する携帯端末、プログラム及び方法を提供することを目的とする。本発明によれば、3軸の加速度データを出力する加速度センサと、3軸の地磁気データを出力する地磁気センサと、加速度データ及び地磁気データから歩行者の進行方向を決定する進行方向決定手段とを有し、歩行者によって所持される携帯端末であって、進行方向決定手段は、各軸加速度データと、全ての軸の加速度データの二乗和平方根となる合成加速度とを用いて、遊脚期の加速度データを抽出する遊脚期抽出手段と、遊脚期の加速度データの中から、指定数分の加速度データを取得する指定数分加速度取得手段と、指定数分の遊脚期の加速度データに基づいて、右/左向きベクトルUを算出する右/左向きベクトル算出手段と、右/左向きベクトルUと、重力ベクトルGと、地磁気ベクトルMとを用いて、進行方向を算出する進行方向算出手段とを有することを特徴とする。本発明の携帯端末における他の実施形態によれば、遊脚期抽出手段は、合成加速度から、連続する極大点を検出し、連続する極大点と極大点との間における合成加速度の極小点について、合成加速度が大小と交互に続くことを検出し、合成加速度小の前後の極大点間を、遊脚期として検出することも好ましい。本発明の携帯端末における他の実施形態によれば、右/左向きベクトル算出手段は、遊脚期の終了を示す加速度ベクトルBと、遊脚期の開始を示す加速度ベクトルFとの外積U=B×F又はF×Bによって、右/左向きベクトルUを算出することも好ましい。本発明の携帯端末における他の実施形態によれば、右/左向きベクトル算出手段は、指定数分の遊脚期の加速度データに基づいて、歩行者の歩行動作によって生じる加速度面を推定する加速度面推定手段と、指定数分の遊脚期の加速度データから、鉛直方向加速度を算出する鉛直方向加速度算出手段と、加速度面及び鉛直方向加速度から、当該加速度面における法線ベクトル右/左向きベクトルと、前後方向加速度とを算出する前後方向加速度算出手段とを有することも好ましい。本発明の携帯端末における他の実施形態によれば、前後方向加速度算出手段は、加速度センサから出力された軸毎の加速度に基づいて、重力ベクトルGを算出し、加速度面の法線ベクトルVLR及び重力ベクトルGから、前向き又は後向きの前後方向ベクトルVFGを算出し、前後方向ベクトルVFG及び遊脚期の終了を示す加速度に基づいて、前後方向ベクトルVFGが前向きである場合、法線ベクトルVLRを右向きとし、前後方向ベクトルVFGが後向きである場合、法線ベクトルVLRを左向きとすることも好ましい。本発明の携帯端末における他の実施形態によれば、加速度面推定手段は、指定数分加速度について、各軸の分散Vxx、Vyy及びVzzを算出し、分散が最小となる軸について、最小二乗法に基づいて加速度面を推定することも好ましい。本発明の携帯端末における他の実施形態によれば、右/左向きベクトル算出手段は、遊脚期の終了を示す加速度ベクトルBと、遊脚期の開始を示す加速度ベクトルFとの外積U=B×F又はF×Bによって、右/左向きベクトルUを算出し、加速度面推定手段は、3軸の中で、右/左向きベクトルUの方向に最も近い軸について、最小二乗法に基づいて加速度面を推定することも好ましい。本発明の携帯端末における他の実施形態によれば、進行方向算出手段は、重力ベクトルG及び地磁気ベクトルMを用いて、G×M/|G×M|によって東向き単位ベクトルeEastを算出し、右向きベクトルeRightと、東向き単位ベクトルeEastとの成す角αを算出し、東向き単位ベクトルeEastと右向き単位ベクトルeRightとの外積eEast×eRightと、重力ベクトルGとの成す角βに基づいて、東向き単位ベクトルeEastに対する方向角θを算出することも好ましい。本発明の携帯端末における他の実施形態によれば、進行方向算出手段について、成す角αは、以下の式によって算出され、α=arccos/方位角θは、成す角αと、外積ベクトルと重力ベクトルGの成す角βとを用いて、以下の式によって導出されるcosβ≧0:θ=αcosβ<0:θ=360-αことも好ましい。本発明によれば、3軸の加速度データを出力する加速度センサと、3軸の地磁気データを出力する地磁気センサとを有する携帯端末に搭載されたコンピュータを、加速度データ及び地磁気データから歩行者の進行方向を決定する進行方向決定手段として機能させるプログラムであって、進行方向決定手段は、各軸加速度データと、全ての軸の加速度データの二乗和平方根となる合成加速度とを用いて、遊脚期の加速度データを抽出する遊脚期抽出手段と、遊脚期の加速度データの中から、指定数分の加速度データを取得する指定数分加速度取得手段と、指定数分の遊脚期の加速度データに基づいて、右/左向きベクトルUを算出する右/左向きベクトル算出手段と、右/左向きベクトルUと、重力ベクトルGと、地磁気ベクトルMとを用いて、進行方向を算出する進行方向算出手段としてコンピュータを機能させることを特徴とする。本発明によれば、3軸の加速度データを出力する加速度センサと、3軸の地磁気データを出力する地磁気センサとを有する携帯端末によって、加速度データ及び地磁気データから歩行者の進行方向を決定する進行方向決定方法であって、各軸加速度データと、全ての軸の加速度データの二乗和平方根となる合成加速度とを用いて、遊脚期の加速度データを抽出する第1のステップと、遊脚期の加速度データの中から、指定数分の加速度データを取得する第2のステップと、指定数分の遊脚期の加速度データに基づいて、右/左向きベクトルUを算出する第3のステップと、右/左向きベクトルUと、重力ベクトルGと、地磁気ベクトルMとを用いて、進行方向を算出する第4のステップとを有することを特徴とする。本発明の携帯端末、プログラム及び方法によれば、歩行者が、携帯端末をズボンのポケットのような衣服に入れている場合であっても、その携帯端末に搭載された加速度センサ及び地磁気センサを用いて、歩行者の進行方向をできる限り正確に決定することができる。特に、携帯端末が、歩行者の下半身部分の衣服に身につけられた際に、歩行者の進行方向をできる限り決定することができる。以下、本発明の実施の形態について、図面を用いて詳細に説明する。図1は、歩行者の下半身のポケットに入れられた携帯端末の態様を表す説明図である。図1によれば、携帯端末が歩行者のズボンのポケットに挿入された状態では、携帯端末の姿勢は、一定とならない。また、このような状態は、ユーザが携帯端末に対して操作しておらず、携帯端末自体が、何らかのアプリケーションによって進行方向を検出している場合である。尚、本発明によれば、携帯端末が歩行者のズボンのポケットに挿入された状態を想定しているが、勿論、それに限られるものではない。但し、本発明によれば、携帯端末が、特に歩行者の身体の中心から見て、左右のいずれかの側に寄っていて、且つ、下半身部分に位置していることが好ましい。携帯端末には、加速度センサ及び地磁気センサが、固定的に内蔵されている。そのために、携帯端末の向きに応じて、センサのx、y、z軸センサ座標系の向きも決まる。例えば、図1によれば、x軸は携帯端末の上から下へ向けて、y軸は携帯端末の左から右へ向けて、z軸は携帯端末の裏から表へ向けて、割り当てられている。勿論、センサの座標系の割り当ては、これに限られない。また、歩行者の進行方向に対しては、前向き後向き、右向き左向き、鉛直方向の座標系が決まる。尚、ズボンのポケットに挿入された携帯端末の向きまでは、想定できない。図2は、本発明における携帯端末の機能構成図である。図2によれば、携帯端末1は、利用者の衣服のポケットに挿入可能な端末であって、例えば携帯電話機やスマートフォンである。携帯端末1は、進行方向決定部10と、加速度センサ11と、地磁気センサ12と、測位部13と、地図情報記憶部14と、表示制御部15と、ディスプレイ部16とを有する。進行方向決定部10、地図情報記憶部14及び表示制御部15は、携帯端末に搭載されたコンピュータを機能させるプログラムを実行することによって実現される。加速度センサ11は、x軸、y軸及びz軸毎の加速度センサ座標系を検出する。既存の一般的な携帯電話機やスマートフォンの場合、加速度センサを一般的に搭載している。検出された加速度データは、進行方向決定部10へ出力される。加速度センサ11は、携帯端末1に固定的に内蔵されており、携帯端末1の向きが決まれば、加速度センサ11の軸の向きも決まる。地磁気センサ12は、南から北へ向かう地球の磁力線である地磁気を検出する。検出された地磁気の水平面に対する正射影の向きが、北となる。3軸の地磁気センサの場合、水平でなくても傾きを検出することによって、方位を検出することができる。検出された地磁気データは、進行方向決定部10へ出力される。測位部13は、GPS衛星からの測位電波を受信し、現在位置の緯度経度データを取得する。その緯度経度データは、表示制御部15へ出力される。地図情報記憶部14は、地図情報を蓄積する。表示制御部15から指示された現在位置に基づいて、その地図情報を表示制御部15へ出力する。表示制御部15は、進行方向決定部10から進行方向データを入力し、測位部13から現在位置情報を入力する。また、表示制御部15は、現在位置情報を地図情報記憶部14へ出力し、現在位置の地図情報を取得する。そして、表示制御部15は、地図の上に現在位置を表示すると共に、その進行方向を矢印で表示した画像を生成する。その画像は、ディスプレイ部16へ出力される。例えば、歩行者用のナビゲーションシステムに用いられる。ディスプレイ部16は、表示制御部15からの画像を表示することによって、歩行中のユーザに対してその画像を視認させる。次に、本発明の特徴部分である進行方向決定部10について、詳細に説明する。進行方向決定部10は、遊脚期抽出部101と、指定数分加速度取得部102と、右/左向きベクトル推定部103と、進行方向算出部104とを有する。以下では、これら機能構成部について、詳細に説明する。<遊脚期抽出部101>遊脚期抽出部101は、各軸加速度データと、全ての軸の加速度データの二乗和平方根となる合成加速度とを用いて、遊脚期の加速度データを抽出する。図3は、各軸加速度及び合成加速度から遊脚期の抽出を表すグラフである。加速度は、小さな一歩の変動と、大きな一歩の変動とが、交互に観測される。図3によれば、歩行者のズボンのポケットに挿入された携帯端末について、歩行中に検出されたx軸加速度、y軸加速度、z軸加速度及び合成加速度が表されている。合成加速度は、3軸加速度の二乗和の平方根である。尚、ズボンのポケットに挿入された携帯端末の姿勢は不明である。人の歩行は歩行周期で表される。歩行周期とは、同側の足の初期接地から、次の初期接地までの時間をいい、この時間は、立脚期と遊脚期とに区分される。立脚期:足が地面に付いている期間遊脚期:足が地面を離れ、スイングによって脚が前に運ばれている期間例えばズボンのポケットの側の足に着目したとする。ここで、ポケットの側の足が地面についているのが立脚期であり、ポケットの側の脚が前に運ばれているのが遊脚期である。立脚期については脚の動きが小さく、遊脚期については脚の動きが大きい。人の歩行は、左右の脚を交互に前に運ぶため、立脚期と遊脚期とが交互に繰り返される。従って、加速度によれば、小さな一歩の変動と、大きな一歩の変動とが、交互に観測される。遊脚期は、合成加速度が極大点となる2つの時点の間にある。また、図3によれば、遊脚期に含まれる極小点の合成加速度が、遊脚期に含まれない極小点の合成加速度よりも小さくなっていることが理解できる。従って、合成加速度の極小点を検出し、連続する極小点の合成加速度が、小→大となる小の側を含む連続する極大点の区間を検出することによって、遊脚期を検出する。具体的には、遊脚期は、以下の3つのステップによって抽出される。S1合成加速度から、連続する極大点を検出する。S2連続する極大点と極大点との間における合成加速度の極小点について、合成加速度が大小と交互に続くことを検出する。S3合成加速度小の前後の極大点間を、遊脚期として検出する。<指定数分加速度取得部102>指定数分加速度取得部102は、遊脚期の加速度データの中から、指定数分の加速度データを取得する。指定数分の加速度データ毎に、右/左向きベクトル推定部103へ出力される。ここでの指定数分の加速度は、例えば、2秒間およそ4歩に相当分程度が好ましい。<右/左向きベクトル推定部103>右/左向きベクトル推定部103は、指定数分の遊脚期の加速度データに基づいて、右/左向きベクトルUを推定する。右/左向きベクトルUは、歩行者の進行方向に対する右方又は左方を示すベクトルをいう。ここで、右/左向きベクトル推定部103には、2つの処理方法がある。[a]遊脚期の加速度ベクトルの外積から、右/左向きベクトルを算出する方法[b]遊脚期の加速度ベクトルの加速度面から、右/左向きベクトルを算出する方法[a]遊脚期の加速度ベクトルの外積から、右/左向きベクトルを算出する方法右/左向きベクトル推定部103は、1つの右/左向きベクトル算出部103aのみを有し、遊脚期の終了を示す加速度ベクトルBと、遊脚期の開始を示す加速度ベクトルFとの外積U=B×F又はF×Bによって、右/左向きベクトルUを算出する。一般に、歩行の進行方向を表すために、進行方向の加速度面の法線ベクトルが用いられる尚、加速度面の法線ベクトルについては、[b]及び図5で後述する。原点から伸びる法線ベクトルは、加速度面に対して2方向に引くことができる。加速度面は、進行方向歩行者の前後を示すので、2方向の法線ベクトルは、歩行者の右方と左方にあたる。ここでは、2方向の法線ベクトルのうち、歩行者右方の法線ベクトルは、右向きベクトルUと定義する。また、歩行者左方の法線ベクトルは、左向きベクトルUと定義する。ここで、加速度面と遊脚期との関係は、以下のように表される。加速度面の前方を示す最上点での加速度ベクトル=遊脚期の開始を示す加速度ベクトルF加速度面の後方を示す最上点での加速度ベクトル=遊脚期の終了を示す加速度ベクトルB以下の式1によって、右向きベクトルUを算出する。遊脚期の開始を示す加速度ベクトル:F=xF,yF,zF遊脚期の終了を示す加速度ベクトル:B=xB,yB,zB加速度面の右方を示す右向きベクトル:U=xU,yU,zUU=B×F=yBzF-zByF,zBxF-xBzF,xByF-yBxF式1脚が前の時に、ベクトルは後ろ向きとなる。従って、右は、足が前B×足が後Fとなる。右/左向きベクトルとして、歩行者の左向きベクトルを用いた場合、式1は、以下のようになる。U=F×B=yFzB-zFyB,zFxB-xFzB,xFyB-yFxB例えば、第1の時刻と第2の時刻との加速度ベクトルをそれぞれ、F、Bとして選択し、式1を適用した場合、以下の右向きベクトルUが得られる。第1の時刻:各軸加速度ax=450、ay=835、az=140、合成加速度a=959第2の時刻:各軸加速度ax=369、ay=980、az=140、合成加速度a=1056右向きベクトル:U=20300,114660,-749115[b]遊脚期の加速度ベクトルの加速度面から、右/左向きベクトルを算出する方法右/左向きベクトル推定部103は、鉛直方向加速度算出部103b1と、加速度面推定部103b2と、前後方向加速度算出部103b3とを有する。[鉛直方向加速度算出部103b1]鉛直方向加速度算出部103b1は、加速度データを用いて鉛直方向加速度を算出する。尚、鉛直方向加速度と水平方向加速度とは、互いに直交する。図4は、経過時間に応じた鉛直方向加速度及び水平方向加速度の推移を表すグラフである。図4によれば、現実に、歩行者が、図1のような態様で、携帯端末をズボンのポケットに挿入して歩行し、それによって取得された鉛直方向加速度及び水平方向加速度をプロットしたものである。図4aによれば、鉛直方向加速度の上側は、鉛直下向きを表し、下側は、鉛直上向きを表す。また、鉛直方向加速度の変化は、歩行と一致する周期性を有する。ここで、鉛直下向き加速度の極大点は、身体が下がった時点、即ち、地面を離れていた足が接地する時点を表す。一方で、鉛直上向き加速度の極大点は、身体が上がった時点、即ち、足が上がった時点を表す。また、鉛直下向き加速度の極小点間、即ち、鉛直上向き加速度の極大点間は、歩行者の一歩を表す。図4bによれば、前進加速度は、加速減速を繰り返すと同時に、前後上下を繰り返すことが理解できる。[加速度面推定部]加速度面推定部103b2は、指定数分の加速度データから、歩行者の歩行動作によって生じる加速度面を推定する。図5は、現実に発生する加速度面及び右/左向きベクトルを表す図である。簡単化のために、重力方向を図の下方向としているが、重力そのものを検出することはできない。また、実際に、地磁気が、センサ座標系に対してどの方向に検出されるかは、端末の姿勢に依存する。但し、加速度面と法線ベクトル右/左向きベクトルの関係については、端末の姿勢には依存しない。図5によれば、加速度センサから得られた3軸の加速度データx、y、zと、地磁気センサから得られた3軸の地磁気データx、y、zとが、3次元座標系にプロットされたものである。異なる時点で測定された加速度データのプロットから、加速度面を検出できる。また、加速度面に対する右/左向きベクトルを検出することができる。図5によれば、歩行者は、南から到来している地磁気に対して、方向角θの方向へ歩行している。このとき、携帯端末をズボンのポケットに挿入した歩行者の動作に応じて、進行方向に平行に加速度面が検出でき、右/左向きベクトルが特定される。本発明によれば、複数の加速度データを平面に近似することによって、右/左向きベクトル法線ベクトルを算出することができる。加速度面を近似的に算出する方法としては、例えば、最小二乗法がある。最小二乗法は、残差の2乗の和が最小になるように、その現象に対し、予測関数fのそれぞれの係数を決定する方法である。残差とは、i番目のデータniに対して予測された関数値fと、測定されたデータmiとの差、即ちmi-fである。一般に原点を通る平面は、以下の式1によって表される。axbycz=0式1このとき、a,b,cは、平面に対する法線ベクトルとなる。ここで、計算を単純化するために、式1を、式2のように変形する。z=αxβy式2尚、a,b,cは法線ベクトルであるため、c=-1として問題無い。n個の点群xi,yi,zii=1~nが与えられたとき、以下の式3が最小となるα及びβを算出すればよい。S=Σi1n2式3ここで、以下のように規定したとする。A=Σi1nB=Σi1nC=Σi1nD=Σi1nE=Σi1nF=Σi1nこのとき、式3は、以下のような式4になる。S=Aα2Bβ2C2αβD-2αE-2βF式4式4をαの関数とみたとき、凹型の2次関数となり、極小点値が最小となる。これは、βにおいても同様である。即ち、Sをα、βに関して偏微分し、0となる点が求める解となる。式5及び式6を解くと、以下の式7及び式8のように算出できる。α=BE-DF/AB-D2式7β=AF-DE/AB-D2式8前述したように、法線ベクトルはα,β,-1である。また、加速度面を推定する他の実施形態として、前述した式2によれば、z軸方向の残差が最小となるように加速度平面を算出している。しかしながら、残差最小とする軸は、分散の小さな軸を選択することが好ましい。残差最小とする軸を選択するために、例えば、以下の2つの方法がある。1指定数分加速度について、各軸の分散Vxx、Vyy及びVzzを算出し、その分散が最小となる軸について、最小二乗法に基づいて加速度面を推定する。Vxx=1nΣi1n2Vyy=1nΣi1n2Vzz=1nΣi1n2n:データの個数x ̄:xの平均値23軸の中で、右/左向きベクトルUの向きに最も近い軸について、最小二乗法に基づいて加速度面を推定する。尚、ここでは、右/左向きベクトル算出部103aと同様の処理によって右向きベクトルを算出する。例えば、前述した図4のグラフの場合、以下のような数値となる。遊脚期の開始を示す加速度ベクトル:F=150,015,014遊脚期の終了を示す加速度ベクトル:B=106,021,069加速度面の右方を示す右向きベクトル:U=013,118,016この場合、右向きベクトルの方向に最も近い軸として、y軸が選択される。尚、加速度面推定部103b2は、加速度データに対して、高域周波数成分を遮断するローパスフィルタとして機能することも好ましい。これによって、異常値としての加速度データを除去することができ、正確な進行方向を算出することができる。[前後方向加速度算出部]前後方向加速度算出部103b3は、加速度面及び鉛直方向加速度から、当該加速度面における右/左向きベクトル法線ベクトルと、前後方向加速度とを算出する。具体的には、以下のS1~S3のステップを有する。S1前後方向加速度算出部103b3は、最初に、加速度センサから出力された軸毎の加速度に基づいて、重力ベクトルGを算出する。図6は、重力G及び地磁気Mに対する方位の関係を表す説明図である。重力ベクトルG及び地磁気ベクトルMは、x軸、y軸及びz軸毎に、以下のように表される。尚、歩行中の携帯端末の姿勢は大凡一定であるとは限らないが、短時間に観測される地磁気データは、ほぼ一定となる。重力ベクトルG:G=gx、gy、gz地磁気ベクトルM:M=mx、my、mz最初に、重力ベクトルGを算出する。歩行時における携帯端末の重力方向は、加速度データを用いても、歩行毎に正確に決定することは困難である。そこで、所定時間範囲に検出された多数のx軸、y軸及びz軸の加速度データを用いて、これら各軸の加速度の和のベクトルの向きを、重力方向とみなす。i番目の各軸の加速度を、以下のように表す。x軸の加速度:ACCxiy軸の加速度:ACCyiz軸の加速度:ACCzin個の加速度データの和は、以下のように表される。ACCSx=Σi1NACCxiACCSy=Σi1NACCyiACCSz=Σi1NACCziそして、重力ベクトルGは、以下のように表される。G==S2次に、前後方向加速度算出部103b3は、加速度面の法線ベクトルVLR及び重力ベクトルGから、前向き又は後向きの前後方向ベクトルVFGを算出する。ここで、加速度面の法線ベクトルVLR及び重力ベクトルGと、前後方向ベクトルVFGとは、以下のような関係式で表される。VFG=VLR×G×:クロス積前後方向ベクトルVFG向きの単位ベクトルを、以下のように表す。eFB=eFBx,eFBy,eFBzこのとき、前後方向加速度AFGは、以下のように表される。AFG=eFGx×AxeFGy×AzeFGz×AzAFGは、前向き又は後向きの加速度である。S3次に、前後方向加速度算出部103b3は、前後方向ベクトルVFG及び遊脚期の終了を示す加速度に基づいて、右向きベクトル法線ベクトルの向きを決定する。前後方向ベクトルVFG:前向き法線ベクトルVLR:右向き前後方向ベクトルVFG:後向き法線ベクトルVLR:左向き-前向き又は後向きのいずれかは、遊脚期の終了を示す加速度の向きを後として決定できる。遊脚期における歩行者の足は、後から前へ運ばれる。従って、ズボンのポケットに挿入された携帯端末は、振り子状に円弧を描いて運動する。そのために、携帯端末が前方にあるとき、加速度は、前後方向の後向きに検出される。尚、3軸の中で、右/左向きベクトルUの向きに最も近い軸について、最小二乗法に基づいて加速度面を推定した場合には、右/左向きベクトルUと法線ベクトルVLRに基づいて、右/左向きベクトル法線ベクトルの向きを決定する。<進行方向算出部104>進行方向算出部104は、右/左向きベクトルUと、重力ベクトルGと、地磁気ベクトルMとを用いて、進行方向を算出する。算出された進行方向は、表示制御部15へ出力される。具体的には、以下のS1~S3のステップを有する。S1最初に、進行方向算出部104は、重力ベクトルG及び地磁気ベクトルMを用いて、G×M/|G×M|によって東向き単位ベクトルeEastを算出する。再び、図6を参照する。次に、例えばx軸、y軸、z軸が右手系であると想定すると、各向きの単位ベクトルは、以下のように表される。北向き単位ベクトルeNorth:eNorth=東向き単位ベクトルeEast:eEast=下向き単位ベクトルeDown:eDown=また、加速度データは、以下のように表される。A=Ax、Ay、Az図6によれば、重力ベクトルG及び地磁気ベクトルMとした場合、各単位ベクトルは、以下のように表される。北向き単位ベクトルeNorth:eNorth=G×M×G/|G×M×G|東向き単位ベクトルeEast:eEast=G×M/|G×M|下向き単位ベクトルeDown:eDown=G/|G|×:クロス積ベクトル積、外積G×M外積とは、重力ベクトルGと地磁気ベクトルMとによって作られる平面に対して垂直な方向のベクトルを作る。重力ベクトルGの方向を向いて見ると、地磁気ベクトルMから見て時計回りの方向にG×Mが伸びる。地磁気ベクトルMは、南から北へ向いているので、その軸から時計回りに90度となる方向、即ち、G×Mは、東の方位を向く。また、G×M×Gとは、東向きベクトルG×Mと重力ベクトルGとによって作られる平面に対して垂直な方向のベクトルを作る。東向きベクトルG×Mを向いて見ると、重力ベクトルから見て時計回りの方向にG×M×Gが伸びる。重力ベクトルは、上から下へ向いているので、その軸から時計回りに90度となる方向、即ち、G×M×Gは、北の方位を向く。尚、各向きの加速度ベクトルは、各向きの単位ベクトルeに対して加速度ベクトルAの内積をとることによって算出される。北向き加速度:AN=eNx×AxeNy×AyeNz×Az東向き加速度:AE=eEx×AxeEy×AyeEz×Az鉛直下向き加速度:AD=eDx×AxeDy×AyeDz×AzS2次に、進行方向算出部104は、法線ベクトルにおける右向き単位ベクトルeRightと、東向き単位ベクトルeEastとの成す角αを算出する。2つのベクトルの成す角は、内積とノルムベクトルの大きさ積から算出できる。東向き単位ベクトルeEast及び右向き単位ベクトルeRightから、両ベクトルの成す角αは、以下の式で表される。α=arccos/式9S3そして、進行方向算出部104は、方位角θを求める。ここで、成す角αは、劣角である0~180度。これに対し、求める方位角θは、0~360度北方位を0度とした時計回りの角度であり、優角を含む。そのため、成す角を方位角に変換する。図7は、成す角と方位角の関係を表す説明図である。図7によれば、東向き単位ベクトルeEastと右向き単位ベクトルeRightの外積ベクトルeEast×eRightによれば、東向き単位ベクトルeEastに対する方向角θが180未満のとき、重力ベクトルと同一方向を示す。このとき、θ=αである。一方で、θが180度以上になるべきときには、eEast×eRightは、重力ベクトルと逆方向を示す。このとき、θ=360-αである。そのため、eEast×eRightと重力ベクトルGの成す角を求め角度ではなく余弦でもよい、その結果に基づいてαをθに変換する。東向き単位ベクトルeEastに対する方向角θは、eEast×eRightと重力ベクトルGとの成す角をβとを用いて、以下の式によって導出される。cosβ≧0:θ=αcosβ<0:θ=360-α以上、詳細に説明したように、本発明の携帯端末、プログラム及び方法によれば、歩行者が、携帯端末をズボンのポケットのような衣服に入れている場合であっても、その携帯端末に搭載された加速度センサ及び地磁気センサを用いて、歩行者の進行方向をできる限り正確に決定することができる。特に、携帯端末が、歩行者の下半身部分の衣服に身につけられた際に、歩行者の進行方向をできる限り決定することができる。前述した本発明の種々の実施形態について、本発明の技術思想及び見地の範囲の種々の変更、修正及び省略は、当業者によれば容易に行うことができる。前述の説明はあくまで例であって、何ら制約しようとするものではない。本発明は、特許請求の範囲及びその均等物として限定するものにのみ制約される。"