2009年8月12日水曜日

なぜ数式のまま計算できるのか

なぜ数式のまま計算できるのか

(下記は上記ページからの引用です。)
>例えば「a + b」はLispでは「(+ a b)」というリスト形式で書く。ここで「a」や「b」の部分が複雑な式であったとしても「(+ 式 式)」という形式になる。つまり,全体としての構造は元の形式と全く変わらない。実際の計算の進め方を説明しよう。例えば「(a + b)2」を表す「(expt (+ a b)2)」というパターンのリストが現れたら「(+ (expt a 2) (* 2 a b) (expt b 2))」というパターンに置き換えるというルールを定義しておく。これで,「a2 + 2ab + b2」という「計算」結果が出る。やや乱暴だが,このような式の置き換えルールを大量に備えたLispシステムが数式処理システムといえる。もちろん,人 間にとって見やすい形式で出力する,計算の途中でリストの数が膨れ上がらないように制御するなどの配慮が必要だ。さらにパターンの置き換えをどのような順 序でこなすのかも重要な問題である。これらを非常に高い次元で融合したのがMaximaを始めとする数式処理ソフトである。

0 件のコメント:

コメントを投稿