プログラムな日常>理数学習このままでイイン会?>
Tiles
(タイルズ_1.0)

Tiles 単独ページ

構成と使用方法: 下図に即して説明します。


          図:Tiles の構成
  1. テキストエリア:このソフトの主体は3~7の部分ですが、これらの状態が1のエリアに反映され、データの保存に役立てます。 逆に1の内容をこれらに反映させることもできるのですが、それは保存したデータを活用する場合に限り、これを編集する利用方法は想定していません。 テキスト内容の冒頭では、"Tiles"から始まる行と中身のない行とは(複数あっても)無視されます。
  2. ボタンエリア:1のテキストエリアの内容をコピーとペーストでローカルなメモ帳などに保存することができます。 "copy"のボタンは、テキストエリア全体の内容を選択して Ctrl-C したのと同じ効果を持ちます。 "clear"のボタンは、テキストエリアを消去します。 メモ帳などに保存したデータをクリップボード経由で持ってくる場合には、クリアーした後、Ctrl-V を使います。 "apply" は、ここで書き込んだデータを内容に反映させる場合に使用します。 クリアー後、表の横と縦のサイズ(変数と式の個数)を「7,5」のようにテキストエリアに入れて "apply" すると、白紙の表ができます。
  3. 変数名:変数名を書き込みます。単純クリックするとリストボックスが開きますので、命名、挿入、削除ができます。 "no-op"で、何もしないこともできます。 また、このエリアをクリックし、そのまま横にドラッグすると、変数の順序を変えることができます(表全体で変わります)。 同じ順序の変更は8のエリアを使ってもできます。
  4. 数式名:書き方は任意ですが、変数名と同様に編集と、順序の変更ができます。 同じ順序の変更は、9のエリアを使ってもできます。
  5. 定数指定:クリックにより、チェックと非チェックの間を交代します。チェックは、この数が定数であることを意味します。
  6. 式の内容指定:クリックにより、チェックと非チェックの間を交代します。各式に含まれる変数の位置(非ゼロ)をチェックします。
  7. 式の適用指定:クリックにより、チェックと非チェックの間を交代します。 チェックされた式は適用され、チェックされないものは無視されます。
  8. 列の入替に利用できます。
  9. 行の入替に利用できます。
 
解説:
【不十分な連立式の例】

Tiles における表の各列は個々の変数に、各行は方程式に対応します。従ってこれは連立方程式の表現です。 n個の未定変数は、n個の式の連立により確定させることができます。 ただし、現実の問題では、各式が全ての変数を含むわけではなく、むしろゼロ要素が多いのが現実の場合です。
例えば、3つの変数につき、次の連立方程式があったとしましょう。
   
これって、解けるんでしょうか? 3つの変数に対し、式が3つあるんだから解けそうです。 しかし、良く見ると、第1と第2に式は共に a のみに関するもので、そこに矛盾はないとしても、無駄な情報を提供しているとしか言えません。 第3の式だけから b と c とを決めようとしても無理です。これを Tiles にかけると次のようになります。

3変数の不十分な連立式

赤い四角が灯っているのは a の列だけです。これで a は確定しそうだということが言えます。ただし、同じ列に、緑の二重横線が付いたセルがあります。 これは、余分な情報があり、ことによったら、矛盾があるかもしれないことを示唆します。
b、c の列には赤い四角がないので、これらは確定しません。
a は初めから定数と見做すこともできますから、次の表現もありです。

3変数の不十分な連立式(a を定数と見る場合)

一般に Tiles では、変数が確定しそう、とか、確定するかも知れないという予想はしますが、絶対に決まるというところまでは言えません。 それには実際の式に即した続きのステップが要ります。


【ツルカメ算】

次に、有名なツルカメ算を分析してみます。
「ツルとカメが合わせて8匹(?)、脚の数は合わせて22本です。ツルは何匹(?)でしょう?」といった問題です。
さしあたって、使える情報をひたすら入れると次のようになります。

ツルカメ算(最初の定式化)

とても複雑なことになりましたね。 これは簡略化する必要があります。それには、関連する式が少ない変数に目を付けて、これを除くようにします。 「鶴」、「亀」、「鶴脚数」、「亀脚数」の4つは何れも関わる式が2つで、何れも候補になりますが、「鶴」は、問題で答えるべきものなので、これは残します。 まず、「鶴脚数」と「亀脚数」を消去して式を集約します。

   

また、

   

この状態では、

ツルカメ算(変数と式の省略)

さらに亀を消去します。

   

こうして、一つの式に纏めることができました。

ツルカメ算(単一式になった)
 

【Tiles の効能】

何だか、良く知った問題が、さらに難しくなってしまったかも知れませんが、Tiles で定式化したものは、連立式として残ってしまった場合でも、数値的に解けます。 それには、各変数を色々に動かして、各式の式の値を合わせる、多次元 Newton-Raphson 法を使います。
これは、以前「お勧めではないですが、」の回でもご紹介したような方法です(あれは線形でしたが)。
そもそも、「お勧めではないですが、」にご説明したポアソン方程式の解法は、私が自作の Tiles をいたずらしている中で 偶然見つけたものでした。
この解法と Tiles 自体につき、職務発明で特許出願しました。 どちらも、特許になるところまでは行きませんでしたが、なっていたとしても、すでに期限切れです。
Tiles の効能は、色々な発見に繋がる見込みがあるところですが、数式的な証明の筋道を明確にする上でも有効だと思います。 式を導出する個々のステップには頷けても、来し方行く末という全体像が見えにくい証明というのはよくあるからです。 教科書の証明には Tiles を添付するという習慣を世界的に定着させたいものです。
ところで Tiles を私は、海外出張で売りに行ったんです。その話はいずれまた。