プロが教えるわが家の防犯対策術!

Basic言語などで、例えば10までの整数の和を求めるとき、
for i=1 to 10
a=a+i
print i
next i
とでもすれば、iが1まで、2まで、3まで…10までの計算結果が得られますよね。ところが、Maximaの場合は、for函数の中に出力命令は入れられないようなんですが?これは、仕方のないことなのでしょうか?
それぞれの計算結果は、配列に覚えこませてやるよりないのでしょうか。やろうとしていることは、複雑な式の展開なので、できるだけこの方法は避けたいのですが。

A 回答 (3件)

本当は、



print a

ってやりたいのかな?ちょっと良く分かりませんが。

Maxima自体は本体はCommon Lispと言う「超」高級言語で、「やりたいこと」はほぼ可能だと思います。to_lisp();と言うコマンドでMaximaはCommon Lispモードへと変化します。

(%i1) to_lisp();

Type (to-maxima) to restart, ($quit) to quit Maxima.

MAXIMA> (do ((i 1 (1+ i))
(a 0 (+ a i)))
((> i 10))
(format t "~d~%" a))
0
1
3
6
10
15
21
28
36
45
NIL
MAXIMA>

多分こう言う事やりたいんじゃないですかね?
    • good
    • 0
この回答へのお礼

ありがとうございます。print a でしたね。すみません。
今、「はじめてのMaxima」により勉強中で、ちょうどLispのところを勉強しているところです。括弧だらけでめんどくさいから、一応一通り、読み流そうか…と思っていたところですが、MaximaはLispで記述されているのでしたね。しっかり勉強して、それから自分の作りたいプログラムに挑んでいこうと思います。

お礼日時:2009/03/02 18:30

>print a でしたね。



うん、まあ、そうだろな、とは思いましたが(笑)。
提示プログラムだとaの初期値が無いですし、また、iをprintしても1~10(あるいは言語によっては9)まで出力されるだけですしね。まあ、予測としてはそんな感じだろう、とは思いました。

>「はじめてのMaxima」により勉強中

ああ、工学社かな?から出てる本ですよね。
僕は持ってないですが、ちょっと見た感じでは「はじめての数式処理ソフト」よりははるかに良い、と思います。「はじめての数式処理~」のはMaximaの使い方、と言うより、Mathematicaで書いたコードを「他人に翻訳してもらった」だけの本ですしね。かなり浮ついてる、と言うか。
(値段の安さは取り柄、ですが)
「はじめてのMaxima」はMaximaそのもの、と言うよりKnoppix/Math駆使してる、って感じなんでLinuxをアプリケーションを通して学ぶ、と言う観点でも優れてるんじゃないか、とか思いました。Octaveの使い方なんかにもページを割いてますしね。

>括弧だらけでめんどくさい

(笑)。
まあ、一般観点じゃそうでしょうねえ。あと、wxMaximaの付属エディタが使いづらい(苦笑)。僕もアレじゃ嫌だな、とか思います。オートインデントも効かないし(苦笑)。
Lisp系は、まあ、馴れれば逆に「括弧が無いと不安に」なりますよ(笑)。ただし、マトモなエディタじゃないと書きづらいし読みづらいししゃーないんです。従って、別のエディタ、例えばEmacsとかでスクリプトを作ってMaximaに読み込んだ方が実際的、でしょう。じゃないとやってらんない、と(笑)。WindowsでしたらxyzzyかMeadow辺りを用意しておいた方が良いでしょう。

xyzzy:
http://www.jsdlab.co.jp/~kamei/
特徴:Common Lispのサブセットを実装している比較的軽いEmacsっぽいエディタ。

Meadow:
http://www.meadowy.org/meadow/
特徴:GNU Emacs 21ベースのエディタ。Windowsではこれがメジャー。

NTEmacs:
http://ntemacsjp.sourceforge.jp/matsuan/IndexJp. …
特徴:GNU Emacs 22ベースのエディタ。

これらを使えばLispを書くのはかなりラク、になります。
全てフリーなんで、実際ダウンロードして使い勝手を調べてみてください。

>それから自分の作りたいプログラムに挑んでいこう

まあ、Lispの基本的な部分だけ、でも分かれば結構ラクにスクリプトを組み立てられる、と思いますよ。自由度は結構高いんで。
頑張って勉強してください。
    • good
    • 0

ああそうだ。



参考ページ紹介しておきます。

参考URL:http://www.kabipan.com/computer/maxima/lisp.html
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!