2009年6月18日木曜日

Solvreの演習

HP200LXの日本語マニュアルPDFがHPのサイトで公開されており、その中に、地表の2点間の緯度、経度を与えて、その2点間の距離を概算する式が出ています。

* 変数の割り当て

地点1の緯度、経度をLT1, LG1
地点2の緯度、経度をLT2, LG2
2点間の距離をDIST

* 計算式

DIST = 111.11973148*ACOS(SIN(LT1)*SIN(LT2)+COS(LT1)*COS(LT2)*COS(LG1-LG2))

※ マニュアルにある式は「法定マイル」という単位で計算する式で、式中の定数が異なります。こちらの式はキロメートルで結果を出します。

HP50gで計算させてみましょう。

東京タワーの位置は、35.658611 N, 139.745556 Eの辺りだと言います。もう片方の場所は、北鮮のムスダンリにでもしておきましょうか。ムスダンリの位置は、およそ40.855938 N, 129.665676 Eのようです。
この計算式では、東経と南緯は負数で与える必要があります。また、上記では十進度で角度を与えていますが、度分秒で与えるには、「HMS->」などの関数を用いて十進度に変換する必要があります。それに注意して計算すると、つぎのようになりました。

DIST = 1051.10059907 [km]

ここでは、HP50gのSolvreで計算させてみましたが、HP35Sでも同様に計算できます。但し、35Sの場合には変数が1文字という制限があります。

では、なぜ「概算」なのでしょうか。

実はこの式、地球が真球に近い前提で計算を行っているのです。実際の地球は偏平になっているので、細かいことをいうと色々と面倒なことになりそうです。

ちなみに、上記式の導出はHP50gで簡単に行えます(筆算でも余り難しいものではありません)。2地点の経度、緯度を与えてやれば、その2点の方向を示す単位ベクトルが定まります。すると、ベクトルの内積を用いれば、2点間の角度のcosineが求まります。後はarc-cosineを計算、更に単位角度あたりの地表面上の距離を計算する定数を掛ければ、おしまい。

この手続きを実際に計算すると、こんな具合です。
地点1、2の単位ベクトルをスタックに置きます。計算の簡便化のため、LG1-LG2 を D とおきました。

[ 'COS(LT1)' 0 'SIN(LT1)' ]
[ 'COS(LT2)*COS(D)' 'COS(LT2)*SIN(D)' 'SIN(LT2)' ]

そして、ベクトル内積を計算する「DOT」を実行します。これだけ。TIのDerive電卓でも簡単に計算できると思いますから、お持ちの方はおためしを。


追加 on 2015/04/19
200LXのマニュアルのあるページへのリンクを入れました。

2009年6月5日金曜日

Julyさんのblogから

5月はエントリなしでしたが、取り敢えず。
Julyさんのblogから話題を持ってきて話のタネにしましょうか。

最近は、HPも「これ」という関数電卓を出してくれません。

【プレスリリース】ヒューレット・パッカード社の電卓3機種 新発売
http://www.july.co.jp/index.php?main_page=wordpress&p=172

この中に、一応関数電卓があります。

HP SmartCalc 300s スタンダード関数電卓
http://www.july.co.jp/index.php?main_page=product_info&cPath=15_41&products_id=364

これです。でも、何だかCASIOの電卓みたいで、何だかなぁー、と。そんな折、こんなニュースもありました。

【お知らせ】 HP電卓 技術サポート窓口が変更になりました
http://www.july.co.jp/index.php?main_page=wordpress&p=173

何でも、サポート窓口が中国の会社になったそうです。国際電話かメールでの問い合わせ、との事ですが、英語を喋れないし書けないしという当方の様な場合は、困ってしまうねぇ。
※ July・溝江氏からの指摘があり、修正しました。日本語でもOKだそうです。

で、もしかすると、電卓の開発も中国の会社にやってもらっているのか、などと勘ぐったりします。確か、35Sがそうなったらしい、とか言う話だったと思うのですが、だとすると残念ですねぇ。Corvallisはどうなった ? まあ、夏には何かしら、話題があるかと期待しつつ。

ついでに、次のネタについて。

【サポート】PrintCalc用のロールペーパー
http://www.july.co.jp/index.php?main_page=wordpress&p=177

どうも、PrintCalcではインクを用いて印刷するらしいのですが、感熱紙だとインクが滲んでしまうのは仕方の無い所でしょう。