例題があったほうがよいので、つぎの練習問題について、HP 50g の使い方を習った。

<例題>等量同符号の点電荷2つを結ぶ直線の中線上で電界が最大となる点を求めよ。ついでに、その点の電界も求めよ。

点電荷1つだけの場合は電界も電位も簡単に求まるが、2つになると少々面倒になる。3つ、4つ、数が多ければ多いほど、計算が大変。また、電界はガウスの法則で求める方法と、電位の全微分で求める方法とがある。電位が簡単に求めるのであれば、後者のほうが有利。ガウスの法則は美しいが、対称性がないと、それほど役に立たない。

さて、例題の電荷をQ (C)、点電荷をx軸におき、中点を原点にし、原点との距離を d (m) としよう。

つぎに、y軸上の点 (0, y) について、電界を求める。片方の電荷によってつくられる電界は大きさが 130822-1.png

方向がその点電荷と結ぶ線上の反対側にある。x軸方向のE成分は対称性により打ち消され、ゼロになり、y軸上の成分は13082-2.pngyの符号値によって、電界の方向は上か下に変わる。また、原点では、電界はゼロになる。

では、Eyの最大値を求めるため、電卓 HP 50g で微分。上式のままでは、めちゃくちゃな結果になったので、整理しないといけない。CASシステムがまだ進化途上か。130822-3.png2度目の入力。Alpha+EQWで数式入力モード、微分記号はAlpha+δ(表関数名はcos)。慣れれば簡単だが、ここまで数時間がかかった。積を表す掛け算記号も入力したほうが安全。130822-4.jpg

下写真のように上カーソルで数式全体を選択してから、EVAL(F4か表関数EVALキー)を押して微分。この辺も慣れが必要。上下左右カーソルキーの使い方はまだよくわからない。130822-5.jpg結果らしきものが出てきた。しかし大きく右にはみ出すので、全体は確認できない。F2(CURS)を押せば、左右のスクロールができるが、大変遅くて、いらいらする。この辺はとても不満。なお、F1(EDIT) を押せば、文字による数式の確認ができるが、数式が複雑なため、理解するのは大変。130822-6.jpgF6 (SIMP)キー、F3 (BIG、フォントの変更のようだ)キー、F2 (CURS、選択解除)キーを押して、なんとか数式の全体像が見えた。130822-7.jpgさらに、F5 (FACTO、因数分解)キーを押し、解がやっとえられた。130822-8.jpgy = ±d / √2 という点で Ey が最大になる。その y を代入して、130822-9.jpgEVALキーを押すと、答えが出た。でも、既約ではないので、正解と認めるにはちょっと抵抗感がある。130822-b.jpg130822-a.png

数時間かけてトライした結果、なんとか使い方が分かった。まだそれほど利口ではないようが、数式処理システムが手元にあることに感謝したい。PCが使える環境であれば、フリーの Maxima がもっと素晴らしいけど。

まだまだ電卓にハマっている。きっかけは受験勉強だったが、実を言うと、普段電卓を使うことはあまりなかった。PCに電卓ソフトがあるし、ケータイにもついているし。手元のHP35sはどちらかというとコレクション、HPへの憧れで購入したもの。普段で使うことを考えていなかった。

しかし、受験勉強では計算が多いので、関数電卓を使わざるを得ない。そこで安さに連れて、SHARPの関数電卓を、つぎに精度を求めて、CANONの関数電卓を入手した。電卓の進歩に感動し、さまざまな定積分を入力して半日電卓をいじめたこともある。電子工作も得意だけど、数学も大好きな人間なんだから。

数式が入力できるのであれば、数式処理ができる電卓が気になってしまった。米国HPやTIの数式処理電卓が評判がいいので、とりあえず憧れのHPブランド HP 50gを入手した。アメリカでは数学の勉強では、TIの電卓を使うのが当たり前らしい。数式を一生懸命解くのではなく、数式をどう組みたてるかを考え、計算は電卓任せという当たり前の考え方。教育の仕方が変わったともいう。

