磁界を発生させる部品を備えた機器に組み込まれ、互いに直交する3方向の磁気成分をそれぞれ検出する3次元磁気センサと、前記3次元磁気センサから、3軸の座標系において表現される3次元のベクトルデータとして順次出力される磁気データを蓄積する蓄積手段と、前記蓄積手段に蓄積された前記複数の磁気データに基づいて、前記磁気データのうち前記部品の発生する磁界の成分を表す3軸の座標であるオフセットを、旧オフセットから新オフセットに更新するオフセット更新手段と、を備え、前記オフセット更新手段は、前記複数の磁気データの各々で示される3軸の座標として特定されるそれぞれの位置が、球面近傍に確率的に分布すると仮定した場合の、前記複数の磁気データで示される3軸の座標により特定されるそれぞれの位置と前記球面との誤差を第1誤差とし、前記複数の磁気データの分散を表す共分散行列の最小固有値に対応する正規化された固有ベクトルと前記旧オフセットから見た前記球面の中心の座標を示す更新ベクトルとの内積に第1係数を乗じた値を第2誤差とし、前記共分散行列の中間固有値に対応する正規化された固有ベクトルと前記更新ベクトルとの内積に対して第2係数を乗じた値を第3誤差とし、前記第1誤差、前記第2誤差、及び前記第3誤差を要素とするベクトルを誤差ベクトルとしたときに、前記誤差ベクトルの大きさを最小化する前記球面の中心の座標を新オフセットとして採用する、ことを特徴とする磁気データ測定装置。前記磁気データで示される3軸の座標は、前記複数の磁気データで示される座標の平均値を表す座標を原点とする座標系において表される、ことを特徴とする、請求項1に記載の磁気データ測定装置。前記中間固有値に対応する正規化された固有ベクトルを3次元のベクトルu2で表し、前記最小固有値に対応する正規化された固有ベクトルを3次元のベクトルu3で表し、Nを3以上の自然数として、前記複数の磁気データで示される座標を3次元のベクトルqii=1、2、...、Nで表し、前記旧オフセットを3次元のベクトルc0で表し、前記複数の磁気データで示される座標の平均値を表す座標を3次元のベクトルqcで表し、前記第1係数をβとし、前記第2係数をαとしたとき、前記誤差ベクトルは、以下のδで表され、前記新オフセットは、3次元のベクトルである変数xにより表される以下の目的関数f2xを最小化する前記変数xであり、3元1次連立方程式A2x-qc=X2Tj2の解であることを特徴とする請求項2に記載の磁気データ測定装置。前記第1係数は、前記最小固有値の関数である、ことを特徴とする、請求項1乃至3のうちいずれかの1項に記載の磁気データ測定装置。前記中間固有値をλ2とし、前記最小固有値をλ3とし、kα及びkβを正の定数としたとき、前記第1係数は以下のβで表され、前記第2係数は以下のαで表される、ことを特徴とする、請求項1乃至4のうちいずれかの1項に記載の磁気データ測定装置。磁界を発生させる部品を備えた機器に組み込まれ、互いに直交する3方向の磁気成分をそれぞれ検出する3次元磁気センサと、前記3次元磁気センサから、3軸の座標系において表現される3次元のベクトルデータとして順次出力される磁気データを蓄積する蓄積手段と、を備える磁気データ測定装置に用いられ、前記蓄積手段に蓄積された前記複数の磁気データに基づいて、前記磁気データのうち前記部品の発生する磁界の成分を表す3軸の座標であるオフセットを、旧オフセットから新オフセットに更新するオフセット更新方法であって、前記複数の磁気データの各々で示される3軸の座標として特定されるそれぞれの位置が、球面近傍に確率的に分布すると仮定した場合の、前記複数の磁気データで示される3軸の座標により特定されるそれぞれの位置と前記球面との誤差を第1誤差とし、前記複数の磁気データの分散を表す共分散行列の最小固有値に対応する正規化された固有ベクトルと前記旧オフセットから見た前記球面の中心の座標を示す更新ベクトルとの内積に第1係数を乗じた値を第2誤差とし、前記共分散行列の中間固有値に対応する正規化された固有ベクトルと前記更新ベクトルとの内積に対して第2係数を乗じた値を第3誤差とし、前記第1誤差、前記第2誤差、及び前記第3誤差を要素とするベクトルを誤差ベクトルとしたときに、前記誤差ベクトルの大きさを最小化する前記球面の中心の座標を新オフセットとして採用する、ことを特徴とするオフセット更新方法。磁界を発生させる部品を備えた機器に組み込まれ、互いに直交する3方向の磁気成分をそれぞれ検出する3次元磁気センサと、前記3次元磁気センサから、3軸の座標系において表現される3次元のベクトルデータとして順次出力される磁気データを蓄積する蓄積手段と、を備える磁気データ測定装置に用いられ、前記蓄積手段に蓄積された前記複数の磁気データに基づいて、前記磁気データのうち前記部品の発生する磁界の成分を表す3軸の座標であるオフセットを、旧オフセットから新オフセットに更新するオフセット更新プログラムであって、前記複数の磁気データの各々で示される3軸の座標として特定されるそれぞれの位置が、球面近傍に確率的に分布すると仮定した場合の、前記複数の磁気データで示される3軸の座標により特定されるそれぞれの位置と前記球面との誤差を第1誤差とし、前記複数の磁気データの分散を表す共分散行列の最小固有値に対応する正規化された固有ベクトルと前記旧オフセットから見た前記球面の中心の座標を示す更新ベクトルとの内積に第1係数を乗じた値を第2誤差とし、前記共分散行列の中間固有値に対応する正規化された固有ベクトルと前記更新ベクトルとの内積に対して第2係数を乗じた値を第3誤差とし、前記第1誤差、前記第2誤差、及び前記第3誤差を要素とするベクトルを誤差ベクトルとしたときに、前記誤差ベクトルの大きさを最小化する前記球面の中心の座標を新オフセットとして採用する処理を、コンピュータに実行させるオフセット更新プログラム。ところで、特許文献1に開示されたオフセット算出方法は、計算量が多いため、オフセット算出の高速化が困難であり、また、オフセット算出に多くのメモリを使用するという課題が存在した。そこで、本発明は上述した事情を鑑み、3次元磁気センサが搭載された機器の姿勢変化が不十分な場合にも、簡易な計算で高速に正確なオフセットを算出することを解決課題とする。以下、本発明について説明する。なお、本発明の理解を容易にするために本実施形態及び添付図面の参照符号を括弧書きにて付記するが、それにより本発明が本実施形態に限定されるものではない。上述した課題を解決するため、本発明に係る磁気データ測定装置は、磁界を発生させる部品を備えた機器1に組み込まれ、互いに直交する3方向の磁気成分をそれぞれ検出する3次元磁気センサ60と、前記3次元磁気センサ60から、3軸の座標系において表現される3次元のベクトルデータとして順次出力される磁気データq1~qNを蓄積する蓄積手段20と、前記蓄積手段20に蓄積された前記複数の磁気データq1~qNに基づいて、前記磁気データq1~qNのうち前記部品の発生する磁界の成分Biを表す3軸の座標であるオフセットcを、旧オフセットc0から新オフセットc1に更新するオフセット更新手段と、を備え、前記オフセット更新手段は、前記複数の磁気データq1~qNの各々で示される3軸の座標として特定されるそれぞれの位置が、球面近傍に確率的に分布すると仮定した場合の、前記複数の磁気データq1~qNで示される3軸の座標により特定されるそれぞれの位置と前記球面との誤差を第1誤差δ1とし、前記複数の磁気データq1~qNの分散を表す共分散行列Aの最小固有値λ3に対応する正規化された固有ベクトルu3と前記旧オフセットc0から見た前記球面の中心の座標を示す更新ベクトルkとの内積に第1係数βを乗じた値を第2誤差δ3とし、前記共分散行列Aの中間固有値λ2に対応する正規化された固有ベクトルu2と前記更新ベクトルとの内積に対して第2係数αを乗じた値を第3誤差δ2とし、前記第1誤差δ1、前記第2誤差δ3、及び前記第3誤差δ2を要素とするベクトルを誤差ベクトルδとしたときに、前記誤差ベクトルδの大きさを最小化する前記球面の中心の座標を新オフセットc1として採用する、ことを特徴とする。磁界を発生させる部品を備えた機器に組み込まれる3次元磁気センサは、部品からの内部磁界の影響を受ける。正確な地磁気を検出するためには、内部磁界をキャンセルするために3次元磁気センサから出力される磁気データにオフセットを用いた補正を施す。オフセットを算出するためには、複数の磁気データが3次元的に球面近傍に分布するように機器を動かすことが望ましい。しかしながら、機器の動かし方によっては、複数の磁気データが2次元的に分布したり、1次元的に分布することもあり得る。この発明によれば、第1誤差を含む誤差ベクトルの大きさを最小化するため、新オフセットは、複数の磁気データで示される座標を表面近傍に有する球面の中心の座標としての意味を有する。しかし、複数の磁気データが理想的に2次元的に分布する場合、第1誤差のみを考慮して第2誤差及び第3誤差を無視して、誤差ベクトルの大きさを最小化しても、誤差ベクトルを最小化する点として与えられる球面の中心の座標つまり、新オフセットは、磁気データが分布する2次元平面に直交するある直線上の任意の点となり、1点に特定することができない。磁気データは3軸の座標を示すので、複数の磁気データの分散を表す共分散行列は、3行3列の行列となる。この共分散行列から3つの固有ベクトルと3つの固有値が得られる。3つの固有ベクトルの一つは、複数の磁気データが最も大きく分布する方向を表している。この固有ベクトルに対応する固有値は最大固有値となり、逆に、複数の磁気データが最も小さく分布する方向の固有ベクトルに対応する固有値が最小固有値となる。複数の磁気データが理想的に2次元的に分布する場合、最小固有値の値は0に限りなく近い値を有し、最小固有値に対応する固有ベクトルと、複数の磁気データが分布する2次元平面に直交する直線とは、平行になる。この場合、第1誤差のみを考慮して誤差ベクトルの大きさを最小化する点は、最小固有値に対応する固有ベクトルと平行なある直線上の任意の点となるため、当該点が示す座標は、最小固有値に対応する固有ベクトル方向についての情報を有さないまたは不正確な情報しか有さない。第2誤差は、最小固有値に対応する固有ベクトルと、旧オフセットから見た新オフセットの座標を示す更新ベクトルとの内積に第1係数を乗じた値である。この第2誤差を0に限りなく近づける場合かつ、第1係数が一定の大きさを有する場合、最小固有値に対応する固有ベクトルと更新ベクトルとは直交し、更新ベクトルは、最小固有値に対応する固有ベクトル方向の成分を含まないことになる。そして、複数の磁気データが理想的に2次元的に分布する場合、第1誤差の他に第2誤差も考慮して誤差ベクトルの大きさを最小化する点を新オフセットとすることで、旧オフセットを新オフセットに更新する更新ベクトルは、不正確な情報最小固有値に対応する固有ベクトル方向の成分を含まない、正確な情報のみに基づいて生成されたベクトルとなる。従って、複数の磁気データの分布がある方向につぶれて2次元的に分布する場合には、第1誤差及び第2誤差を考慮した誤差ベクトルを最小化する点を新オフセットとすることで、正確な情報に基づいたオフセット更新が可能となる。さらに、複数の磁気データの分布がさらにつぶれて1次元的に分布する場合は、中間固有値について最小固有値と同様に扱えばよい。第3誤差は、中間固有値に対応する固有ベクトルと更新ベクトルとの内積に対して第2係数を乗じた値であるから、第3誤差が0に限りなく近い値となるように新オフセットを定めたとすれば、中間固有値に対応する固有ベクトルの成分は更新ベクトルに反映されない。これにより、更新ベクトルの精度を向上させることができる。このように、本発明は、第1誤差、第2誤差、及び第3誤差を要素とする誤差ベクトルの大きさを最小化するように新オフセットを算出するから、複数の磁気データが2次元的あるいは1次元的に分布する場合に、信頼性の低い方向については、更新ベクトルの成分を小さくし、新オフセットに反映させる度合いを調整する。つまり、信頼性の低い方向については、旧オフセットを利用する。これによって、新オフセットの精度を大幅に向上させることができる。また、上述した磁気データ測定装置において、前記磁気データで示される3軸の座標は、前記複数の磁気データで示される座標の平均値を表す座標を原点とする座標系において表される、ことが望ましい。この発明によれば、複数の磁気データで示される座標を、複数の磁気データで示される座標の平均値を表す座標以下、重心と呼ぶを原点とする重心座標系から見たベクトルとして表現したうえで新オフセットの算出を行った。複数の磁気データで示される座標は、重心を中心に広がりを有して分布している。従って、複数の磁気データで示される座標を重心座標系の原点から表したベクトルの大きさは、センサ座標系の原点から表したベクトルの大きさに比べて小さくなる傾向がある。これにより、複数の磁気データで示される座標を表すデータの値を小さくすることが可能でありメモリサイズの小さい変数型で表現することが可能である。このように、本発明の磁気データ測定装置は、新オフセットの算出に要するメモリ使用量の低減化が可能であるという利点を有する。また、上述した磁気データ測定装置において、前記中間固有値に対応する正規化された固有ベクトルを3次元のベクトルu2で表し、前記最小固有値に対応する正規化された固有ベクトルを3次元のベクトルu3で表し、Nを3以上の自然数として、前記複数の磁気データで示される座標を3次元のベクトルqii=1、2、...、Nで表し、前記旧オフセットを3次元のベクトルc0で表し、前記複数の磁気データで示される座標の平均値を表す座標を3次元のベクトルqcで表し、前記第1係数をβとし、前記第2係数をαとしたとき、前記誤差ベクトルは、以下のδで表され、前記新オフセットは、3次元のベクトルである変数xにより表される以下の目的関数f2xを最小化する前記変数xであり、3元1次連立方程式A2x-qc=X2Tj2の解であることが望ましい。この発明によれば、新オフセットを、3元1次連立方程式A2x-qc=X2Tj2の解として算出することできる。5元1次連立方程式を解くことでオフセットを算出していた特許文献1に開示されたオフセット算出方法に比べて、本発明における新オフセット算出方法は、演算回数を約22に抑えることが可能となった。これにより、新オフセット算出の更なる高速化が可能となるとともに、新オフセット算出に必要なメモリ使用量の低減化が可能となった。すなわち、本発明の磁気データ測定装置は、メモリサイズの小さな簡易な機器に対しても実装が可能であるという利点を有すると共に、オフセット算出の高速化が可能であるという利点を有する。また、上述した磁気データ測定装置において、前記第1係数は、前記最小固有値の関数であることが望ましい。この発明によれば、第1係数を最小固有値の関数とするので、最小固有値に応じて第1係数を定めることができる。最小固有値は、複数の磁気データの3次元的な分布の程度の指標と考えることができるので、3次元的な分布の程度に応じて、最小固有値に対応する固有ベクトル方向の成分を更新ベクトルへ反映させる程度を調整することができる。例えば、最小固有値の関数は、最小固有値が大きな値になるにつれ、第1係数が0に漸近するものであってもよい。あるいは、第1係数は2値で与えられ、最小固有値が閾値以上の場合に第1値となり、最小固有値が閾値未満の場合に第2値としてもよい。ここで、第1値は第2値よりも小さく0に近い値とすればよい。これらの場合、最小固有値が大きな値のときには、第1係数が0に近い値となる。第2誤差を最小化して新オフセットを算出するときに、更新ベクトルと最小固有値に対応する固有ベクトルとの内積が0ではない大きな値を有していたとしても、第1係数が0に近い値であれば、第2誤差を最小化することができる。すなわち、最小固有値が大きな値を有し、最小固有値に対応する固有ベクトル方向の情報の正確性が高い場合には、当該方向の成分を、更新ベクトルに反映させることができる。一方、最小固有値が小さな値の場合、第1係数は大きな値となる。この場合、更新ベクトルと最小固有値に対応する固有ベクトルとが直交し、それらの内積が0に近い小さな値をとならい限りは、第2誤差を最小化することは出来ない。このように、第2誤差により表現される、固有ベクトルと更新ベクトルとが直交するという制約条件は、最小固有値の大きさに基づいて緩和される。従って、新オフセットは、3次元磁気センサから出力される複数の磁気データにより算出される球面の中心点の座標の有する情報のうち、最小固有値に対応する固有ベクトル方向の情報が正確である場合にはこれを利用し、不正確である場合にはこれを利用しないことが可能となる。同様に、中間固有値に対応する固有ベクトル方向の情報についても、その情報の正確さに応じた利用をすることを可能となる。このように、本発明の磁気データ測定装置は、3次元磁気センサから出力される複数の磁気データにより算出される球面の中心点の座標の有する情報のうち、正確な情報に基づいて新オフセットを算出することが可能となり、正確なオフセットによる正確な地磁気の算出を可能にするという利点を有する。また、上述した磁気データ測定装置において、前記中間固有値をλ2とし、前記最小固有値をλ3とし、kα及びkβを正の定数としたとき、前記第1係数は以下のβで表され、前記第2係数は以下のαで表される、ことが好ましい。この発明によれば、最小固有値λ3及び中間固有値λ2の大きさに応じて、第1係数β及び第2係数αの値が決定されるため、複数の磁気データにより算出される球面の中心点の座標の有する情報を、固有ベクトル方向の情報の正確さに応じて利用をすることを可能とする。このように、本発明の磁気データ測定装置は、3次元磁気センサから出力される複数の磁気データにより算出される球面の中心点の座標の有する情報のうち、正確な情報に基づいて新オフセットを算出することが可能となり、正確なオフセットによる正確な地磁気の算出を可能にするという利点を有する。以下、本発明の実施の形態を説明する。[1.3次元磁気センサが検出する磁界の概要]図1に示すように、本実施形態では、3次元磁気センサ60が検出する磁界として、検出対象である地磁気Bgの他に、3次元磁気センサが搭載される機器の部品が発する磁界である内部磁界Biが存在する場合を想定する。地磁気Bgは、磁極北に向かう水平成分と伏角方向の鉛直成分とを有するベクトルであり、一様な向き及び大きさを有する磁界である。厳密には、地磁気Bgの向き及び大きさは地域によって異なるが、例えば異なる都市に移動する等の大きな移動をしない場合には一様な向き及び大きさを有する。内部磁界Biは、機器1の部品が発する磁界であり、内部磁界Biの向きは、機器1から見て一定の方向を有する。すなわち、機器1上に搭載された3次元磁気センサ60から見た場合、機器1の姿勢をどのように変化させても、内部磁界Biは、一定の方向及び大きさを有する磁界として検知される。例えば、利用者が機器1を手で持って手首を回すと、機器1の姿勢が変化する。このとき、地磁気Bgは機器1の姿勢に関わらず常に磁極北を向いているので、3次元磁気センサ60で検出される地磁気Bgの3軸各々の成分は変化する。一方、3次元磁気センサ60において3次元磁気センサ60と内部磁界を発生する部品との相対的な位置関係は固定であるから、機器1の姿勢を変化させても、内部磁界Biの3軸各々の成分は一定である。説明の便宜上、図1に示すような地上座標系ΣG及びセンサ座標系ΣSを導入する。地上座標系ΣGは、地上に固定された座標系であり、互いに直交する3つの方向、例えば、東、北、及び鉛直上向きを、それぞれx軸、y軸、及びz軸とする座標系である。ここで、地上座標系ΣGから見たときの3次元磁気センサ60の姿勢を姿勢θsと表現する。センサ座標系ΣSは3次元磁気センサ60に固定され、3次元磁気センサ60の位置に原点を有し、3次元磁気センサ60の各々のセンサモジュールが検出する方向をそれぞれx軸、y軸、z軸とする座標系である。つまり、地上座標系ΣGから見た場合、センサ座標系ΣSの姿勢は姿勢θsとなる。このように、センサ座標系ΣSは、3次元磁気センサ60の有する3つのセンサモジュールが出力する値を、それぞれ、x軸、y軸、z軸上にプロットするように設けられた座標系であり、3次元磁気センサ60が出力する磁気データは、センサ座標系ΣSのベクトルデータとして表現される。地磁気Bg及び内部磁界Biが、3次元磁気センサ60によってどのような値として検知されるかについて、図2を用いて説明する。図2は、3次元磁気センサ60の姿勢θsをθ1~θNと変化させつつ磁界をN回測定した場合に、3次元磁気センサ60が出力するN個の磁気データq1~qNを、センサ座標系ΣSにおいてプロットした図である。ここで、Nは精度よくオフセットを導出するために必要な磁気データの規定測定回数を表す3以上の自然数である。内部磁界Biは、一定の方向及び大きさを持つベクトルSBiとして表現される。ここで、センサ座標系ΣSにおけるベクトルSBiが示す座標を中心点x0とする。一方、地磁気Bgは、センサ座標系ΣSにおいて、大きさは一定であるが、向きは3次元磁気センサ60の姿勢θsに伴い変化する。つまり、地磁気Bgは、センサ座標系ΣSにおいて、3次元磁気センサ60の姿勢θsに連動して向きを変化させる一定の大きさのベクトルSBgθsとして表現され、θsを変化させた場合には、ある点を中心とする球面上に位置することになる。3次元磁気センサ60が出力する磁気データq1~qNは、内部磁界Biと地磁気Bgとの和として出力される。従って、磁気データq1~qNによって示される座標は、センサ座標系ΣSにおいて、x0を中心点とし、地磁気Bgの大きさを半径とする、球面SBG上に分布することになる。なお、3次元磁気センサ60は、測定誤差を有するため、磁気データq1~qNで示される座標は、厳密には、球面S上には存在せず、球面Sの近傍に確率的に分布することになる。このような磁気データq1~qNから、球面Sの中心点x0の座標を計算することで、内部磁界を表すベクトルSBiを求めることができ、3次元磁気センサ60の出力値である磁気データq1~qNから内部磁界SBiを引き算することにより、地磁気SBgの正確な値を計算することが可能となる。このように、球面Sの中心点x0は、3次元磁気センサ60のオフセットとしての意味を有する。なお、本実施形態における、オフセット算出方法は、球面Sの中心点x0をそのままオフセットとして採用するものではないが、球面Sの中心点x0で示される座標の有する情報を利用してオフセットを算出するものである。そこで、本実施形態におけるオフセット算出の前提となる球面Sの中心点x0の算出方法について、以下に説明する。[2.球面の中心点の算出]図3を参照しながら、3次元磁気センサ60が出力するN個の磁気データq1~qNに基づいて、球面Sの中心点x0を算出する方法について説明する。ここでは、前述の通り、磁気データq1~qNは、内部磁界Biの他には、地磁気Bg等の均一な磁界のみを検知している場合を想定する。地磁気Bgの大きさをrと仮定したとき、複数の磁気データq1~qNで示される座標は、センサ座標系ΣSにおいて、中心点x0を中心とする半径rの球面Sの表面近傍に確率的に分布する。つまり、各磁気データqii=1、2、...Nと、球面Sの中心点x0との距離はrであるため、以下の式1~3が成立する。ここで、複数の磁気データq1~qNの重心をqcとし、重心qcを原点とする重心座標系ΣCを導入する。なお、重心qcは、式4及び5で表される。この場合、センサ座標系ΣSにおいて表現された磁気データqi及び中心点x0と、重心座標系ΣCにおいて表現された磁気データCqi及び中心点Cx0との間に、以下の式6及び式7の関係が成立する。センサ座標系ΣSにおける球面の方程式1は、重心座標系ΣCにおいて式8として表現される。そして、式8に対して、式6及び7を代入することで、式9が得られる。式9のqiに対して、磁気データq1~qNの各々を代入した結果を、磁気データの個数Nで割り算することにより、以下の式10を得ることができる。そして、式10と、式9を展開した式11との差分を取ることで、変数qiに依存しない項を消去し、式12を得ることができる。式12は、磁気データが示す座標qiが中心点をx0とする球面S上に位置することを表す。このとき、式12の変数qiに対して、N個の磁気データq1~qNをそれぞれ代入することで得られるN個の方程式は、式13として表現される。なお、行列Xは式14に示されるN行3列の行列であり、ベクトルjは式15に示されるN次元ベクトルであり、変数Rは式16に示される値である。式13は、磁気データq1~qNで示される座標の全てが、中心点x0を中心とする球面S上に完全に一致する場合に解を有する。しかし、3次元磁気センサ60の測定誤差等を考慮すると、全ての磁気データq1~qNの座標が、球面Sと完全に一致する位置に存在することは無いため、式13は解を持たない。そこで、統計的な手法により尤もらしい解を得るために、式17で表される誤差を吸収するN次元ベクトルである誤差δ1を導入する。なお、式18に示されるxは3次元のベクトルにより表される変数である。誤差δ1のノルムを最小にするベクトルx、換言すれば、Tを最小化するようなベクトルxが、球面Sの中心点x0として尤もらしいものであるいえる。ここで、以下の式19で示される目的関数f1xを定義すると、目的関数f1xを最小化するxが、球面の中心点x0として尤もらしい値となる。中心点x0は、式21において示される3行3列の共分散行列Aが正則である場合には、式20により求めることができる。以上に示した方法により求められた中心点x0は、センサ座標系ΣSにおいて内部磁界Biを表したベクトルデータである。従って、このような中心点x0を求めることができれば、この中心点x0をオフセットcとして採用することができる。[3.磁気データ分布判定処理]球面Sの中心点x0を算出するためには、磁気データq1~qNがセンサ座標系ΣSにおいて3次元的な広がりを有して分布していることが必要である。例えば図4に示すように、磁気データq1~qNにより示される座標がセンサ座標系ΣSの平面π上に2次元的に分布する場合には、中心点x0を算出することはできない。平面π上の円πCの近傍に磁気データq1~qNが存在する場合、中心点x0は球面Sπ1の中心点x01であるかもしれないし、球面Sπ2の中心点x02であるかもしれない。つまり、中心点x0が、円πCの中心点を通り平面πに直交する直線πL上に存在することまでは特定可能であっても、直線πL上のどの位置に存在するかについて、具体的に特定することが出来ない。機器1が自動車等のように左右方向に姿勢変化する場合や、機器1が携帯電話等のようにユーザの手によって動かされるがその動かし方が不十分な場合には、機器1の姿勢変化は3次元的とはならず、2次元的または1次元的なものとなる。この場合、センサ座標系ΣSにおいて磁気データq1~qNで示される座標は、2次元的または1次元的に広がるため、中心点x0を算出することは出来ない。3次元磁気センサ60の測定誤差等の影響により、磁気データq1~qNがわずかに3次元的な広がりを有する場合には、中心点x0を算出することは可能である。しかし、このような中心点x0は、磁気データq1~qNに含まれる測定誤差の影響によって確率的に決定された座標に過ぎず、不正確なものとなる。例えば、図4の例では、磁気データq1~qNが、平面πに垂直方向の誤差を有して分布する場合、磁気データq1~qNより球面Sπ1の中心点x01が算出されたとしても、実際には、球面Sπ2の中心点x02が内部磁界Biを表す座標であるかもしれない。このような不正確な座標である中心点x0をオフセットcとして採用することは出来ない。磁気データq1~qNから正確な中心点x0を算出するためには、図5に示すように、センサ座標系ΣSにおいて磁気データq1~qNが3次元的に十分な広がりを持って分布していることが必要となる。磁気データq1~qNがどの程度3次元的に分布しているかについての判定は、式21に示される3行3列の共分散行列Aを用いて行うことができる。以下に共分散行列Aの性質を説明する。共分散行列Aの固有値を大きい順番に最大固有値λ1、中間固有値λ2、最小固有値λ3とし、それぞれの固有値に対応する大きさ1に正規化された固有ベクトルをu1、u2、u3とする。また、磁気データqiを、前述した重心qCを原点とする重心座標系ΣCにおいて表したベクトルをCqiと表す。このとき、固有値λjj=1、2、3は、固有ベクトルuj方向の分散σ2jに等しい。例えばj=1について考える。図5に示すように、固有ベクトルu1、u2、u3を、重心座標系ΣCの原点qCを起点となるように配置した場合、固有値λ1は、ベクトルCqiを、固有ベクトルu1へ射影した長さLi1の二乗Li12を、N個の磁気データCqii=1、2、...Nについて平均した値に等しくなる。つまり、固有値λ1は、N個の磁気データCqiが、重心qCから固有ベクトルu1方向にどの程度離れているかを表す指標であり、磁気データq1~qNの分布が固有ベクトルujの方向に対してどの程度の広がり有するかについて、対応する固有値λjの大きさに基づいて判断することができる。最小固有値λ3が小さな値の場合、固有ベクトルu3の方向には磁気データq1~qNは広がりを有さず、磁気データq1~qNから中心点x0の位置を算出したとしても固有ベクトルu3方向の情報は不正確なものとなる。これは、例えば図4において、直線πLの方向が、固有ベクトルu3の方向に相当し、中心点x0が直線πL上のどの位置に存在するかについて特定できないことを意味する。同様に、最小固有値λ3及び中間固有値λ2が共に小さな値となる場合は、中心点x0が示す座標のうち固有ベクトルu2及びu3方向の情報は不正確なものとなる。但し、磁気データq1~qNが2次元的に分布している場合、つまり最小固有値λ3が小さな値の場合であっても、中心点x0が示す座標のうち固有ベクトルu1及びu2の方向の情報は正確である。例えば、図4の場合において、中心点x0が直線πL上に存在することについては特定可能である。そこで、本実施形態では、磁気データq1~qNが十分に3次元的な広がりを有さずに分布する場合であっても、中心点x0が示す座標のうち、正確な情報を有する方向つまり、大きな値を有する固有値に対応する固有ベクトル方向の情報を、その正確性の程度固有値の大きさに応じて利用することにより、オフセットcを算出する。以下、本実施形態におけるオフセットcの算出方法について述べる。[4.機器構成及びソフトウェア構成]図6は、本発明の第1実施形態に係る機器1の構成を示すブロック図である。機器1は、各種の構成要素とバスを介して接続され装置全体を制御するCPU10、CPU10の作業領域として機能するRAM20、各種のプログラムやデータを記憶したROM30、通信を実行する通信部40、画像を表示する表示部50、地磁気を検出して地磁気データを出力する3次元磁気センサ60、を備える。3次元磁気センサ60は、X軸磁気センサ61、Y軸磁気センサ62、及びZ軸磁気センサ63を備える。各センサは、MI素子磁気インピーダンス素子、MR素子磁気抵抗効果素子などを用いて構成することができる。磁気センサI/F64は、各センサから出力信号をAD変換して磁気データを出力する。この磁気データは、X軸磁気センサ61、Y軸磁気センサ62、及びZ軸磁気センサ63からの出力を、センサ座標系ΣSにおけるベクトルデータとして、センサ座標系ΣSの、x軸、y軸およびz軸の3成分によって示される。CPU10は、ROM30に格納されている磁気データ処理プログラム70を実行することによって、3次元磁気センサ60の出力からオフセットを導出するとともに、正確な地磁気の向き及び大きさの出力を行う。表示部50は、磁気データ処理プログラム70により出力された地磁気の向きを示す方位情報を、矢印等によって表示する。なお、磁気データ処理プログラム70は、地図アプリケーション等との連携を想定し、磁気の向きを示す方位情報である矢印等を地図上に表示しても良い。CPU10、RAM20、3次元磁気センサ60、及び磁気データ処理プログラム70は、3次元磁気センサ60が検出する磁気データに基づき、正確な地磁気の向き及び大きさを示す地磁気データを算出する地磁気測定装置として機能する。この地磁気データは、地上座標系ΣGにおいて磁極北に向かう水平成分と伏角方向の鉛直成分とを有するベクトルを、センサ座標系ΣSのx軸、y軸およびz軸の3成分で示すベクトルデータとして出力される。磁気データ処理プログラム70は、バッファ管理モジュール71、オフセット導出モジュール72、及び方位導出モジュール73等のモジュール群で構成される。磁気データ処理プログラム70は、オフセットcを算出し、このオフセットc及び3次元磁気センサ60が検出する磁気データに基づいて、正確な地磁気データを算出する。なお、オフセットcは周期的に更新される。これは、機器1の内部状態が変化した場合、例えば、機器1に搭載された部品を流れる電流の大きさが変化した場合や、機器1に搭載された部品の着磁状況等の変化に伴い、内部磁界が変化するからである。このような内部磁界の変化を想定し、内部磁界を表すベクトルであるオフセットcを定期的に更新することによって、正確な地磁気を測定することが可能となる。以下、説明の便宜上、オフセットcの更新にあたり、更新前のオフセットcを旧オフセットc0と呼び、更新後のオフセットcを新オフセットc1と呼ぶ。バッファ管理モジュール71は、3次元磁気センサ60から順次出力される磁気データをバッファに蓄積する。これら複数の磁気データの蓄積手段としては、RAM20を用いる。オフセット導出モジュール72は、バッファ管理モジュール71に蓄積されている複数の磁気データに基づいて、新オフセットc1を算出し、オフセットcを、旧オフセットc0から新オフセットc1へと更新する。オフセットcの保持手段としては、RAM20を用いる。方位導出モジュール73は、3次元磁気センサから順次出力される磁気データを、オフセット導出モジュール72が保持するオフセットcにより補正して、正確な地磁気データを算出し、方位情報を生成する。なお、方位導出モジュール73は、適当な周期でバッファ管理モジュール71及びオフセット導出モジュール72を呼び出し、オフセット更新の指示を与える。[5.処理の流れ]図7は、オフセット算出処理の流れを示すフローチャートである。このフローチャートは、方位導出モジュール73が、バッファ管理モジュール71及びオフセット導出モジュール72を呼び出しオフセット更新の指示を与えた場合に実行される。方位導出モジュール73は、周期的にオフセット更新を指示する。ステップS100において、CPU10は初期化処理及び磁気データ取得処理を行う。初期化処理では、バッファ管理モジュール71が呼び出され、RAM20に記憶した磁気データが廃棄される。なお、本実施形態では、磁気データの全部を廃棄するが、RAM20に蓄積されたデータのうち古い方から一定割合のデータのみを廃棄しても良い。そして、磁気データ取得処理において、3次元磁気センサ60から出力されるN個の磁気データq1~qNを、RAM20に格納するNは精度よくオフセットを導出するために必要な磁気データの規定測定回数を表す3以上の自然数。ステップS101において、CPU10は磁気データ分布指標標算出処理を行う。磁気データ分布指標算出処理は、N個の磁気データq1~qNに基づいて、分布指標、つまり、前述した式21に示された共分散行列Aの固有値λ1~λ3及び固有ベクトルu1~u3を算出する処理である。このような分布指標を算出することにより、ステップS100でRAM20等に蓄積されたN個の磁気データq1~qNの分布、つまり、センサ座標系ΣSにおいて、磁気データq1~qNで示される座標が、3つの固有ベクトルu1~u3方向にどの程度の広がりを有するかについて知ることができる。ステップS102において、CPU10はオフセット更新処理を行う。オフセット更新処理は、ステップS100で得た磁気データq1~qN及びステップS101で得た分布指標に基づいて、オフセットcを、旧オフセットc0から新オフセットc1へと更新する処理である。以下において、ステップS102において行われるオフセット更新処理について説明する。[6.オフセット更新処理]前述の通り、内部磁界Biは機器1の内部状態が変化した場合に変化するものであるため、内部磁界Biを表すオフセットcは周期的に更新されることが必要である。磁気データq1~qNに基づいて算出される中心点x0は、磁気データq1~qNで示される座標が3次元的な広がりを有さない場合には不正確な情報となるため、これをオフセットcとしてそのまま採用することは出来ない。しかし、前述の通り、磁気データq1~qNで示される座標が3次元的な広がりを有さない場合であっても、中心点x0で示される座標のうち正確性の高い方向の情報については、オフセットcの決定に利用することは可能である。例えば、図8に示すような、図4と同様に磁気データq1~qNが平面π上の円πCの近傍に位置する場合を検討する。磁気データq1~qNにより示される座標は、磁気データq1~qNに含まれる測定誤差の影響により、円πCに完全には一致しない。この場合、磁気データq1~qNに基づいて球面Sの中心点x0が算出される。中心点x0は、前述の通り、磁気データq1~qNの有する測定誤差の影響により偶然に算出された値に過ぎず、直線πL上のどの位置に存在するかを特定することはできない。しかし、一方で、中心点x0が直線πL上に位置することは特定することができる。つまり、磁気データq1~qNの分散を表す共分散行列Aの固有値λ1及びλ2が十分に大きく、固有値λ3が非常に小さい場合に、磁気データq1~qNに基づいて算出された中心点x0を示す座標の情報のうち、固有ベクトルu1及びu2方向の情報については正確つまり、直線πL上に位置することは特定可能であるが、固有ベクトルu3方向の情報については不正確つまり、直線πL上のどの位置に存在するかは特定困難である。そこで、本実施形態では、新オフセットc1の算出にあたり、中心点x0で示される座標のうち正確性の高い方向の情報については中心点x0の情報を利用し、中心点x0で示される座標のうち正確性の低い方向については旧オフセットc0の情報を利用する。これにより、新オフセットc1を、中心点x0で示される座標のうち不正確な情報を用いずに算出することが可能になる。そして、このような旧オフセットc0を新オフセットc1に更新するベクトルc1-c0を、更新ベクトルkと呼ぶ。図8に示すように、磁気データq1~qNで示される座標の分布が2次元的である場合つまり固有値λ3が小さな値の場合、更新ベクトルkは、固有ベクトルu1及びu2の線形結合として表現され、固有ベクトルu3と直交する。従って、更新ベクトルkと固有ベクトルu3との間には以下の式23が成立する。また、磁気データq1~qNで示される座標の分布が1次元的である場合つまり固有値λ2及びλ3が小さい値の場合、更新ベクトルkは、固有ベクトルu1と平行となる。従って、更新ベクトルkと固有ベクトルu2及びu3とは直交するため以下の式22及び23の双方が成立する。式22、23で示される制約条件は、磁気データq1~qNで示される座標の分布が、3次元的な広がりを有さずに完全に押しつぶされた形状となる場合、つまり、固有ベクトルu2及びu3方向に広がりを有さず、完全に2次元空間内での分布または完全に1次元空間内での分布の場合を表す制約条件である。一方、磁気データq1~qNで示される座標の分布が、完全に押しつぶされること無く、固有ベクトルu2及びu3方向に広がりを有する場合、中心点x0の有する情報は、固有ベクトルu2及びu3方向について完全に欠落している訳ではない。このような場合は、更新ベクトルkと固有ベクトルu2及びu3とが常に直交する必要は無く、式22または23で示される制約条件は完全に満たされる必要はない。つまり、式22または23で示される制約条件は、磁気データq1~qNで示される座標の分布の広がりの小ささ、つまり固有値λ2またはλ3の小ささに応じて働かせればよい。そこで、式22または23で示した制約条件を緩和するために、式24で示す誤差δ2第3誤差及び25で示す誤差δ3第2誤差を導入する。誤差δ2は、式26で示す更新ベクトルkと固有ベクトルu2との内積ε2に対し、係数α第2係数を掛け算した値である。誤差δ3は、27で示す更新ベクトルkと固有ベクトルu3との内積ε3に対し、係数β第1係数を掛け算した値である。以下で、これらの式24~28の詳細を説明する。式26に示す内積ε2は、更新ベクトルkと固有ベクトルu2との内積を示す値であり、更新ベクトルkが固有ベクトルu2と直交する場合には0となるが、直交しない場合には0以外の値となる。式27に示す内積ε3についても同様に、更新ベクトルkと固有ベクトルu3との内積を示す。なお、更新ベクトルk=c1-c0は、式28に示す通り、新オフセットc1の位置を求めるための変数であるベクトルxの示す位置を、旧オフセットc0から表した位置ベクトルであるが、計算の便宜上、式13との整合を図り、ベクトルx及び旧オフセットc0を重心qcから見た位置ベクトルとして表現している。式24及び25に現れる係数α及びβは、式22または23で示した制約条件を緩和するための係数である。例えば、誤差δ2が十分小さな値になるように、更新ベクトルkを定める場合を考える。このとき、更新ベクトルkと固有ベクトルu2とが直交しない場合には内積ε2は大きな値を有することになるが、係数αを十分に小さな値例えば、0に限りなく近い値に設定することで、誤差δ2を十分小さな値にすることができる。一方、係数αが大きな値に設定されている場合には、更新ベクトルkと固有ベクトルu2とが互いに直交し内積ε2が0に近い小さな値にならない限り、誤差δ2も0に近い小さな値にはならない。すなわち、式24において係数αが十分に小さな値に設定される場合、更新ベクトルkと固有ベクトルu2とが直交するという式22に示した制約条件は緩和される。一方、式24において係数αを大きな値に設定する場合、式24は式22と同様の制約条件を与える式になる。同様に、式25において係数βが十分に小さな値に設定される場合、式23に示した更新ベクトルkと固有ベクトルu3とが直交するという制約条件は緩和され、係数βが大きな値に設定される場合、式25は式23と同様の制約条件を与える式になる。なお、図8に示されるように、磁気データq1~qNが2次元空間内で広く分布する場合は、係数βを十分に大きな値に設定して、式23に示した固有ベクトルu3方向の制約条件を十分に機能させる一方、係数αを0に近い値に設定して、式22に示した固有ベクトルu2方向の制約条件を機能させないようにすればよい。このような係数α及びβは、例えば、定数kα及びkβをkα>0、kβ>0を満たす実数として、以下の式29及び30に示すような、固有値λ2及びλ3の関数として定めることができる。この場合、例えば固有値λ2が大きな値の場合には、αは0に近い小さな値となり、固有値λ2が小さな値の場合には、αは1に近い大きな値となる。なお、本発明は係数α及びβは、式29及び30に示す固有値λ2及びλ3の関数に限定するものではない。例えば、係数αを固有値λ1及び固有値λ2の大きさの比率を変数とする関数とし、係数βを固有値λ1及び固有値λ3の大きさの比率を変数とする関数としても良い。この場合は、固有値λ2及びλ3が固有値λ1に比べて小さくなるに従って、係数α及びβの値を大きくするような関数であることが好ましい。また、係数α及びβは定数にしても良い。さらに、係数βは2値で与えられ、固有値λ3が閾値λ0以上となる場合には係数βは0に限りなく近い値となり、固有値λ3が閾値λ0未満となる場合には係数βは固有値λ3に比べて非常に大きな値となるように設定しても構わない。この場合、固有値λ3が閾値λ0未満の値となり、中心点x0の情報が固有ベクトルu3方向に正確性を有さないと判断される場合に、更新ベクトルkを、中心点x0の有する情報のうち正確性の高い固有ベクトルu1及びu2方向の情報のみを利用して生成することが可能となる。係数αについても係数βと同様に、固有値λ2と閾値λ0との大小比較の結果により値を定めても良い。なお、通常、磁気データq1~qNが2次元的に分布することは頻繁に起こりうるが、1次元的に分布することは極めて稀である。従って、係数αを常に0に限りなく近い値に固定しても良い。式17、24、及び25で示した誤差δ1~δ3を最小化するような新オフセットc1を算出するため、以下の式31に示す目的関数f2xを導入する。目的関数f2xは、誤差ベクトルδの大きさを表す関数である。誤差ベクトルδは、式32に示すように、誤差δ1~δ3を要素とするN2次元のベクトルである。前述の通り、誤差δ1のみを最小化する場合、磁気データq1~qNを近傍に有する球面Sの中心点x0として尤もらしい座標を算出することができるが、これに加えて、誤差δ2及び誤差δ3を最小化する場合、中心点x0が示す座標のうち正確性の高い方向についてオフセットc0を更新して得られる新オフセットc1として尤もらしい座標を算出することができる。すなわち、目的関数f2xを最小化するようなベクトルxは、新オフセットc1として尤もらしい値となる。以下で、目的関数f2xを最小化する解x=c1を算出する方法について述べる。誤差ベクトルδは、式32に対して、式17、及び式24~28を代入することで、式33のように変形される。ここで、行列X2は式34に示すような、N2行3列の行列であり、ベクトルj2は式35に示すN2次元のベクトルである。そして、目的関数f2xを最小化するような解xとして求められる新オフセットc1は、式33に示す誤差ベクトルδの大きさを最小化するものである。従って、新オフセットc1は、δTδを最小化するものとして式36に示す3元1次連立方程式の解として求められ、式39で示す3次元のベクトルとして表される。ここで、行列A2は式37に示す3行3列の行列であり、ベクトルX2Tj2は式38に示す3次元のベクトルである。図9を参照しつつ、式39に示された新オフセットc1の有する幾何学的な性質について説明する。なお、図9では、固有値λ1~λ3が、λ1>λ2>λ3>0を満たし、磁気データq1~qNに基づいて算出された中心点x0の座標は、固有ベクトルu1方向には正確であるが、固有ベクトルu2方向は不正確であり、固有ベクトルu3方向は固有ベクトルu2方向に比べてさらに不正確な場合を想定する。更新ベクトルkは、式43に示すように、k1~k3を係数とする固有ベクトルu1~u3の線形結合として表現される。また、旧オフセットc0から中心点x0に向かうベクトルをgとすると、ベクトルgは、式44に示すように、g1~g3を係数とする固有ベクトルu1~u3の線形結合として表現される。このとき、更新ベクトルkの大きさを表す係数k1~k3と、ベクトルgの大きさを表す係数g1~g3との間の比率w1~w3は、それぞれ式40~42に示す値となる。式40に示すように、比率w1は1となる。また、式41に示すように、比率w2は0<w2≦1を満たす固有値λ2及び係数αの関数となり、固有値λ2が大きな値になるに従って比率w2は1に近づく。同様に、式42に示すように、比率w3は0<w3≦1を満たす固有値λ3及び係数βの関数となり、固有値λ3が大きな値になるに従って比率w3は1に近づく。このような、比率w1~w3は、新オフセットc1が、中心点x0及び旧オフセットc0のどちらに強く依存するかについての比率を示す値である。更新ベクトルkは、ベクトルgの固有ベクトルu1~u3方向の各成分に対して、各方向の情報の正確性を表す比率w1~w3を掛け算して算出されるベクトルである。このような更新ベクトルkは、中心点x0の有する情報のうち正確性の高い情報に基づいて、旧オフセットc0を新オフセットc1に更新する。なお、旧オフセットc0の情報を利用しない場合には、係数α及びβを0に限りなく近い値の定数として設定すればよい。この場合、比率w1~w3はいずれも1に限りなく近い値となり、新オフセットc1は、磁気データq1~qNのみに基づいて算出した中心点x0となる。[7.従来の方法との比較]以上で述べた本実施形態の新オフセットc1算出方法の有効性を示すために、以下では、特許文献1において開示されたオフセット算出方法以下、従来の方法と称する。について説明し、本実施形態における方法と比較する。従来の方法では、式45に示す5元1次連立方程式の解として、オフセットを算出していた。式45に示す方程式は、式22及び23で示された制約条件を緩和しつつ、式19で示された目的関数f1xを最小化する解xを求める緩和問題である。ここで、行列X5は、式46に示す5行5列の行列であり、ベクトルx5は、式47に示す5次元のベクトルであり、ベクトルb5は、式48に示す5次元のベクトルである。また、式47の変数ρ1及びρ2は、計算過程においてのみ必要となる変数であり、式46及び48の変数m1及びm2は、式49及び50に示すような共分散行列Aの固有値λ1~λ3及び正の定数S2、S3により算出される値である。n元1次連立方程式を解くための演算回数は、ガウス消去法では約2/3n3回である。また、連立方程式の係数行列が正定値である場合には、コレスキー分解法や修正コレスキー分解法を用いることができ、演算回数は約1/3n3回となる。従来の方法でオフセットを算出する場合、行列X5を係数行列とする5元1次連立方程式を解くため、ガウス消去法での演算回数は53=125の2/3倍となる。一方、本発明の方法で新オフセットc1を算出する場合、式36に示す3元1次連立方程式を解けば良く、ガウス消去法での演算回数は33=27の2/3倍となる。すなわち、本発明の方法によれば、従来の方法に比べて、27/125=約22の計算量でオフセットを算出することができる。[8.結論]以上に示したように、本実施形態では、磁気データ分布指標算出処理において、磁気データq1~qNの分散を示す共分散行列Aの固有値及び固有ベクトルを算出することで、磁気データq1~qNに基づいて算出される中心点x0の有する情報のうち、共分散行列Aの各固有ベクトル方向の情報の正確性を求めること可能となった。そして、オフセット更新処理において、磁気データq1~qNより算出される中心点x0の有する情報のうち正確性の高い方向の情報を利用する一方で、中心点x0の有する情報のうち正確性の低い方向については旧オフセットc0の情報も利用することにより、新オフセットc1を算出した。すなわち、本実施形態の磁気データ処理プログラム70は、オフセットcを正確な情報のみに基づいて更新することが可能であり、このようなオフセットcによって地磁気を正確に測定することが可能になるという利点を有する。また、本実施形態における磁気データ分布指標算出処理及びオフセット更新処理は、新オフセットc1を簡単な計算によって求めることが可能である。すなわち、本実施形態の磁気データ処理プログラム70は、高速なオフセットcの更新が可能であり、常に正確な地磁気の測定が可能になるという利点を有する。さらに、本実施形態では、オフセット更新処理において、新オフセットc1を、3元1次連立方程式を解くことにより算出した。従来の方法では、オフセットの算出のために5元1次連立方程式を解くことが必要であった。これに対して本実施形態における新オフセットc1の算出は、3元1次連立方程式を解くことで算出する処理であり、従来の方法に比べて約22の演算回数に抑えることが可能となった。これにより、新オフセットc1算出の更なる高速化が可能となるとともに、新オフセットc1の算出に必要なメモリ使用量の低減化が可能となった。すなわち、本実施形態の磁気データ処理プログラム70は、高速なオフセットcの更新が可能であるという利点を有するとともに、簡易な機器に対しても実装が可能であるという利点を有する。また、本実施形態では、オフセット更新処理において、複数の磁気データq1~qNの重心qcを原点とする重心座標系ΣCにおいて、複数の磁気データq1~qNの値及び新オフセットc1の値を表現することで、新オフセットc1の算出を行った。これにより、磁気データq1~qN等の値を、センサ座標系ΣSで示される座標をそのまま用いて新オフセットc1の算出を行う場合に比べて、データの値を小さくすることが可能となり、メモリサイズの小さい変数型で表現することが可能となった。すなわち、本実施形態の磁気データ処理プログラム70は、メモリ使用量の低減化を可能とするという利点を有する。