木曜日, 5月 26, 2011



以前から、Mathematicaもバージョンによって結果が違う例を何度となく体験して来ているので、
今回もまず以前の例題チェックから始めた。

すると、例題の結果とかなり違う例が出て来て
大変当惑した。プログラミングを少しでも経験すると、動く筈のプログラムが動かない場合、大抵はタイピングミスである場合が圧倒的に多い。

コロンとセミコロン、カンマとピリオドなど、たった一文字でも違うと致命的である。
Mathematicaの場合も、特に線形代数関係は、似た記号を多用するのでそれらのタイプミスが結果を大きく作用する。

いつものように例題は、例によって『Macintoshなどによるパソコン入門』という副題のある
『MathematicaとTheoristでの大学院入試への挑戦』(梶原譲二著、現代数学社、1994)から選んだ。同じく現代数学社から刊行されていた『BASIC数学』の’93年1月号に載った記事そのものである。
ジョルダンの標準形 =非対称対角化不能行列の数式処理ー
というテーマで平成二年に国際基督教大学大学院工学系研究科での入試問題を扱っている。

行列はバージョン8ともなれば、まずバグ等考えずらいことから、入力を疑った。夜間疲れた目で文面を追って入力した場合などはタイプミスが例えなくとも、読み取りミスが疑われる。

すでにこの例題は昔のバージョン3で一度ならず実行済みであった。しかし、HDが突如壊れて保存してあった大半が今や手元にはない。それ以後、外付けHDを数台用意し、バックアップを取ったりしているが、Macの場合OS自体にも互換性が無くなり結局UNIX系となって、以前のシステムで作成された文書等を見る場合には、エミュレーターなどの利用か古いシステム機種を残して置く手段位しかなく手がかかる。

今回たまたま今日も私だけ臨時に休みが取れたので、懸案だった入力問題を再検討した。時間に余裕があり体力的にも精神的にも余裕がないと、なかなかチャレンジできない面もある。


すると、思いがけなく実行前に入力ミスを発見できて、修正したら教授の示した結果どおりとなってホッとした。改めて、アミダくじ並みの一文字あるいは1本の線の区切り違いで結果が大きく変わる一筋縄の世界をかいま見た思いがする。

最初、入力番号[16]と[17] では
u[1]:=Table[c[{i,1}],{i,a}]としていて、17も同様であった。

それを
u[1]:=Table[c[[i,1]],{i,a}]
と ダブルの括弧に直したら、うまく動いてくれた。

今回かなりの時間を費やして、忘れてしまっていた
線形代数関連や、Mathematicaの特徴なども思い出したが、まだほんの一部。ただ、一文字打ち間違っても動くように柔軟に設計
変更(取りあえず、エラーメッセージが出ない)や、文字変数がイタリックに変わったりと
ワークシート(ノートブック)全体の見通しが良くなった。
梶原先生の記事発表当時はもっと古い版のMathematicaだったと思うが、私が検算で使った2.2はバグが残り、3.0では8.0と取り合えず一致した。




無料アクセス解析 

1 件のコメント:

匿名 さんのコメント...

「考えずらい」ではなくて
「考えづらい」