【数式処理システム】 Maxima 【Common Lisp】
at MATH
1:132人目の素数さん
08/09/02 16:31:35
フリーの数式処理システムMaximaに関するスレです。
MaximaはCommon Lispで書かれており、GNU GPLライセンスのもと
配布されています。各種UNIX、Windows、OSXで動作します。
■関連サイト
□Maxima, a Computer Algebra System (英語) - 公式サイト
URLリンク(maxima.sourceforge.net)
□Maxima Beginner's FAQ (英語) - 初心者向けのFAQ
URLリンク(beshenov.ru)
□Imaxima (英語) - Emacs用のGUIフロントエンド
URLリンク(members3.jcom.home.ne.jp)
□Maxima interest list (英語) - Maximaに関するメーリングリスト
URLリンク(www.ma.utexas.edu)
□Maximaで遊ぼう (日本語) - マニュアルの日本語訳や、インストールガイド等
URLリンク(www.bekkoame.ne.jp)
□数式処理システムMaximaで楽をしよう (日本語) - 初心者向けのMaxima導入編
URLリンク(www1.bbiq.jp)
■過去スレ
MAXIMA
スレリンク(sim板)
URLリンク(www.23ch.info) (ミラー)
Maxima part2
スレリンク(sim板)
2:132人目の素数さん
08/09/02 16:41:48
>>1
スレ立て乙です
3:132人目の素数さん
08/09/02 17:40:31
(Common Lisp処理系)
sbcl (32bit/64bit) ネイティブコンパイラで高速cmuclから
分岐した処理系活発に改良している。
URLリンク(www.sbcl.org)
cmucl (32bit) ネイティブコンパイラで高速
URLリンク(www.cons.org)
clisp (32bit/64bit) 低速なcommon lisp (処理系さまざまプラットホームで動く)
URLリンク(clisp.cons.org)<)
ECL (32bit/64bit) ver 0.9I よりMaximaに正式対応 こちらもさまざまなプラットホームで動く
URLリンク(ecls.sourceforge.net)
おまけ
Maxima 普及委員会
URLリンク(www.cymric.jp)
4:132人目の素数さん
08/09/02 18:52:26
まずは基本から教えてくれ
必須コマンドと使用例よろすく
5:132人目の素数さん
08/09/04 19:26:32
Rとの連携はlisp経由でできるんでしょ?
matlabは?
6:132人目の素数さん
08/09/04 19:28:45
Lispでプログラム書く気になれば何とでも連携できるんじゃね?
7:132人目の素数さん
08/09/06 23:06:36
☆ チン マチクタビレタ〜
マチクタビレタ〜
☆ チン 〃 ∧_∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
ヽ ___\(\・∀・) < MAXCELまだ〜?
\_/⊂ ⊂_ ) \_____________
/ ̄ ̄ ̄ ̄ ̄ ̄ /|
| ̄ ̄ ̄ ̄ ̄ ̄ ̄| |
| 日 立 |/
8:132人目の素数さん
08/09/07 02:45:58
>>7
つ URLリンク(www.maxell.co.jp)
9:132人目の素数さん
08/09/08 08:41:56
懐かしいヌレだ
10:132人目の素数さん
08/09/13 01:05:28
ほしゅ
11:132人目の素数さん
08/09/17 17:12:04
5.16.3をsourceからmakeしたらmake checkでベッセル関数の値が期待したのと違う値になるという警告でる
12:132人目の素数さん
08/09/17 17:45:32
age
13:132人目の素数さん
08/09/17 18:59:04
um
14:132人目の素数さん
08/09/22 23:08:59
maxima-5.16.3.exeがウィルスに感染してたようなんだけど、誤作動かな?
ちなみにアンチウィルスソフトはca インターネットセキュリティ
15:132人目の素数さん
08/09/23 21:13:28
保守
16:132人目の素数さん
08/09/23 21:19:18
f(x)をx>=0ではx^2、x<0ではx^3みたいな範囲によって変わる関数に定義して、
それをグラフにプロットするにはどうすればよいのでしょうか
17:132人目の素数さん
08/09/23 21:36:58
>>16
f(x):=if x >= 0 then x^2 else x^3;
plot2d(f(x),[x,-1,1]);
18:132人目の素数さん
08/09/23 22:06:10
>>17
できないかと思ったけど最新verにしたらできました
ありがとうございます
19:132人目の素数さん
08/09/27 03:01:41
imaximaの1.0bでinline plotできるって聞いたんでやってみたんだけど、
これ結構重いな
20:132人目の素数さん
08/09/28 11:43:14
msysでソースをコンパイル出来るのでしょうか?
USBメモリにいれて持歩きたいんですけど
21:132人目の素数さん
08/09/30 06:38:53
wxmaxima のボタンを日本語にしてみたんですが, 誰かやってましたか?
URLリンク(www.cs.tohoku-gakuin.ac.jp)
22:132人目の素数さん
08/09/30 07:28:53
>>20
msysってなんや?
23:132人目の素数さん
08/09/30 12:17:14
ぐぐれかす
24:132人目の素数さん
08/09/30 12:19:33
>>23
おしえるためにきいてるからぐぐるきなんてないよ
ボケ
だったら、自分でやれ
25:132人目の素数さん
08/09/30 12:26:38
>>24
おまえの敵は一人じゃないぞww
26:132人目の素数さん
08/09/30 12:27:36
>>24
判らないなら教えなくても良いのだよ
27:132人目の素数さん
08/09/30 13:25:26
>>26,27
だったら、おまえら協力してやれよ。下衆には関わるつもりないから。
28:132人目の素数さん
08/09/30 13:51:20
>>27
関わるなよw
29:132人目の素数さん
08/09/30 13:51:59
つか、そもそも MSYS 知らん奴に答えられる問題じゃなかろうにw
30:20
08/09/30 20:20:47
仮想レジストリソフトなるもので自己解決しましたのでもういいです
31:132人目の素数さん
08/10/13 19:24:10
imaximaをインストールできずに困っております。
ご教示いただければ、幸甚です。
(1) ubuntu 8.04をインストール
(2) セキュリティのアップデートを済ませる。
(3) 日本語版セットアップからemacs-env-ja, latex-env-ja, latex-extra-jaを導入
(4) maxima_5.16.3-1_i386.debとwxmaxima_0.7.6-1_i386.debを導入。
(5) imaxima-imath-0.99.tar.gzを解凍。sudo ./configure; make; make installを実施。
(6) sudo texhash実施。また、sudo kpsewhich breqn.styを実施。/usr/share/texmf-texlive/tex/latex/breqn/breqn.styとして、breqnにパスが通っていることを確認。
(7) 自分のディレクトリの.emacsに以下の記載をし、パスを通す。
(push "/usr/local/share/emacs/site-lisp" load-path)
(push "/usr/local/share/maxima/5.16.3/emacs" load-path)
(autoload 'imaxima "imaxima" "Frontend for maxima with image support" t)
(autoload 'maxima "maxima" "Frontend for maxima" t)
(autoload 'imath-mode "imath" "Imath mode for math formula input" t)
(setq imaxima-use-maxima-mode-flag t)
(8) ここまでやってから、emacsを動かして、M-x imaximaと読み込ませますと、
/usr/local/lib/maxima/5.16.3/binary-clisp/lisp.run: error while loading shared libraries: libsigsegv.so.0: cannot open shared object file: No such file or directory
Process maxima exited abnormally with code 127
とエラーがでますがコンパイルされている、lisp.runのどこをいじれば良いのかわかりません。そもそもこのライブラリがどこで読み込まれるべきかも併せて、ご教示いただければ幸甚です。
32:132人目の素数さん
08/10/13 20:25:46
mixiとのダブルポストご苦労様w
33:132人目の素数さん
08/10/14 07:05:08
2chのシミュ板とダブルポストなら、結構気にしますが、mixiとならば、(一応)クローズド環境と完全なオープン環境との違いですので、ダブルポスト可ではないかと私が判断しました。
34:31
08/10/15 21:03:35
何とか動きましたので、mixiの方に内容を記載しました。
35:132人目の素数さん
08/10/25 15:49:50
age
36:132人目の素数さん
08/11/15 00:20:40
maximaってフーリエ変換できますか?
37:132人目の素数さん
08/11/15 01:00:14
できないわけないだろう
38:132人目の素数さん
08/11/15 11:55:17
maximaには標準でフーリエ変換が用意されてますか?
自分で変換の式かかないとダメ?
39:132人目の素数さん
08/11/15 17:09:19
無いわけないだろう
40:132人目の素数さん
08/11/16 14:56:35
開発がなんか最近低調になっちゃったみたいだね。そろそろ乗り換え時期かな
41:132人目の素数さん
08/11/16 15:07:08
何に乗り換えるん?
42:132人目の素数さん
08/11/16 15:28:50
開発者が死んでたのか・・・
43:132人目の素数さん
08/11/16 15:31:51
それはそんな最近の話じゃないぞ。
ML見てると最近また活発だという印象。
44:132人目の素数さん
08/11/22 17:59:52
12月13日(土)に福岡大学で開催されるオープンソースカンファレンス2008 Fukuoka
において、「はじめてのMaxima」の著者、横田博史さんによるセミナーが予定されています。
お近くの方は是非お越しください。
URLリンク(www.ospn.jp)
関連情報
URLリンク(www.knoppix-math.org)
45:132人目の素数さん
08/11/22 22:18:35
maximaを使って片対数グラフを作成したいのですが,
方法が分からずに困っております.
どなた様かご教授願えませんでしょうか.
46:132人目の素数さん
08/11/23 04:17:28
最後の出力結果のLogをとれば良いだけじゃね?
47:132人目の素数さん
08/12/07 13:49:41
100変数の関数を
x1,x3,x5...についてのみ微分したい
という場合はx1,x2..を全部手で書くしかないのでしょうか
48:132人目の素数さん
08/12/07 15:38:43
書くプログラムを書けばよいのでは?
49:132人目の素数さん
08/12/08 03:10:33
wxMaximaの使い方がやっとわかった
SHIFT+ENTERだったのね
50:132人目の素数さん
08/12/08 23:49:22
>>45
2D plotでgnuplotを選んでオプション欄に
set logscale x
あるいは
set logscale y
51:132人目の素数さん
08/12/13 00:58:35 BE:1748874479-2BP(808)
>>49
うん。
でも、勝手に挿入される閉じカッコを無視して式末へジャンプする方法がわからないんだ。
_| ̄|○
52:132人目の素数さん
08/12/13 01:40:37
∫[0.2π]log(5-2cosx)dxを計算しようとして
integrate(log(5-4*cos(x)), x, 0, 2*%pi);
という入力に対してIs 4*sin(x)^2+4*cos(x)^2-4*cos(x)+1 positive or negative?と返ってきたのだがどういうことです
53:132人目の素数さん
08/12/13 02:45:12
4*sin(x)^2+4*cos(x)^2-4*cos(x)+1 は正なのか負なのか?と聞いておられるのだ
54:132人目の素数さん
08/12/17 02:15:13
%rというのが出てきたんですが、これって何の定数ですか?
55:132人目の素数さん
08/12/18 22:30:04
>>1
待望のMaximaスレッドを建ててくれてありがとう!
56:132人目の素数さん
08/12/21 02:07:35
sqrt(2)*sqrt(3) の結果として √6 が欲しいんだけど、
√2√3 になってしまう・・・。
√6にするにはどうしたらいいんだ ofz
57:132人目の素数さん
08/12/21 02:10:25
sqrt(2*3)
58:56
08/12/21 02:20:50
>>57
ありがとう。
検索したら、見つかった。
sqrt(2)*sqrt(3)
rootscontract(%)
これで√6 になる。
59:132人目の素数さん
08/12/21 18:41:24
a*x+a+b*x+b
があって、a*x+a を a*(x+1)に置き換えるにはどうしたらいいんでしょう?
以下のような感じで処理したいのですが・・・
a*x+a+b*x+b
a*x+a = a*(x+1)
a*(x+1)+b*x+b ←置き換え
b*x+b = b*(x+1)
a*(x+1)+b*(x+1) ←置き換え
x+1 = c
a*c+b*c
factor(%)を使えば簡単に因数分解できるのは知ってますが、手で
計算するように順を追って処理したいのです。
60:59
08/12/21 20:47:34
また自己レス
f1 : a*x+a+b*x+b
ratsimp(f1,a,b)
で、b*(x+1)+a*(x+1)が得られた。
rat(...)でも同様のことができるっぽい。
ただ、
f2 : ratsimp(f1,a)
→a*(x+1)+b*x+b
f3 : ratsimp(f2,b)
→b*(x+1)+a*x+a
なんで
→b*(x+1)+a*(x+1)
にならないんだ・・・orz
61:132人目の素数さん
08/12/22 00:29:22
>>60
Mathematica使えば?
62:59
08/12/22 01:15:32
>>61
年収400万の末端工員の俺にそんなこと言われても困るんだが orz
貧乏で馬鹿だけど、少しは勉強しようと思って始めたんだ。
そのへん察してくれ。
63:132人目の素数さん
08/12/22 01:52:44
紙と鉛筆がお勧め
64:132人目の素数さん
08/12/22 01:55:22
Maximaは仕事で使っていいんだっけ?ライセンス的に
65:132人目の素数さん
08/12/22 01:56:29
うんいいよ
66:132人目の素数さん
08/12/22 14:52:32
遊びで使ってもいいんだよ
67:59
08/12/23 16:37:56
>>63
俺、計算中によく±間違えたり、いつの間にか項が
増えたり減ったりするから紙は合わない。
wmMaxima を最新版にアップグレードしたら使い方が大分違ってて
あわてた orz
適応能力が低い俺にとっては結構迷惑な話だw
さて、今日はどんな計算をして遊ぼうかな・・・。
68:59
08/12/23 23:32:27
また躓いた orz
チェーンルールが再現できない
depends(x,u);
depends(y,x);
f1:diff(x,u);
f2:diff(y,x);
f3:f1*f2;
→('diff(x,u,1))*('diff(y,x,1))
orz
教えてください・・・。
69:132人目の素数さん
08/12/27 17:40:32
e^xをMaximaで計算させようとして limit((1+x/n)^n,n,inf) としたのですが
Is x positive, negative, or zero?
と言われてしまいます。こういった場合、どうすればいいのでしょうか?
どうやってxがゼロだとか負だとか正だとか指示すればいいのでしょうか?
というか、ある程度のパターン数までは自動で場合分けやってくれないんですかね?
70:132人目の素数さん
08/12/27 18:14:47
positive;
71:132人目の素数さん
08/12/27 18:20:09
3パターンしかなくてしかもすべて結果が同じなんだからスルーしてほしいよ・・・
72:132人目の素数さん
08/12/27 18:29:31
いちいち対話的に聞いてくるんじゃなくて
\{ 1/x (x=0)
∞ (x≠0)
みたいな感じで場合分け済みの結果を出してくれるとありがたいね
73:132人目の素数さん
09/01/02 15:23:36
Maximaのlimit計算はあまり賢くない
Is x-1 positive, negative, or zero?pos;
Is x-2 positive, negative, or zero?pos;
Is x-3 positive, negative, or zero?pos;
・・・
みたいなことになる場合も多々あるw
74:132人目の素数さん
09/01/03 00:56:24
0から2πで積分しようとしてるのにIs x-π positive, negative, or zero?とかきかれても困る
75:132人目の素数さん
09/01/03 19:24:18
>>74
0からπ、πから2πというふうに2回に分けて計算しろということだろう
76:132人目の素数さん
09/01/04 01:13:17
積分区間をわざわざ分けるのか。よく分からん
77:132人目の素数さん
09/01/14 12:11:03
eclで動くということはcから呼べるの?
78:132人目の素数さん
09/01/18 11:47:49
>>69
assume(x>0);
してから
limit((1+x/n)^n,n,inf);
では駄目?
79:132人目の素数さん
09/01/28 13:52:25
>>31
mixi見れないのでここに書いてもらえませんか?
80:132人目の素数さん
09/01/28 20:55:22
「PDAで数式処理してる奴いる?」
スレリンク(mobile板)l50
で知ったのだけど、Xcasってどうよ?
URLリンク(en.wikipedia.org)
URLリンク(www-fourier.ujf-grenoble.fr)
81:132人目の素数さん
09/01/30 02:39:33
age
82:132人目の素数さん
09/02/01 00:07:26
>>31
(1) 作成者様からのご回答
shell上でmaxima 5.16.3は正常に動作していますか?terminalから
% maxima
とやってちゃんと起動するかどうか試してみて下さい。このエラーメッセージを見る限り、imaximaというよりはmaxima自身がうまくインストール出来ていないように見えます。
(2) 私の返事その1
ご指摘の通り、wxmaxima.sourceforge.netから落としたdebパッケージがインストールされておりませんでした。(8.04 Hardyテスト済みと書いてありましたが。。。)
仕方なく、ubuntuのsynapticインストールでは5.13.0しかないため、そちらにダウングレードしましたが、今度は/usr/share/maximaができましたが、emacsフォルダがなく、今度はload-pathを考えなくてはなりません。
だめなら、5.15.0にアップグレードしてみて、様子を見てみます。
ありがとうございました。
(2) 私の返事その2
稼働ご報告。
結局、wxmaxima.sourceforge.netからダウンロードする、maxima-5.16.3のdebパッケージの内部の依存関係がおかしかったようです。
5.15.0のdebパッケージを探してきて、インストールすると、imaximaが動きました。
どうもありがとうございました。
追伸。
alien --scriptでrpmパッケージをdebパッケージに変換しようとしましたけど、なかなかうまくいかないものです。
83:79
09/02/02 16:01:22
ありがとうございます
84:132人目の素数さん
09/02/06 15:43:27
maximaの内部表現
(MLIST SIMP) ((MPLUS SIMP) $X ((MTIMES SIMP) 3 $Y)))
を普通のlispの表現
(+ x ( * 3 y))
に変換する関数はないのでしょうか
85:132人目の素数さん
09/02/06 22:31:00
maximaのグラフ(gnuplot)をpsやeps,tgifなどの諸形式で保存したいのですが、
可能ですか?
86:132人目の素数さん
09/02/07 08:45:29
>>85
たとえばこれでepsが吐き出されるよ。
plot2d([x^2], [x,-5,5],
[gnuplot_preamble, "set size ratio 1; set zeroaxis;"], [gnuplot_term, ps],
[gnuplot_out_file, "C:/temp/plot2d.eps"])$
87:132人目の素数さん
09/02/08 09:20:15
>>84
trans4.lisp
の
tr-lisp->lisp
がそれっぽく見えるけどよくわからない
88:132人目の素数さん
09/02/16 14:50:33
デルタ関数を作りたいのですが、Lispが出来ません。
作ってくれる人はいませんか?
89:132人目の素数さん
09/02/20 14:55:32
行列のsvdがないみたいなのですが
自分で作るしかないのでしょうか
90:132人目の素数さん
09/02/20 16:16:29
plot3dを使って直線l: x=2y=z のグラフを表示させたいのですが、
plot3d([[x, 2*y]], [x,-5,5], [y,-5,5]);
としても、うまくいきません。教えてください。
91:132人目の素数さん
09/02/20 18:01:13
>>88
URLリンク(d.hatena.ne.jp)
92:132人目の素数さん
09/02/24 00:00:18
>>89
dgesvd()は?
93:132人目の素数さん
09/02/24 22:17:57
maxima-5.17.0をダウソ、使い方をググルもそもそもInput欄などない。
はい、そこで終了。
94:132人目の素数さん
09/02/25 15:08:39
>>92
linearalgパッケージが壊れているのか
うちでは読み込めない
95:132人目の素数さん
09/02/26 08:14:44
>>94
間違った
load(lapack)が動かなかった
しかし最新版にしたら動いた
96:132人目の素数さん
09/03/05 17:21:50
Maxima 5.17.1 を使っています。(WinXP)
・ Option → Preferences でフォントサイズを指定 (Save Preferences) しても、
その時は有効なのに、次回起動したときはディフォールトに戻ってしまう。
・(%i1) x : 1/3 $
(%i2) float(x);
(%o2) 0.33333333333333
(%i3) fpprec : 6;
(%o3) 6
(%i4) float(x);
(%o4) 0.33333333333333
こういうものなんですか? 以前は出来たような記憶があるんですが。
有効数字の桁数を指定するには、どうしたらいいのでしょうか。
97:132人目の素数さん
09/03/06 19:13:40
お!Maximaスレあったのか
シミュ板には無くなってるからもう無いのかと思ったわ
>>96
fpprintprec : 6$
fpprecは内部で計算する桁数で、表示する桁数はfpprintprec
98:96
09/03/06 20:00:12
>>97
ありがとうございました。やってみました。
(%i1) a:2/3 $
(%i2) float(a);
(%o2) 0.66666666666667
(%i3) fpprintprec; fpprintprec : 6;
(%o3) 0
(%o4) 6
(%i5) float(a);
(%o5) 0.6667
あれ、有効数字の桁数ではなくて、print prec なのかー。
99:98
09/03/06 20:08:33
(%i1) fpprintprec;
(%o1) 0
(%i2) a:2/3*1e-9;
(%o2) 6.6666666666666664E-10
(%i3) float(a);
(%o3) 6.6666666666666664E-10
(%i4) fpprintprec : 6 $
(%i5) float(a);
(%o5) 6.666667E-10
ナンかヘンです。
100:132人目の素数さん
09/03/06 20:54:58
>>98
どうヘンなのか言ってくれないと答えようがない
マニュアルによるとfpprintprecはbigfloat型数値のための変数となってるが
これで解決するか?
x:1/3;for i:2 thru 16 do block([],fpprintprec:i,print(i," ",float(x)," ",bfloat(x)));
101:132人目の素数さん
09/03/06 23:40:18
>>100
ありがとうございます。
x:2/3*1e-6 $ for i:2 thru 16 do block([], fpprintprec:i, print(i, " ", float(x), " ", bfloat(x)));
2 6.67E-7 6.6b-7
3 6.667E-7 6.66b-7
4 6.6667E-7 6.666b-7
5 6.66667E-7 6.6666b-7
6 6.666667E-7 6.66666b-7
7 6.6666667E-7 6.666666b-7
8 6.66666667E-7 6.6666666b-7
9 6.666666667E-7 6.66666666b-7
10 6.6666666667E-7 6.666666666b-7
11 6.66666666667E-7 6.6666666666b-7
12 6.666666666667E-7 6.66666666666b-7
13 6.6666666666667E-7 6.666666666666b-7
14 6.66666666666667E-7 6.6666666666666b-7
15 6.666666666666666E-7 6.66666666666666b-7
16 6.666666666666666E-7 6.666666666666666b-7
とりあえずは bfloat でなく、float 型の方に注目しています。
・有効数字の桁数の指定が思ったようにできない。自分で関数を作れ!ということなのか。
・数値の丸め方がおかしい。例「2 6.67E-7 6.6b-7」
あ、四捨五入の指定のしかたは、別にあるんでしょうか。
全然別件ですが、"," の後にはスペースを1つ入れる、というのが通常なんですが。
「Maxima is a computer program for doing mathematics calculations, symbolic
manipulations, numerical・・」これだって、そうなんですが。
102:101
09/03/06 23:52:01
言い忘れです。
(%i14) x=2/3 $ fpprintprec : 4 $ float(x);
(%o16) 0.67
「0.67」って4文字だ、と言い張るのでしょうか。
103:101
09/03/06 23:58:43
MAXIMA は数式処理プログラムであるからして、数値演算は2の次3の次、
というのはわかります。
しかし、近似多項式の演算とかにも使いたいのです。つまり多項式を想定し、
数値ペアを与えて、solve で各次の係数を求めたりする用途です。
結果をうまく丸めてくれないと、ちょっと困ります。
104:132人目の素数さん
09/03/07 00:53:37
>>101-103
疲れる人だな
Maximaなんかやめて、Octaveを調べた方がいいと思うわ
>bfloat でなく、float 型の方に注目しています。
せっかくfpprintprecはbigfloat型数値のための変数と書いたのに・・
マニュアル読んでないだろ
105:132人目の素数さん
09/03/07 08:53:18
>>104
ありがとうございます。
説明書のキーワード検索機能が弱いように思います。
bfloat にしても丸め方がおかしい。>>101
fpprintprec が、なぜ float の表示桁数に影響するのか。>>101
Option → Preferences でフォントサイズを指定 (Save Preferences) しても、
その時は有効なのに、次回起動したときはディフォールトに戻ってしまう。>>96
さようなら。
106:132人目の素数さん
09/03/09 11:55:55
to_lisp()
してから浮動小数演算してみるとlispのデフォルト浮動小数計算と違うのが動いてるのがわかる
107:132人目の素数さん
09/03/11 04:08:48
>>101
その bfloat のヤツ。小中学生の頃から、そんな書き方をしてはいけません!
と言われて育ったぜ。
108:132人目の素数さん
09/03/11 04:19:28
カシオ計算機とか、インテル・マイクロソフトの数値演算は
さすがにスゴイぞ。文句のつけようがないほどやってる。
109:132人目の素数さん
09/03/11 04:21:48
ガウスさんだっけ。数値演算ガンガンやって・・
数値演算をバカにしては、なりません。
110:132人目の素数さん
09/03/11 04:37:37
URLリンク(www7b.biglobe.ne.jp)
多桁演算、やってみてます。
111:132人目の素数さん
09/03/11 04:52:02
>>110
実は C で多桁演算プログラムを書いて、うわ、間違ってる、とか
やってた記憶があります。人間って間違えるものなのだな。
今ではそれほど後悔していない。
112:132人目の素数さん
09/03/11 04:59:34
どうやって間違いを見つけたか。e の計算とかπの計算をやらかすのさ。
100万桁だって同じはずダロ。違うとしたら、たぶんオレが間違い。
113:132人目の素数さん
09/03/11 06:47:02
シュリニヴァーサ・ラマヌジャン(Srinivasa Aiyangar Ramanujan、1887年12月22日 - 1920年4月26日)はインドの数学者。
すげ。
114:132人目の素数さん
09/03/11 08:29:26
fpprintprec周りの話が、MLでも出てましたね。
あと、
URLリンク(maxima.sourceforge.net)
には
fpprintprec is the number of digits to print when printing an ordinary
float or bigfloat number.
って載ってますね。
現状ではfloatに対する挙動はmanual通りではないけど。
115:132人目の素数さん
09/03/25 01:19:15
ev(e, x:1/x)
みたいなのを関数化しようとして
f(e, x):=ev(e, x:1/x);
と定義してもうまくいきません。どうすればいいのでしょう?
116:盛り上げたい
09/03/25 08:26:34
:=では引数は評価されないので
defineを使えばいけるんじゃね?
f(x):=x+1;
g(x):=f(x);
define(h(x),g(x));
ev(e,x:1/x)の動作例がいまいちわからんが
define(f(e,x),ev(e,x:1/x))
てな感じのイメージ
117:115
09/03/25 20:32:45
>>116
f(x)→f(1/x)みたいな変換をする為に、
ev(f(x), x:1/x)でうまくいきそうなのですが、これを関数化するとこで
つまずいてます。
f(x)として与える式の中に、xが全て陽(explicit)に現れてるのなら、
多分、ev()を使わずとも、subst()でx→1/xと置換すればいいのだと思うのですが
(ちょっと自信が無いです)。
118:盛り上げたい
09/03/25 21:17:41
それならお望みのものはこれだな
reciprocal(func) := func(1/x);
例えばこう使ってくれ
f(x):=x$g(a):=1+a+a^2$h(x):=sin(x)$
define(rf(x),reciprocal(f));
define(rg(x),reciprocal(g));
ひとまとめにこうしてしまうのも可
map(lambda([i],reciprocal(i)),[f,g,h]);
高階関数で調べると幸せになれる
119:132人目の素数さん
09/04/24 06:01:37
ほっしゅ
120:132人目の素数さん
09/04/24 11:34:46
対数正規分布関数(変数t,パラメータμ,σ)を区間[0,t]で積分して得られる関数に対して実験データを非線形フィットさせてパラメータを決定したいのですが、
手持ちのソフトでは難しく、うまくいきません。
アルゴリズムとしてはlevenberg-marquardt法を用いようと思っているのですが、
maximaではこういったことは可能でしょうか?
質問わかりづらかったら申し訳ありません。
121:132人目の素数さん
09/05/09 17:42:46
Windows7で動かない。 orz
勇んでVistaから乗り換えた俺涙目wwww
122:132人目の素数さん
09/05/11 17:00:39
インストールしたのは5.18.2なんですが、開いたwxMaximaには0.8.2と表示されます。
この、0.8.2って何の意味なんですか?
Maxima初心者なので教えてください。よろしくお願いします。
123:132人目の素数さん
09/05/11 17:38:28
maximaが本体でwxMaximaはGUI
124:132人目の素数さん
09/05/16 20:44:46
保守
125:132人目の素数さん
09/05/19 08:23:55
maximaでは演算子はどう表現するのでしょうか?
たとえば、量子力学で頻繁に使う昇降演算子l_+はつぎの性質を持ちます。
l_+ Y[l,m] = [(l-m)*(l+m+1)]^0.5 * Y[l,m+1]
ただし、Y[l,m]は球面調和関数
昇降演算子に限らず、自分で演算子を定義し、使用する方法が知りたいです
126:132人目の素数さん
09/05/19 08:39:44
powを演算子化したサンプル
infix("pow",100,120)$(a pow b):=a^b$a pow b pow c;
100とか120ってのは左と右への束縛力(結合性みたいなもの)を表す(maxは200)
単項演算子ならinfixではなくprefixやpostfixを使う
あまり賢くないので元の式の意味がわからんが適当に改良してみてくれ
127:132人目の素数さん
09/05/19 20:02:57
ありがとうございます。
128:132人目の素数さん
09/05/23 23:22:00
関数を返す関数はどう記述されますか?
g(x)を受け取ると、g(x-1)を返すf(x)
f(g(x)) := g(x-1);
のような感じです。
もしかすると、lispを勉強しないと駄目ですかね
129:132人目の素数さん
09/05/24 09:16:51
自己解決しました。
シミュ板の過去スレのまとめが参考になりました。
URLリンク(ryoma3.hp.infoseek.co.jp)
f(x,_h) := block([_a],_a:funmake(_h,[t]), subst(x-1,t,ev(_a)));
g(x) := 2*x
f(x,g); <- 2(x-1)
130:132人目の素数さん
09/05/29 12:32:21
ベクトルの外積をするために
load(vect);
してから
cross(v1,v2)
としても外積がでないのですが
何か間違っているのでしょうか
131:132人目の素数さん
09/05/29 18:11:31
matrixをlistに変換する関数はないのでしょうか
listに対するtransposeはないのでしょうか
132:132人目の素数さん
09/05/30 14:49:07
>>130
自分で定義する
cross( v1, v2 ):=
[ v1[2]*v2[3] - v1[3]*v2[2],
v1[3]*v2[1] - v1[1]*v2[3],
v1[1]*v2[2] - v1[2]*v2[1] ];
133:132人目の素数さん
09/05/31 12:27:13
maximaのfactorの出力結果ってアクセス出来ないのでしょうか
例えばfactor(84);%[1]などとやってもうまくいきません
メビウス関数を定義したくて
「平方数で割り切れるかの判定」を、
素因数分解の結果を使って行おうと思ったのですが・・
それか、他になにか良い代替案はありますかね
134:132人目の素数さん
09/06/01 05:17:45
load("vect")
するとmatrixの掛け算で変なエラーが出ることないないですか?
nxnの行列と1xn のベクトルの掛け算で
行列のサイズ合わないよ
とか
135:クリップボード
09/06/01 16:29:52
>>133
part関数を使ったらどうでしょうか。
(%i1) factor(84);
(%o1) 2^2 3 7
part(%o1,1) 4
part(%o1,2) 3
part(%o1,3) 7
136:クリップボード
09/06/03 16:15:47
>>131
matrixをlistに変換するには、演算子matrixを演算子listで置き換えればよいので
substpart関数が使える。
例えば、
m:matrix([4,3],[2,1])$
substpart("[",m,0);
[[4.3],[2,1]]
となる。
137:132人目の素数さん
09/06/03 18:03:05
なるほど
138:132人目の素数さん
09/06/04 15:00:57
ベクトルの次元数を上げたり下げたりはどうやりますか?
(%i7) v0 : [1,2,3];
v1 : [v0,1];
v2 : [1,2,3,4];
v1 . v2;
(%o7) [1,2,3]
(%o8) [[1,2,3],1]
(%o9) [1,2,3,4]
incompatible dimensions - cannot multiply
-- an error. To debug this try debugmode(true);
(%o8)を、[1,2,3,1]にしたいです。
139:132人目の素数さん
09/06/04 15:11:21
(%i1) v : [vx,vy,yz];
x : [xx,xy,xz];
v . x;
(%o1) [vx,vy,yz]
(%o2) [xx,xy,xz]
(%o3) xz*yz+vy*xy+vx*xx
(%o3)を、「v . x」に変形させることは出来ますか?
140:クリップボード
09/06/04 16:35:46
>>138
v0:[1,2,3]から[1,2,3,1]をつくるには、endcons関数で可能。
endcons(1,v0);
[1,2,3,1]
因みに、先頭に要素を入れるには、cons関数を利用する。
cons(1,v0);
[1,1,2,3]
また、(%o8) [[1,2,3],1]から[1,2,3,1]をつくるには、flatten関数を
利用する。
flatten(%o8);
[1,2,3,1]
141:132人目の素数さん
09/06/04 17:26:01
reshapeを標準関数にいれてほしい
142:変態ロリーマン ◆ghclfYsc82
09/06/05 05:52:39
元々はメモリ管理がアカンのやけど、そやけど関数を増やせば増やす程、
更に動作がトロくなりますな
143:クリップボード
09/06/05 15:34:36
>>141
求める関数と同じかわかりませんが,areshape関数を作ってみました。
reshape(A,m,n):=block([nr,nl,lis,a,b,c,s],
nr:length(A),
a:transpose(A),
nl:length(a),
if m*n # nr*nl then
(print("error ",m,"*",n,"should be equal to the number of matrix elements"),return(done)),
s:[],
b:flatten(substpart("[",a,0)),
for i thru n do(c:rest(b,-m*(n-i)),
s:endcons(c,s),
b:rest(b,m)
),
transpose(apply(matrix,s)))$
実際に適用してみると、
p:matrix([1,4,7,10],[2,5,8,11],[3,6,9,12]);
[ 1 4 7 10 ]
[ 2 5 8 11 ]
[ 3 6 9 12 ]
reshape(p,2,6);
[ 1 3 5 7 9 11 ]
[ 2 4 6 8 10 12 ]
となる。
144:132人目の素数さん
09/06/06 23:22:07
>>140
ありがとうございました。
おかげで出来ました。
145:132人目の素数さん
09/06/11 20:59:04
これバグかな?下の式は正常に動かないけども
sublist([1,2,3],evenp);
sublist([1,2,3],lambda([x],mod(x,2)=0));
146:132人目の素数さん
09/06/11 21:18:35
自己解決。こうかけば良いようだ
sublist([1,2,3],lambda([x],is(mod(x,2)=0)));
147:132人目の素数さん
09/06/16 10:52:37
MaximaでZpやF2上での計算って出来ますか?
148:132人目の素数さん
09/06/16 23:33:33
>>147
なかったら自分で作るとか。
149:132人目の素数さん
09/06/17 20:19:26
lisp ,@ に相当する演算子はないんだね
150:132人目の素数さん
09/06/17 22:47:35
最小インデックス計算したいだけなのに,なんでうまくいかないんだろう
min_index(lst):=block(local(k,mi),mi:1,
for k thru length(lst) do(
disp([k,mi,lst[k]]),
if lst[mi] < lst[k] then mi:k
),
disp([mi,lst[mi]]),
return(mi));
mir:min_index([3,1,5,0,10,60])
4が答えなのに6になる
151:132人目の素数さん
09/06/17 23:11:24
全然デバッグはしてない
mi(lst):=block([mini:1,minv:lst[1]],
for i:1 thru length(lst) do
if lst[i]<minv then block(minv:lst[i],mini:i),
return(mini));
152:132人目の素数さん
09/06/23 05:27:36
drowでファイル名指定してepsファイルに出力する方法がわからない
153:132人目の素数さん
09/06/24 01:14:07
どなたかご存じの方がいらっしゃれば教えていただけないでしょうか。
u(x,y,z,t) = u0(x,y,z,t) + \varepsilon u1(x,y,z,t) (u,u0,u1はすべてベクトル)
p(x,y,z,t) = p0(x,y,z,t) + \varepsilon p1(z,y,z,t) (p,p0,p1はすべてスカラー)
などと摂動展開を行い、これを基礎方程式に入れて線形的な関係式を求めたいと考えています。
#具体的には連続の式、Navier-Stokes方程式、Poissonの関係式から
#音波の波動方程式をMaximaで導出してみたいと考えています。
任意の座標系でできればいいのですが、まずはデカルト座標だけでもできればありがたいです。
以下デカルト座標系であることを前提にして書かせていただきます。
ここで皆さんに伺いたいことは以下の3点です。
1. 摂動パラメータ\varepsilonのようにx,y,z,tに依存しない定数を指定するコマンドを教えていただけないでしょうか。
具体的な数値(1とか2.5など)ではなく、「なんらかの定数値をとる\varepsilon」というように指定できるコマンドがあるとありがたいのですが...
2. VECTパッケージではある変数pがx,y,zに依存することを前提にしているようですが、pがx,y,z以外の変数(たとえばt(時間))にも依存するように指定することは可能でしょうか。
3. 摂動パラメータ\varepsilonについて整理する(MathematicaでいうとCollectコマンドになると思います)コマンドがあるのでしょうか。
MaximaでVECTをロードするとベクトル解析関係の計算を(成分に分解しないで)シンボリックに計算できるようなので
見通しよく計算できると考えています。
MathematicaにせよReduceにせよ、成分に分解しないとベクトル解析の計算ができないので大変見通しが悪くなってしまうのが残念です。
よろしくお願いします。
154:132人目の素数さん
09/06/27 22:32:23
maximaで区分関数(?)を表すことってできないのでしょうか?
例えば、下のような連続の式をグラフで表示させたいのですが。
・y(x):=2*x (x<0)
・y(x):=3*x (x>=0)
155:132人目の素数さん
09/07/01 22:02:03
ものすごい基本的なことなんですけれども、
行列の1つの要素を抜き出した時に1×1の行列扱いになって困っているのですが、単なる数字として扱う方法はありませんか?
例えば
A1: ([a11, a12, a13], [a21, a22, a23],[a31, a32, a33]);
A2: A[1][1]*A1;
みたいな事をやりたいんですけれど、どうやらA[1][1]の部分が行列扱いになっているようでエラーが出ます。
数字でなく式で扱っているのが悪いのでしょうか?出来れば式のままで整理したいのですが・・・
156:132人目の素数さん
09/07/02 18:59:25
それはA1がリストだからじゃないか?
Maximaではリストと行列は全くの別物
A1 : matrix ([a11, a12, a13], [a21, a22, a23],[a31, a32, a33]);
157:132人目の素数さん
09/07/02 23:25:44
すいません、書き込みの際にmatrixは書き忘れました。
実際には>>156に書いてあるように宣言していますが、1要素を抜き取ってもそれは数でなく行列扱いになっています。
158:132人目の素数さん
09/07/03 04:46:09
>A2: A[1][1]*A1;
Aには何が入ってるの?
159:132人目の素数さん
09/07/03 04:56:11
A1の間違いですね、申し訳ないです。
具体的な例を書くつもりが逆に混乱させているようですいません。
とにかく、行列を設定したあとに要素を抽出して、その要素を行列やリストでないただの数字として扱いたいのです。
160:132人目の素数さん
09/07/03 07:51:30
>A2: A1[1][1]*A1;
この書き方だと、行列A1のすべての要素にA1[1][1](=a11)を掛けた行列がA2に代入される。
>とにかく、行列を設定したあとに要素を抽出して、その要素を行列やリストでないただの数字として扱いたいのです。
A1[1][1],A[1][2]等でアクセスできる。というか、上の例ではしてるのでは?
あと、具体的なインプット、アウトプットを書いてくれると分かりやすい。
161:132人目の素数さん
09/07/12 17:34:19
すいません、質問です。
文字が入った行列の行列式を計算しました。
計算自体はうまくいったのですが、途中計算を出すためにはどうすればよいですか?
だれか教えてください。
162:132人目の素数さん
09/07/14 22:24:45
A:matrix([a11,a12,....],[a21,a22,....],....)
っていちいち書くのが面倒なんですが、自動で設定することはできないんでしょうか?
163:132人目の素数さん
09/07/16 00:31:40
macファイルをbatchコマンドで読み込むと$が無視されて数式がジャンジャン表示されるんだけど、$を有効にするにはどうしたらいい?
164:132人目の素数さん
09/07/17 05:03:17
初歩的な質問で申し訳ないですけど、
例えば、
Y = X * Y + A
っという方程式を、
Y = A / (1-X)
のように 左辺にY でまとめて表示させるにはどうしたら良いでしょうか?
できれば、右辺も、X と定数で分けたいです。
複雑な式の場合に、Y = ○X + △ ってまとめたいのですがそんな事が可能?
165:132人目の素数さん
09/07/18 13:46:33
∬(D)f(x,y)dxdy D:x^2+y^2<=1
といった重積分をするとき
integrate(integrate(f(x),y,sqrt(1-(x^2)),-1*sqrt(1-(x^2))),x,1,-1)
と累次化した形で入力しているのですが計算してくれません
この入力に何か間違いがありますか?
それともやり方自体が間違っているのでしょうか?
166:165
09/07/18 14:32:57
すいません
積分範囲が逆でした
integrate(integrate(f(x),y,-1*sqrt(1-(x^2)),sqrt(1-(x^2))),x,-1,1) と入力しましたが
これでもできませんorz
f(x)は任意の式です
167:132人目の素数さん
09/07/18 14:35:31
y?
168:165
09/07/18 14:48:00
すいませんf(x,y)です
integrate(integrate(f(x,y),y,-1*sqrt(1-(x^2)),sqrt(1-(x^2))),x,-1,1)
実行すると
Is (x-1)*(x+1) positive, negative, or zero?と聞かれて
positiveと入力すると
Defint: Lower limit of integration must be real.
-- an error. To debug this try debugmode(true);
って返されるんですよね
f(x,y)は1でやってます
169:132人目の素数さん
09/07/18 15:11:57
integrateの引数3番目に数式指定するとどうなるの?
170:132人目の素数さん
09/07/18 15:18:43
(x^2-1)が正だとルートの中が負になるので、
Maximaは積分範囲は実数にしてくださいと言っている。
negativeと答えるべき。
171:132人目の素数さん
09/07/23 12:31:05
maximaのlistとlispのlistを変換する関数ないのでしょうか
172:132人目の素数さん
09/07/24 00:04:26
10x10正方行列のdeterminantを行列成分で表示させようとしたらメモリが足りん的なこと言われたんだけどどうしたらよいの?
173:132人目の素数さん
09/07/24 00:11:40
あきらめる
174:132人目の素数さん
09/07/24 12:07:49
このスレは、明らかに回答者の数が不足している
175:132人目の素数さん
09/07/24 12:47:17
オレも質問者の側だ。回答者に成れるくらいレベルアップしたいが。
ぽんぽこさんの本以外でマトモな資料ってある?
ブルーバックスのはオレにはクソだった。
176:132人目の素数さん
09/07/28 05:51:56
ブルーバックスのはアマゾンでも評判が悪い
177:132人目の素数さん
09/07/29 16:12:14
次のバージョンはいつ出
translateのバグいつ治るんだろ
178:132人目の素数さん
09/08/11 16:37:44
一番バグが少ないのはどのバージョン?
>>177
みたいなバグがないなら古いバージョンでも使ってみたい
179:132人目の素数さん
09/08/12 23:52:33
>>164
solve(y=x*y+a,y);
180:132人目の素数さん
09/08/27 00:16:32
>>179
遅くなりましたが、ありがとうございます。かなり助かりました。
181:132人目の素数さん
09/08/28 15:39:57
本家がmediawiki置かせてくれるサーバーどっかにないか探してるね
182:132人目の素数さん
09/09/14 02:48:02
a x + b などと掛け算を省略できないのは仕様ですか?
それと構造化言語しか使ったことないんですが、block([x,y], a,b,c)をつかうのでなくlisp風で書く(例えば階乗などを)とどうなるんでしょうか?
183:132人目の素数さん
09/09/14 23:07:28
1234[100桁]5678
のように省略されているものを、すべて表示するためにはどうすればいいですか?
184:132人目の素数さん
09/09/15 01:03:44
>>183
そういう表示をする実例(計算式)を出してくれ。
185:クリップボード
09/09/15 12:22:10
>>183
set_display(ascii)ですべて表示できます。
元にはset_display(xml)で戻ります。
186:183
09/09/15 21:51:21
ありがとうございます、助かりました
187:132人目の素数さん
09/09/23 11:11:08
Σ[x=1,∞]x(2x-1)/3^x
の計算をさせたいのですが、どう表記すればいいでしょうか。
sum(i(2*i-1)/3^i, i, 1, inf);
だと駄目っぽいんですよね…。
お願いします
188:132人目の素数さん
09/09/23 13:06:20
nusum(i*(2*i-1)/3^i, i, 1, n); limit(%, n, inf);
189:132人目の素数さん
09/09/23 13:56:16
>>188
>>187 ではありませんが、勉強になりました。有り難うございます。
190:132人目の素数さん
09/09/23 13:56:31
n : 30
でセットですけど、
n = 30
だとどういう意味なんですか?
結果はブーリアンとして扱われるんですか?
191:132人目の素数さん
09/09/24 00:49:56
>>188
ありがとうございます。
直接、infは駄目なんですね。
192:187,191
09/09/24 01:03:49
そもそもの表記が間違ってましたね、気づきませんでした。
i(2*i-1)
ではなく、
i*(2*i-1)
とするべきだったんですね。
193:132人目の素数さん
09/09/25 11:21:16
微分演算子のみを書いておくことって出来ますか?ヤコビアンの確かめで
使いたいんですが、ある式を、たとえば
sin(t)*d/dr+1/r*d/dt
とかって感じで表現できますか?
194:132人目の素数さん
09/09/27 22:31:46
emacsでmaximaモードってないんでしょうか?
imaximaのことじゃなく、maximaの文法に沿ってインデントしてくれるモードです。
195:132人目の素数さん
09/09/28 22:24:16
お前が書けばある
196:132人目の素数さん
09/09/29 00:59:03
linsolve([eq1,eq2,eq3],[x,y,z,])
とかってした場合の
x = a*b/y
みたいな解が出てくるのですが、
変数リストの文字をすべて定数に置き換えて表示させる方法ってありませんか?
上記の例だと簡単ですが、もっと式、変数の数が増えてくると
解けてるのかどうかの確認すらできません。
よろしくお願いします。
197:132人目の素数さん
09/10/05 15:02:05
wxmaximaのどこが便利なのかわからない
198:132人目の素数さん
09/10/27 12:19:24
octaveを使っている人はいるのかな。スレッドがない。化学板にもない。
199:132人目の素数さん
09/10/27 13:32:23
⊃ スレリンク(unix板)
200:132人目の素数さん
09/11/20 02:12:57
wxMaximaを使ってある関数g(x)がある区間x=x1〜x2でとる値を書き出す方法を教えてください。
xとg(x)をデータリスト(dat)に格納して
load(numericalio);
write_data(dat,"hoge.dat");
で書き出すことは分かったのですが格納の仕方がわかりません。
参考ページ
URLリンク(cosmo.phys.hirosaki-u.ac.jp)
dat:rk( x, x, 1, [t, 0, 2, 0.1] );の部分です。
宜しくお願いします。
201:115
09/11/20 22:44:39
結局at()を使って
r(e,x):=at(e,x=1/x);
みたいにやる事になりそうです。
202:132人目の素数さん
09/12/02 22:44:30
wxMaximaのテキスト入力等に日本語を使用する事はできますか?
xml出力でテキスト・タイトル等が残せるのに気がついて、
更に日本語が使えると非常に便利だと思うんですが…
203:132人目の素数さん
09/12/06 19:10:26
行列 4*4の行列式を計算して算出しました。
このときに変数を用いたのですが、それに変数に値を代入して計算を行うことができますか?
204:132人目の素数さん
09/12/06 22:23:11
質問を重ねてすみませんが、
コマンドプロンプトの方は起動すると自動的に
(%i1) とでて、式を入力し、Enterを押すと計算が行われるのですが、
GUI操作の方であるwxMaxima 0.8.3を起動して文字を入力しても
(%i1)が出てきません。
自分で
(%i1) 計算式 Enter
を入力しても駄目です。
GUI上ではどのようにして計算式を入力すればいいのでしょうか?
205:132人目の素数さん
09/12/06 22:33:32
数式入力後 Shift+Enterで実行だったのですね。
スレ汚しすみません。
206:132人目の素数さん
09/12/07 18:14:50
axiom
ってどうなんだろう
maximaから乗り換えたとかいう書き込みも時々みる
だけどmaximaのlispで関数書ける便利さは捨てれないなあ
207:132人目の素数さん
09/12/12 10:28:20
>>206
maxima言語(?)のみで完結せずに、lispに頼ってるとこは、
あんまり美しくないなぁとか思ってるんですけど…駄目?
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
4979日前に更新/55 KB
担当:undef