日別アーカイブ: 12月 29, 2007

数式処理システムMaxima

[pukiwiki]
数式処理ソフトMaximaに ”これからチャレンジ” しようかな、ということで情報収集。

*[[Maxima公式サイト:http://maxima.sourceforge.net/]]
[[ダウンロード:http://sourceforge.net/project/showfiles.php?group_id=4933]]

*[[数式処理システムMaximaで楽をしよう:http://kougaku-navi.net/maxima.html]]
*[[Professional Maxima:http://www.muskmelon.jp/maxima/]]

*[[はじめてでもできる Maxima のインストール(Windows XP 編):http://www.interq.or.jp/mars/cherry/windows/maxima-install.html]]
*[[Maximaで遊ぼう:http://www.bekkoame.ne.jp/~ponpoko/Math/maxima/MaximaMAIN.html]]
*[[Maxima簡易マニュアル:http://www.bekkoame.ne.jp/~ponpoko/Math/maxima/ManualBook/ManualBook.html]]
*はじめてのMaxima I・O BOOKS
数学苦手だし、Mathematicaなどの数式処理ソフトは使ったことがありません。~
たまたまこちらの本を見かけたので読んでみました。

[[http://ecx.images-amazon.com/images/I/210XQBAD1AL.jpg:http://www.amazon.co.jp/exec/obidos/ASIN/4777512010/tamac-22/ref=nosim/]]

lispで書かれた数式処理ソフトMaximaの本。
なんですけれども、具体的な使い方、というよりは、どちらかというと、「Maximaが動くしくみの解説」です。実は、内容は、殆どよくわからなかったのですが(汗 面白かったです。

*数式処理ソフトの使い方を憶える、という数学の勉強のしかた
が、有りうるのかもしれない、という、甘い期待があって上記の本を手に取ったわけですけれども。。。

個人的には、中学、高校ぐらいの数学問題を解くチュートリアルをステップバイステップで解説した本が欲しいなぁと思いました。

< <追記>>
[[Professional Maxima:http://www.muskmelon.jp/maxima/]]
には、センター試験の問題をMaximaで解くチュートリアルが載ってました。少しずつやります~

*MaximaにVerboseモードが欲しい
この公式を当てはめて、こう変形しました、みたいな、途中の手順を全部表示してくれるモードがあると、数学の勉強には便利だよなーと思ったり思わなかったり。。。(ひょっとしたら既に有る?)
*「微積分なんて学校を出たら使わない」ならば。。。
最初からMaxima使ってズルすればよかった、と思った私。。。いや、私の高校時代には、こんなの無かったですけれども。

*Python compiler モジュールを見て、この本を思い出した

“>>> from compiler import parse ; compiler.parse(“y=x**2+2*x+1”)

y=x^2+2x+1なんて式をPythonでパースすると、
[/pukiwiki]

Module(None, Stmt([Assign([AssName('y', 'OP_ASSIGN')], Add((Add((Power((Name('x'), Const(2))), Mul((Const(2), Name('x'))))), Const(1))))]))

[pukiwiki]
こんなリストが返ってきます。Pythonの中では、こんなふうに表現されてるんすね。。。って、こんなのどこかで見たことが有ると思ったら、Maxima本。  Maximaも数式をリストに変換して格納しています。(多項式のCRE表現、というらしい。上記よりも、もっとLISPよりの書き方になってます)

数式処理ソフトと、コンパイラのパース、そりゃ、似たようなことをしてるんだから、似たよなことになるのはあたりまえ、って話もありますけれども。

で、コンパイラの最適化と数式処理つーのも、案外似通ったところが有るのかもしれない、などと思ったけど、よく判らず。

*MeCabつかってても思い出した
日本語も、
-形容詞、係り受け -> 係数 
-名詞 -> 項、 
-接続詞 ->演算子 と考えれば、

うまくやれば、一種の数式と捉えることもできる、のかしらん?
で、多様な定理を使って数式を変形するのと同じく、SVCとかSVOOみたく並び替えて英単語に置換すれば、翻訳ソフトになったりするのかしら?などと妄想してみたり。

似たような技術でも、分野ごとにいろんな使い方があるんですね。人間の科学技術とか文明って、複雑怪奇でよく判りませんけれども、意外に単純な小さな道具の積み重なりで成り立ってるのかも、などと思ったのでした。

*MeCabを使った日本語プログラミング
今回の話題とは関係ないですが、そういうのもアリなのかも、と、ふと思った。誰でも思いつきそうなので、既にあるかも。

*はじめての数式処理ソフト CD-ROM付(ブルーバックス)
ブルーバックスからもMaxima本が出ている模様
[[http://ecx.images-amazon.com/images/I/31u%2BDXnV6yL.jpg:http://www.amazon.co.jp/exec/obidos/ASIN/4062575604/tamac-22/ref=nosim/]]

。。。買ってみましたけど。。。ちょっと私には難しいようです。

ホントは、LISP苦手なので、[[Pythonな数式処理ソフト SAGE:http://www.sagemath.org/]]にチャレンジしようと思ったのですけれども、うちのマシンだとメモリが足りないようです。
[/pukiwiki]

ARToolKit

[pukiwiki]
*[[「攻殻機動隊」「電脳コイル」の世界を実現!ARToolKitを使った拡張現実感プログラミング:http://www1.bbiq.jp/kougaku/ARToolKit.html]]
世間ではずっと前に話題になってたようですけれども。

C用のライブラリなのでctypesでラッパーを書ける、かも。~~
すぐには触れないけど、将来やりたくなったときのためにメモ

ミックスド・リアリティよりも、Strata Foto3Dみた使い方(カメラによる3DCGのモデリング)は出来ないかしらん?というところに興味があります。
*[[拡張現実感プログラミングについての追加のはなし:http://kougaku.blog28.fc2.com/blog-entry-238.html]]
*[[Pythonの関数のポインタをCに渡す(ctypesで):http://ymasuda.jp/python/ctypes/tutorial_jp.html#id18]]
上記のサンプルをPython(ctypesモジュール)で書き直すときに必要。素直にCで書け、って話もありますけれども、Cの関数を順番に呼び出すだけならPythonでも速度は、えらく変わらんのです。~
ちょっとした処理を自前でやると、とたんに遅いですけど。。。

*[[PyARTK:http://mgldev.scripps.edu/projects/pyartk/]]
swigなラッパー。ちょっと敷居が高いんすよね。。。
*[[Suzanne on my desk:http://www.ash.webstranka.info/?p=36]]
PyARTKとGame Blenderとの組み合わせ例。
*[[USBカメラでカードを認識させる新機軸TCG「THE EYE OF JUDGMENT BIOLITH REBELLION ~機神の叛乱~ SET.1」:http://watch.impress.co.jp/game%2Fdocs/20071108/eoj.htm]]
*[[「THE EYE OF JUDGMENT 公式:http://www.jp.playstation.com/scej/title/eoj/]]
PS3用ゲームソフトのアレも同じような技術っすね。

//*[[:http://homepage.ntlworld.com/r.burke2/rab3d/tutorials/608/precision_modelling.pdf]]
[/pukiwiki]