残念ながら、日本はゆとり教育が是認され、いまの学生はほとんど勉強しないというか、勉強できない。基礎がないから。10年前に教えられたことはいまでは難しくなっている。しかも、理系の学生が優遇されていない。こんな現状を変えない限り、世界と戦うなんてただの妄想にすぎない。本気で反中するなら、中国人学生以上に勉強しないといけないのに。

つぎの受験のために、電磁気学を一生懸命復習している。いい機会なので、練習問題を電卓にやらせ、グラフを描かせて使い方を覚えたい。

130822.jpg

最近の関数電卓を遊んでいて、いくつか感心したことがある。昨日、数時間をかけて、ネットから定積分の練習問題をピックアップして、2台の関数電卓に入力し、計算結果を比較しながら、楽しんでいた。定積分とはいえ、大学時代に随分と練習していた。当時いまのような関数電卓があれば、少なくとも確かめ算はしなくて済むなと感心した。

とくに一部の定積分の計算結果が分数で表示されたところをみていると、あたかも数式処理を電卓がしている錯覚に陥る。分数は全く誤差のない記号だと自分のなかでは認識しているから。

分数とは何か。
(ウィキペディアでは)2つの数の比を用いた数の表現方法のひとつ。
(三省堂大辞林)整数 a を 0 ではない整数 b で割った結果を表したもの。

つまり、分数とは2つの整数の比率(割合)を正確に表すものだ!

ひとつのものを3等分するから、1/3 になる。3等分したものを2つあわせると、2/3 になる。誤差は許されないし、記号(シンボル)であって、数値ではない。

記号の意味は平方根 √2 や 円周率Π を考えると一層わかる。どんなに 3.1415 9265 3589 7932 3846 2643 3832 7950 2884 1971 と長く続けて書いても、Πとは言わない。無理数や超越数は数値では表せないから。

1/3 + x = 1/3 になる x は ゼロ以外にありえない。たとえ、x がゼロに近い数字でも。

しかし、関数電卓はそうしていない。

130817.jpg定積分の計算結果が一部、分数で表されたマジックは以上の証拠写真でわかった。数式処理ではなく、計算結果である数値に近い分数で表現したに過ぎない。

非常に危険な傾向だと思う。写真のような簡単な例は電卓の馬鹿さに気づくが、定積分の計算結果をまともに信用すると間違える可能性は高い。

分数ではなく、数値で表すなら全く問題ない。計算誤差が存在することはユーザが理解しているから。

ということで、計算結果はデフォルトでは数値表現、どうしても分数表現にするなら、ユーザの責任で分数表現に直すというのが私の主張だ。実用性がないから、数値にすべきだという主張とは違う理由だけど。

RPN方式のHP電卓では混乱することはないが、計算式通りの入力なら、どうしても優先順位に悩んでしまうことがある。それでは、演算についての優先順位を、手持ちの関数電卓2台を使って調べた。

キヤノンのほうは、恐らくカシオ系列だと思うが、取説に優先順位一覧表が載ってある。

130816-4.png

C言語的発想から見ると大変複雑。第1、2、11以下は良として、第3と第4との違い、第5、6、8間の混乱はないか、とても心配。また、誤入力(カッコの片方を省略してもOK)にも寛大的という立場もあり、すべてを把握するのは大変難しい。インタープリタが本当に優先順位通りに解釈しているかどうか、機会をみて検証したい。

対して、シャープのほうの優先順位は以下のとおり。

130816-5.png

関数についての優先順位が日本2大系列の間でも統一していない。カシオ系列電卓に慣れたひとはシャープ系列を使うと混乱するし、逆もしかり。括弧をユーザに多用させるか、厳密に入力式を解析することにしないと、混乱は収まらないだろう。

その点、RPN方式はスッキリする意味で、大変優れている。

シャープにつづき、キヤノンをゲットしてきた。売値はシャープEL-509Jの倍。色は白(シルバー)のみ、ラベルが見やすい。

特筆すべきことは精度の良さ。tan(355/266) はもとより、torture test に載ってある数値積分はすべて正解を出している。使いやすさよりも、精確さを第一に追求する立場ならば、間違いなくお勧めできる機種。

ダメなところを書くと、➀デザイン自体は平凡だが、ラベルがイタリック調で、+、÷の記号まで斜めになっていて、気持ち悪い。➁液晶は数式が大きくて見やすいが、ものによっては、ほかの数字とくっつくことがある。➂電源が切られると、入力途中のものを含め、消えてしまう。➃n進数計算はモードあり、シャープに比べて使い勝手がわるい。

130816-1.jpg130816-2.jpg

低価格の関数電卓が数値積分ができているので、Ubuntuではどうしたら数値積分ができるか、やってみた。

130816-6.jpg

今回は Gnu Octave パッケージを使った。コンソール入力だが、見栄えが多少良くなる QtOctaveというGUIを実際に利用。

➀ まずは計算精度(表示桁数)を高くした。関数電卓に勝てる精度にしないと恥ずかしいので、コマンド format long を入力。format についての詳細は help format で確認できる。これで、15桁表示になる。

➁ つぎは、積分関数の定義。torture test で使用された integrate(cos(ln(x)), 0, 1) を例にした。

function y=f(x), y=cos(log(x)); endfunction

ln() 関数は Octaveでは log() と定義されているようだ。

➂ そして実際の積分操作。

quad(“f”,0,1)

答えは 0.5と一瞬にして出た。関数電卓ならエラーで終わりか、結構計算時間がかかる。

130816.pngついでに、tan(355/226)についても計算してみた。こちらはだめ。Maximaとともに計算結果の精度は信用できないかも。

急に関数電卓に興味を持ち始めたので、近くのヨドバシからEL-509Jをゲットした。売値約1,300円。黒、薄グリーン、オレンジの3色から、アジレント製テスタに合わせてオレンジを選んだ。趣味が悪いと言われそう。

家に帰ってHP35sと比べると、案外大きいことに気づいた。厚みがないので、多少良いが、上ポケットに入れると約4cmはみ出す。キーのサイズ、数、液晶のサイズを配慮すると、それ以上高さを縮めるのは難しいかもしれないが、ソーラーパネルの廃止、カーソルキーをHP35sのように配置すれば、2cm強削減できると思う。

まだ使い込んでいないが、気になった点を書き出すと、①指紋がつく。店頭では確認できなかったが、指紋がよく付くので困ってしまった。②複素数計算はできるというものの、基本的に4則計算のみに限定すると思って良い。複素数の関数計算はほとんどだめ。ということで、複素数の計算ではこれからもHP35sを頼るしかない。

いいところといえば、2進数、16進数への変換がシフトキー+基底の2キーのみでできる。整数部に限定するところはHP35sと同様だが、HPよりも必要なキーイン数が少なく、分かりやすい。

もうひとつの良いところは、液晶部すぐ下のD1~D4ボタンに、好きな関数名を自由に割り当てられるということ。よく使う関数で、シフトキーを押さないと使えないものを割り当てるといいかも。たとえば、数字キーの 2, 3、メモリ RCL, STO の裏に割り当てられている Π、/x、3√、x3 を割り当てるとか。

数十年前のHP35に比べて、精度は上がったが、使い勝手等はまだまだHPに叶わないのが自分の感想。それでも、微分ができたり、定積分ができたり、使うことは別にして、進歩していることが実感できた。

折角なので、CasioとCanonの機種もゲットしてくるかもしれない。

130815.jpg130815-1.jpg

1週間ぶりにWindows環境に戻ってきた。Windows7内蔵の電卓アクセサリを確認したところ、複素数対応ではないことを再確認した。tan(355/226)の計算は確かに精度がダントツ。

で、複素数計算のできるフリーソフトを調べたら、iMemo(複素メモ)というアプリを見つけた。目下でも精力的に開発が進められているようだ。Window 7 対応とか謳っていないが、64bit 環境でも問題なく使えた。

大変使いやすい。1行ずつ左フレームに入力しておけば、計算結果がその場で右に表示される。Enterキーを押さなくてもだ。虚数記号 i だけでなく、j も使える。i は電流として使われるので、できれば慣習として j がよい。

精度は若干落ちているが、HP35sよりは断然いい。人類を金星まで送り届けるにも問題なさそう。

Ubuntu対応版があれば万々歳だが、残念。Ubuntu版を探す旅はつづく。

130814.png

電卓のことが気になってしまった。電卓について語っているところをみていると、文房具に愛着心を持っているひとが大勢いるようだ。

簡単な計算例がまた目に入った。tan(355/226) というもの。

電卓HP35sは -7,497,089.25510 との答え。
Google先生は -7497258.17914。
Maximaは -7497258.17914026。
GRPN電卓ソフトは -7497258.17914026。Maximaと一緒。

HPが最もダメなことははっきりしているが、正解はなんと -7497258.18532558711290507183。上の計算は全滅。Googleも大したことはなく、天才数学者やプログラマのプライドはどこかに逝ってしまった(昔のGoogle電卓はどうも正解を出していたようだ。という情報はネットにあった。)

なお、Windows7付属の電卓はバッチシ、表示された桁数を見る限り、誤差なし。

130813-4.png

受験が待ち構えているし、天気も暑いので、冷房の下で、勉強やPC遊びの毎日を過ごしている。

計算問題をやっていると、どうしても電卓を取り出して使ってしまう。そこで疑問にぶつかった。-8の平方根の値はなに。そして、それと同等と思われるかもしれない -2 の 1.5乗の値はなに。(注釈:-2の3乗は-8なので、-2の1.5乗は -8 の平方根だと主張するひとがいる。しかし、果たして本当か。)

130813-2.png

まずは正解の確認。Googleに計算させたところ、以下の答えになった。

130813-3.png130813-5.png

では、持っている電卓 HP35s で計算。8 ± √x とボタンを3回押したら、SQRT(NEG)と表示され、負数の平方根はできないと。

では、-2の1.5乗はどうだろう。2 ± ENTER 1.5 yx とボタンを7回押したら、今度は INVALID yxと表示された。上記と表示が違っているが、同様に計算できないとのこと。

答えが出ないので、複素数で(つまり、-8を -8+i0 として)計算してみた。8 ± i 0 √x とボタン5つを押したところ、INVALID DATAと表示された。おかしい!(訂正:HP35sの √x ボタンは複素数に対応していいない模様。8 ± i 0 ENTER 0 . 5 yx と9回ボタン押すと、ちゃんと答えが表示された。)

-2+i0の1.5乗はどうだろう。2 ± i 0 ENTER 1 . 5 yx とボタン9つを押したところ、やっと答えらしきものが表示された。0.0000000i-2.8284271。つまり、答えは -2.828i。

ちなみに、Maximaでは以下のような計算結果。HP電卓もMaximaもダメということだ。

130813.png

手元のUbuntu用電卓ソフトで、唯一うまく計算できたのは、GRPNというソフト。8 ± Sqrt と3回ボタンを押すと、(1.731855 x 10-16, 2.828427)と表示された。2 ± Enter 1.5 yx と7回ボタンを押すと、(-5.195565 x 10-16, -2.828427)と表示された。誤差はあるものの、期待した値になっている。

130813-1.png今回の実験で分かったことはGoogleの優秀さだろう(まあ、当たり前といえばそれまでだが)。そして、ごく簡単な計算でも、実はちゃんとできたことが案外難しい。できない人間は多いし、できない電卓も多い。

ちなみに、複素関数の計算できる電卓は日本製にないらしい。そういう情報がネットにある。本当だろうか。だとしたら、HP35s をもっと大事にしてあげないとね。√x というボタンが使えないのが痛いけど。