【数式処理システム】 Maxima 【Common Lisp】
4 :
132人目の素数さん:2008/09/02(火) 18:52:26
まずは基本から教えてくれ
必須コマンドと使用例よろすく
Rとの連携はlisp経由でできるんでしょ?
matlabは?
Lispでプログラム書く気になれば何とでも連携できるんじゃね?
☆ チン マチクタビレタ〜
マチクタビレタ〜
☆ チン 〃 ∧_∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
ヽ ___\(\・∀・) < MAXCELまだ〜?
\_/⊂ ⊂_ ) \_____________
/ ̄ ̄ ̄ ̄ ̄ ̄ /|
| ̄ ̄ ̄ ̄ ̄ ̄ ̄| |
| 日 立 |/
9 :
132人目の素数さん:2008/09/08(月) 08:41:56
懐かしいヌレだ
ほしゅ
5.16.3をsourceからmakeしたらmake checkでベッセル関数の値が期待したのと違う値になるという警告でる
12 :
132人目の素数さん:2008/09/17(水) 17:45:32
age
um
maxima-5.16.3.exeがウィルスに感染してたようなんだけど、誤作動かな?
ちなみにアンチウィルスソフトはca インターネットセキュリティ
15 :
132人目の素数さん:2008/09/23(火) 21:13:28
保守
f(x)をx>=0ではx^2、x<0ではx^3みたいな範囲によって変わる関数に定義して、
それをグラフにプロットするにはどうすればよいのでしょうか
>>16 f(x):=if x >= 0 then x^2 else x^3;
plot2d(f(x),[x,-1,1]);
>>17 できないかと思ったけど最新verにしたらできました
ありがとうございます
imaximaの1.0bでinline plotできるって聞いたんでやってみたんだけど、
これ結構重いな
msysでソースをコンパイル出来るのでしょうか?
USBメモリにいれて持歩きたいんですけど
21 :
132人目の素数さん:2008/09/30(火) 06:38:53
ぐぐれかす
>>23 おしえるためにきいてるからぐぐるきなんてないよ
ボケ
だったら、自分でやれ
>>26,27
だったら、おまえら協力してやれよ。下衆には関わるつもりないから。
つか、そもそも MSYS 知らん奴に答えられる問題じゃなかろうにw
30 :
20:2008/09/30(火) 20:20:47
仮想レジストリソフトなるもので自己解決しましたのでもういいです
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のどこをいじれば良いのかわかりません。そもそもこのライブラリがどこで読み込まれるべきかも併せて、ご教示いただければ幸甚です。
mixiとのダブルポストご苦労様w
2chのシミュ板とダブルポストなら、結構気にしますが、mixiとならば、(一応)クローズド環境と完全なオープン環境との違いですので、ダブルポスト可ではないかと私が判断しました。
34 :
31:2008/10/15(水) 21:03:35
何とか動きましたので、mixiの方に内容を記載しました。
35 :
132人目の素数さん:2008/10/25(土) 15:49:50
age
36 :
132人目の素数さん:2008/11/15(土) 00:20:40
maximaってフーリエ変換できますか?
できないわけないだろう
38 :
132人目の素数さん:2008/11/15(土) 11:55:17
maximaには標準でフーリエ変換が用意されてますか?
自分で変換の式かかないとダメ?
無いわけないだろう
開発がなんか最近低調になっちゃったみたいだね。そろそろ乗り換え時期かな
何に乗り換えるん?
開発者が死んでたのか・・・
それはそんな最近の話じゃないぞ。
ML見てると最近また活発だという印象。
44 :
132人目の素数さん:2008/11/22(土) 17:59:52
maximaを使って片対数グラフを作成したいのですが,
方法が分からずに困っております.
どなた様かご教授願えませんでしょうか.
最後の出力結果のLogをとれば良いだけじゃね?
100変数の関数を
x1,x3,x5...についてのみ微分したい
という場合はx1,x2..を全部手で書くしかないのでしょうか
書くプログラムを書けばよいのでは?
wxMaximaの使い方がやっとわかった
SHIFT+ENTERだったのね
>>45 2D plotでgnuplotを選んでオプション欄に
set logscale x
あるいは
set logscale y
51 :
132人目の素数さん:2008/12/13(土) 00:58:35 BE:1748874479-2BP(808)
>>49 うん。
でも、勝手に挿入される閉じカッコを無視して式末へジャンプする方法がわからないんだ。
_| ̄|○
∫[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?と返ってきたのだがどういうことです
4*sin(x)^2+4*cos(x)^2-4*cos(x)+1 は正なのか負なのか?と聞いておられるのだ
54 :
132人目の素数さん:2008/12/17(水) 02:15:13
%rというのが出てきたんですが、これって何の定数ですか?
>>1 待望のMaximaスレッドを建ててくれてありがとう!
56 :
132人目の素数さん:2008/12/21(日) 02:07:35
sqrt(2)*sqrt(3) の結果として √6 が欲しいんだけど、
√2√3 になってしまう・・・。
√6にするにはどうしたらいいんだ ofz
sqrt(2*3)
58 :
56:2008/12/21(日) 02:20:50
>>57 ありがとう。
検索したら、見つかった。
sqrt(2)*sqrt(3)
rootscontract(%)
これで√6 になる。
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:2008/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
62 :
59:2008/12/22(月) 01:15:32
>>61 年収400万の末端工員の俺にそんなこと言われても困るんだが orz
貧乏で馬鹿だけど、少しは勉強しようと思って始めたんだ。
そのへん察してくれ。
紙と鉛筆がお勧め
Maximaは仕事で使っていいんだっけ?ライセンス的に
うんいいよ
66 :
132人目の素数さん:2008/12/22(月) 14:52:32
遊びで使ってもいいんだよ
67 :
59:2008/12/23(火) 16:37:56
>>63 俺、計算中によく±間違えたり、いつの間にか項が
増えたり減ったりするから紙は合わない。
wmMaxima を最新版にアップグレードしたら使い方が大分違ってて
あわてた orz
適応能力が低い俺にとっては結構迷惑な話だw
さて、今日はどんな計算をして遊ぼうかな・・・。
68 :
59:2008/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
教えてください・・・。
e^xをMaximaで計算させようとして limit((1+x/n)^n,n,inf) としたのですが
Is x positive, negative, or zero?
と言われてしまいます。こういった場合、どうすればいいのでしょうか?
どうやってxがゼロだとか負だとか正だとか指示すればいいのでしょうか?
というか、ある程度のパターン数までは自動で場合分けやってくれないんですかね?
positive;
3パターンしかなくてしかもすべて結果が同じなんだからスルーしてほしいよ・・・
いちいち対話的に聞いてくるんじゃなくて
\{ 1/x (x=0)
∞ (x≠0)
みたいな感じで場合分け済みの結果を出してくれるとありがたいね
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
0から2πで積分しようとしてるのにIs x-π positive, negative, or zero?とかきかれても困る
>>74 0からπ、πから2πというふうに2回に分けて計算しろということだろう
積分区間をわざわざ分けるのか。よく分からん
eclで動くということはcから呼べるの?
78 :
132人目の素数さん:2009/01/18(日) 11:47:49
>>69 assume(x>0);
してから
limit((1+x/n)^n,n,inf);
では駄目?
>>31 mixi見れないのでここに書いてもらえませんか?
81 :
132人目の素数さん:2009/01/30(金) 02:39:33
age
>>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:2009/02/02(月) 16:01:22
ありがとうございます
maximaの内部表現
(MLIST SIMP) ((MPLUS SIMP) $X ((MTIMES SIMP) 3 $Y)))
を普通のlispの表現
(+ x ( * 3 y))
に変換する関数はないのでしょうか
maximaのグラフ(gnuplot)をpsやeps,tgifなどの諸形式で保存したいのですが、
可能ですか?
>>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"])$
>>84 trans4.lisp
の
tr-lisp->lisp
がそれっぽく見えるけどよくわからない
デルタ関数を作りたいのですが、Lispが出来ません。
作ってくれる人はいませんか?
行列のsvdがないみたいなのですが
自分で作るしかないのでしょうか
90 :
132人目の素数さん:2009/02/20(金) 16:16:29
plot3dを使って直線l: x=2y=z のグラフを表示させたいのですが、
plot3d([[x, 2*y]], [x,-5,5], [y,-5,5]);
としても、うまくいきません。教えてください。
maxima-5.17.0をダウソ、使い方をググルもそもそもInput欄などない。
はい、そこで終了。
>>92 linearalgパッケージが壊れているのか
うちでは読み込めない
>>94 間違った
load(lapack)が動かなかった
しかし最新版にしたら動いた
96 :
132人目の素数さん:2009/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
こういうものなんですか? 以前は出来たような記憶があるんですが。
有効数字の桁数を指定するには、どうしたらいいのでしょうか。
お!Maximaスレあったのか
シミュ板には無くなってるからもう無いのかと思ったわ
>>96 fpprintprec : 6$
fpprecは内部で計算する桁数で、表示する桁数はfpprintprec
98 :
96:2009/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:2009/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
ナンかヘンです。
>>98 どうヘンなのか言ってくれないと答えようがない
マニュアルによるとfpprintprecはbigfloat型数値のための変数となってるが
これで解決するか?
x:1/3;for i:2 thru 16 do block([],fpprintprec:i,print(i," ",float(x)," ",bfloat(x)));
>>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:2009/03/06(金) 23:52:01
言い忘れです。
(%i14) x=2/3 $ fpprintprec : 4 $ float(x);
(%o16) 0.67
「0.67」って4文字だ、と言い張るのでしょうか。
103 :
101:2009/03/06(金) 23:58:43
MAXIMA は数式処理プログラムであるからして、数値演算は2の次3の次、
というのはわかります。
しかし、近似多項式の演算とかにも使いたいのです。つまり多項式を想定し、
数値ペアを与えて、solve で各次の係数を求めたりする用途です。
結果をうまく丸めてくれないと、ちょっと困ります。
>>101-103 疲れる人だな
Maximaなんかやめて、Octaveを調べた方がいいと思うわ
>bfloat でなく、float 型の方に注目しています。
せっかくfpprintprecはbigfloat型数値のための変数と書いたのに・・
マニュアル読んでないだろ
>>104 ありがとうございます。
説明書のキーワード検索機能が弱いように思います。
bfloat にしても丸め方がおかしい。
>>101 fpprintprec が、なぜ float の表示桁数に影響するのか。
>>101 Option → Preferences でフォントサイズを指定 (Save Preferences) しても、
その時は有効なのに、次回起動したときはディフォールトに戻ってしまう。
>>96 さようなら。
to_lisp()
してから浮動小数演算してみるとlispのデフォルト浮動小数計算と違うのが動いてるのがわかる
>>101 その bfloat のヤツ。小中学生の頃から、そんな書き方をしてはいけません!
と言われて育ったぜ。
カシオ計算機とか、インテル・マイクロソフトの数値演算は
さすがにスゴイぞ。文句のつけようがないほどやってる。
ガウスさんだっけ。数値演算ガンガンやって・・
数値演算をバカにしては、なりません。
>>110 実は C で多桁演算プログラムを書いて、うわ、間違ってる、とか
やってた記憶があります。人間って間違えるものなのだな。
今ではそれほど後悔していない。
どうやって間違いを見つけたか。e の計算とかπの計算をやらかすのさ。
100万桁だって同じはずダロ。違うとしたら、たぶんオレが間違い。
シュリニヴァーサ・ラマヌジャン(Srinivasa Aiyangar Ramanujan、1887年12月22日 - 1920年4月26日)はインドの数学者。
すげ。
ev(e, x:1/x)
みたいなのを関数化しようとして
f(e, x):=ev(e, x:1/x);
と定義してもうまくいきません。どうすればいいのでしょう?
:=では引数は評価されないので
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:2009/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と置換すればいいのだと思うのですが
(ちょっと自信が無いです)。
それならお望みのものはこれだな
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人目の素数さん:2009/04/24(金) 06:01:37
ほっしゅ
120 :
132人目の素数さん:2009/04/24(金) 11:34:46
対数正規分布関数(変数t,パラメータμ,σ)を区間[0,t]で積分して得られる関数に対して実験データを非線形フィットさせてパラメータを決定したいのですが、
手持ちのソフトでは難しく、うまくいきません。
アルゴリズムとしてはlevenberg-marquardt法を用いようと思っているのですが、
maximaではこういったことは可能でしょうか?
質問わかりづらかったら申し訳ありません。
121 :
132人目の素数さん:2009/05/09(土) 17:42:46
Windows7で動かない。 orz
勇んでVistaから乗り換えた俺涙目wwww
122 :
132人目の素数さん:2009/05/11(月) 17:00:39
インストールしたのは5.18.2なんですが、開いたwxMaximaには0.8.2と表示されます。
この、0.8.2って何の意味なんですか?
Maxima初心者なので教えてください。よろしくお願いします。
maximaが本体でwxMaximaはGUI
保守
maximaでは演算子はどう表現するのでしょうか?
たとえば、量子力学で頻繁に使う昇降演算子l_+はつぎの性質を持ちます。
l_+ Y[l,m] = [(l-m)*(l+m+1)]^0.5 * Y[l,m+1]
ただし、Y[l,m]は球面調和関数
昇降演算子に限らず、自分で演算子を定義し、使用する方法が知りたいです
powを演算子化したサンプル
infix("pow",100,120)$(a pow b):=a^b$a pow b pow c;
100とか120ってのは左と右への束縛力(結合性みたいなもの)を表す(maxは200)
単項演算子ならinfixではなくprefixやpostfixを使う
あまり賢くないので元の式の意味がわからんが適当に改良してみてくれ
ありがとうございます。
関数を返す関数はどう記述されますか?
g(x)を受け取ると、g(x-1)を返すf(x)
f(g(x)) := g(x-1);
のような感じです。
もしかすると、lispを勉強しないと駄目ですかね
ベクトルの外積をするために
load(vect);
してから
cross(v1,v2)
としても外積がでないのですが
何か間違っているのでしょうか
matrixをlistに変換する関数はないのでしょうか
listに対するtransposeはないのでしょうか
>>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] ];
maximaのfactorの出力結果ってアクセス出来ないのでしょうか
例えばfactor(84);%[1]などとやってもうまくいきません
メビウス関数を定義したくて
「平方数で割り切れるかの判定」を、
素因数分解の結果を使って行おうと思ったのですが・・
それか、他になにか良い代替案はありますかね
load("vect")
するとmatrixの掛け算で変なエラーが出ることないないですか?
nxnの行列と1xn のベクトルの掛け算で
行列のサイズ合わないよ
とか
135 :
クリップボード:2009/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 :
クリップボード:2009/06/03(水) 16:15:47
>>131 matrixをlistに変換するには、演算子matrixを演算子listで置き換えればよいので
substpart関数が使える。
例えば、
m:matrix([4,3],[2,1])$
substpart("[",m,0);
[[4.3],[2,1]]
となる。
なるほど
138 :
132人目の素数さん:2009/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人目の素数さん:2009/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 :
クリップボード:2009/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]
reshapeを標準関数にいれてほしい
元々はメモリ管理がアカンのやけど、そやけど関数を増やせば増やす程、
更に動作がトロくなりますな
143 :
クリップボード:2009/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 ]
となる。
>>140 ありがとうございました。
おかげで出来ました。
これバグかな?下の式は正常に動かないけども
sublist([1,2,3],evenp);
sublist([1,2,3],lambda([x],mod(x,2)=0));
自己解決。こうかけば良いようだ
sublist([1,2,3],lambda([x],is(mod(x,2)=0)));
MaximaでZpやF2上での計算って出来ますか?
lisp ,@ に相当する演算子はないんだね
最小インデックス計算したいだけなのに,なんでうまくいかないんだろう
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になる
全然デバッグはしてない
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));
drowでファイル名指定してepsファイルに出力する方法がわからない
どなたかご存じの方がいらっしゃれば教えていただけないでしょうか。
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にせよ、成分に分解しないとベクトル解析の計算ができないので大変見通しが悪くなってしまうのが残念です。
よろしくお願いします。
maximaで区分関数(?)を表すことってできないのでしょうか?
例えば、下のような連続の式をグラフで表示させたいのですが。
・y(x):=2*x (x<0)
・y(x):=3*x (x>=0)
ものすごい基本的なことなんですけれども、
行列の1つの要素を抜き出した時に1×1の行列扱いになって困っているのですが、単なる数字として扱う方法はありませんか?
例えば
A1: ([a11, a12, a13], [a21, a22, a23],[a31, a32, a33]);
A2: A[1][1]*A1;
みたいな事をやりたいんですけれど、どうやらA[1][1]の部分が行列扱いになっているようでエラーが出ます。
数字でなく式で扱っているのが悪いのでしょうか?出来れば式のままで整理したいのですが・・・
それはA1がリストだからじゃないか?
Maximaではリストと行列は全くの別物
A1 : matrix ([a11, a12, a13], [a21, a22, a23],[a31, a32, a33]);
すいません、書き込みの際にmatrixは書き忘れました。
実際には
>>156に書いてあるように宣言していますが、1要素を抜き取ってもそれは数でなく行列扱いになっています。
>A2: A[1][1]*A1;
Aには何が入ってるの?
A1の間違いですね、申し訳ないです。
具体的な例を書くつもりが逆に混乱させているようですいません。
とにかく、行列を設定したあとに要素を抽出して、その要素を行列やリストでないただの数字として扱いたいのです。
>A2: A1[1][1]*A1;
この書き方だと、行列A1のすべての要素にA1[1][1](=a11)を掛けた行列がA2に代入される。
>とにかく、行列を設定したあとに要素を抽出して、その要素を行列やリストでないただの数字として扱いたいのです。
A1[1][1],A[1][2]等でアクセスできる。というか、上の例ではしてるのでは?
あと、具体的なインプット、アウトプットを書いてくれると分かりやすい。
すいません、質問です。
文字が入った行列の行列式を計算しました。
計算自体はうまくいったのですが、途中計算を出すためにはどうすればよいですか?
だれか教えてください。
162 :
132人目の素数さん:2009/07/14(火) 22:24:45
A:matrix([a11,a12,....],[a21,a22,....],....)
っていちいち書くのが面倒なんですが、自動で設定することはできないんでしょうか?
163 :
132人目の素数さん:2009/07/16(木) 00:31:40
macファイルをbatchコマンドで読み込むと$が無視されて数式がジャンジャン表示されるんだけど、$を有効にするにはどうしたらいい?
初歩的な質問で申し訳ないですけど、
例えば、
Y = X * Y + A
っという方程式を、
Y = A / (1-X)
のように 左辺にY でまとめて表示させるにはどうしたら良いでしょうか?
できれば、右辺も、X と定数で分けたいです。
複雑な式の場合に、Y = ○X + △ ってまとめたいのですがそんな事が可能?
165 :
132人目の素数さん:2009/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:2009/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)は任意の式です
y?
168 :
165:2009/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でやってます
integrateの引数3番目に数式指定するとどうなるの?
(x^2-1)が正だとルートの中が負になるので、
Maximaは積分範囲は実数にしてくださいと言っている。
negativeと答えるべき。
maximaのlistとlispのlistを変換する関数ないのでしょうか
172 :
132人目の素数さん:2009/07/24(金) 00:04:26
10x10正方行列のdeterminantを行列成分で表示させようとしたらメモリが足りん的なこと言われたんだけどどうしたらよいの?
あきらめる
このスレは、明らかに回答者の数が不足している
オレも質問者の側だ。回答者に成れるくらいレベルアップしたいが。
ぽんぽこさんの本以外でマトモな資料ってある?
ブルーバックスのはオレにはクソだった。
ブルーバックスのはアマゾンでも評判が悪い
次のバージョンはいつ出
translateのバグいつ治るんだろ
一番バグが少ないのはどのバージョン?
>>177 みたいなバグがないなら古いバージョンでも使ってみたい
179 :
132人目の素数さん:2009/08/12(水) 23:52:33
>>179 遅くなりましたが、ありがとうございます。かなり助かりました。
本家がmediawiki置かせてくれるサーバーどっかにないか探してるね
182 :
132人目の素数さん:2009/09/14(月) 02:48:02
a x + b などと掛け算を省略できないのは仕様ですか?
それと構造化言語しか使ったことないんですが、block([x,y], a,b,c)をつかうのでなくlisp風で書く(例えば階乗などを)とどうなるんでしょうか?
1234[100桁]5678
のように省略されているものを、すべて表示するためにはどうすればいいですか?
>>183 そういう表示をする実例(計算式)を出してくれ。
185 :
クリップボード:2009/09/15(火) 12:22:10
>>183 set_display(ascii)ですべて表示できます。
元にはset_display(xml)で戻ります。
186 :
183:2009/09/15(火) 21:51:21
ありがとうございます、助かりました
Σ[x=1,∞]x(2x-1)/3^x
の計算をさせたいのですが、どう表記すればいいでしょうか。
sum(i(2*i-1)/3^i, i, 1, inf);
だと駄目っぽいんですよね…。
お願いします
nusum(i*(2*i-1)/3^i, i, 1, n); limit(%, n, inf);
n : 30
でセットですけど、
n = 30
だとどういう意味なんですか?
結果はブーリアンとして扱われるんですか?
>>188 ありがとうございます。
直接、infは駄目なんですね。
そもそもの表記が間違ってましたね、気づきませんでした。
i(2*i-1)
ではなく、
i*(2*i-1)
とするべきだったんですね。
微分演算子のみを書いておくことって出来ますか?ヤコビアンの確かめで
使いたいんですが、ある式を、たとえば
sin(t)*d/dr+1/r*d/dt
とかって感じで表現できますか?
emacsでmaximaモードってないんでしょうか?
imaximaのことじゃなく、maximaの文法に沿ってインデントしてくれるモードです。
お前が書けばある
196 :
132人目の素数さん:2009/09/29(火) 00:59:03
linsolve([eq1,eq2,eq3],[x,y,z,])
とかってした場合の
x = a*b/y
みたいな解が出てくるのですが、
変数リストの文字をすべて定数に置き換えて表示させる方法ってありませんか?
上記の例だと簡単ですが、もっと式、変数の数が増えてくると
解けてるのかどうかの確認すらできません。
よろしくお願いします。
wxmaximaのどこが便利なのかわからない
octaveを使っている人はいるのかな。スレッドがない。化学板にもない。
201 :
115:2009/11/20(金) 22:44:39
結局at()を使って
r(e,x):=at(e,x=1/x);
みたいにやる事になりそうです。
wxMaximaのテキスト入力等に日本語を使用する事はできますか?
xml出力でテキスト・タイトル等が残せるのに気がついて、
更に日本語が使えると非常に便利だと思うんですが…
行列 4*4の行列式を計算して算出しました。
このときに変数を用いたのですが、それに変数に値を代入して計算を行うことができますか?
質問を重ねてすみませんが、
コマンドプロンプトの方は起動すると自動的に
(%i1) とでて、式を入力し、Enterを押すと計算が行われるのですが、
GUI操作の方であるwxMaxima 0.8.3を起動して文字を入力しても
(%i1)が出てきません。
自分で
(%i1) 計算式 Enter
を入力しても駄目です。
GUI上ではどのようにして計算式を入力すればいいのでしょうか?
数式入力後 Shift+Enterで実行だったのですね。
スレ汚しすみません。
axiom
ってどうなんだろう
maximaから乗り換えたとかいう書き込みも時々みる
だけどmaximaのlispで関数書ける便利さは捨てれないなあ
>>206 maxima言語(?)のみで完結せずに、lispに頼ってるとこは、
あんまり美しくないなぁとか思ってるんですけど…駄目?
?princ("test"); のように先頭に ? をつけるると
lisp の関数が呼び出せるようですが、xx-yy
のように - を含む関数の場合、呼び出す方法は
あるのでしょうか?
そのままかくと - が演算子として認識されてしまいます。
209 :
132人目の素数さん:2009/12/16(水) 07:36:13
5.20.1あげ
210 :
132人目の素数さん:2009/12/17(木) 20:27:10
2次元実数上で、領域の包含関係を判定するソフトを作りたいのですが
とりあえず、一次不等式と円の内側を表す不等式 (x-a)^2 + (y-b)^b <= rなど)
を処理できるものを作ろうと思ってまつ。
Maximaでこれらの不等式制約の処理(交点を求めて利用するとか)できますか?
おねがいします。
>>211 うまくいきました。ありがとうございます。
マニュアルに載っていたんですね。
213 :
132人目の素数さん:2010/01/03(日) 03:07:15
外部にファイルを書き出させたいのですが、(tex()の結果のみを外部ファイルに出力)
どのように書けばよいのでしょうか。
検索してみてもsave()が出てくるだけで,直接ファイルに書き出す方法を探しています。
>>213 with_stdout (f, expr_1, expr_2, expr_3, ...) は、どうでしょうか。
>>210 これはできそうでできない。というか、LISPで最初から書けばできるといういみではできるがな
ココでちょっとしたメッセージや
★★★「小沢氏は主張を通して検察に対して徹底的に対抗すべし」★★★
★★★「小沢氏は主張を通して検察に対して徹底的に対抗すべし」★★★
★★★「小沢氏は主張を通して検察に対して徹底的に対抗すべし」★★★
★★★「小沢氏は主張を通して検察に対して徹底的に対抗すべし」★★★
★★★「小沢氏は主張を通して検察に対して徹底的に対抗すべし」★★★
★★★「小沢氏は主張を通して検察に対して徹底的に対抗すべし」★★★
★★★「小沢氏は主張を通して検察に対して徹底的に対抗すべし」★★★
★★★「小沢氏は主張を通して検察に対して徹底的に対抗すべし」★★★
★★★「小沢氏は主張を通して検察に対して徹底的に対抗すべし」★★★
★★★「小沢氏は主張を通して検察に対して徹底的に対抗すべし」★★★
★★★「小沢氏は主張を通して検察に対して徹底的に対抗すべし」★★★
★★★「小沢氏は主張を通して検察に対して徹底的に対抗すべし」★★★
★★★「小沢氏は主張を通して検察に対して徹底的に対抗すべし」★★★
★★★「小沢氏は主張を通して検察に対して徹底的に対抗すべし」★★★
★★★「小沢氏は主張を通して検察に対して徹底的に対抗すべし」★★★
★★★「小沢氏は主張を通して検察に対して徹底的に対抗すべし」★★★
★★★「小沢氏は主張を通して検察に対して徹底的に対抗すべし」★★★
★★★「小沢氏は主張を通して検察に対して徹底的に対抗すべし」★★★
★★★「小沢氏は主張を通して検察に対して徹底的に対抗すべし」★★★
★★★「小沢氏は主張を通して検察に対して徹底的に対抗すべし」★★★
★★★「小沢氏は主張を通して検察に対して徹底的に対抗すべし」★★★
★★★「小沢氏は主張を通して検察に対して徹底的に対抗すべし」★★★
★★★「小沢氏は主張を通して検察に対して徹底的に対抗すべし」★★★
★★★「小沢氏は主張を通して検察に対して徹底的に対抗すべし」★★★
小沢先生、頑張って下さい。私は最後まで味方になります。
猫
218 :
132人目の素数さん:2010/01/25(月) 22:09:05
すみません、複雑な式をfloat表示させると、
( 3.14133*(10^25) * x^2 + 2.12412*(10^24) * x^3 + 2.12412*(10^23) * x )/ ( 6.124123*(10^23) * x^2 + 5.124612*(10^25) * x^3 + 4.124312*(10^24) * x )
といった風に、分子分母で明らかに通分出来そうな 10の指数が現れて、とても困っています。
これらを通分するにはどうすればよいのでしょうか?
どうかよろしくお願いします。
219 :
クリップボード:2010/01/30(土) 11:34:42
>>218 分子分母を通分するには,cancellingの機能を有するrat,ratsimp,factor等の関数を
利用すればよい。
220 :
132人目の素数さん:2010/01/31(日) 17:00:33
もう30年以上も経つ古い設計のままのシステムだから、
完全にリフォームしなおすか、さもなければ安楽死させてはどうだろうか?
数値計算関係をgsllあたりに統合してほしい
今、俺に一番必要なのがこのソフトだと悟った
俺の逝くべき道が見えてきた
これから質問することが多々あると思うので
どうか宜しくお願いたもう
223 :
132人目の素数さん:2010/02/18(木) 19:56:30
質問です
shikou: 10000$
mieta: 0$
for i: 1 thru shikou do(
x: random(9.0),
y: random(9.0),
if abs(x - y) < 1.0 then mieta: mieta + 1
)$
kakuritu: float(mieta / shikou)$
print("simulation=", kakuritu)$
print("theory=", float(17/81))$
とwxMaxima 0.8.3に打ち込んだんですけど
どうやってシミュレーションを始めたらいいんですか?
Start Animationとか書いてある三角形のマークはグレイになってて押せません
224 :
223:2010/02/18(木) 20:40:29
うわ、自己解決しました
wxMaximaの方じゃなくて
xmaximaの方にコピペするだけかよ・・・
てか、じゃあ、wxMaximaはなんのためにあるんだよ・・・
wxmaximaなら、Shift+Enterで実行できるよ
simulation=0.2097
(%i6)
theory=0.20987654320988
利点は、こっちのほうが数式が見やすいことかな
そんな俺も最初wxmaximaは敬遠していた
>>225 超ウルトラありがとうございます!
こっちの方が数倍数式が見やすいですね
√とか累乗とか雲泥の差です
227 :
132人目の素数さん:2010/02/23(火) 15:00:04
本に付属しているCD-ROMのプログラム(量子力学におけるボームの新実在論に関する数式のグラフ)を
そのまま実行しているはずなんですが、下記のようなエラーが出ます:
Maxima encountered a Lisp error:
Error in MAPPLY [or a callee]: #2A((
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
:
延々と続く
:
-67725.542741090438
66649.000040410159 0.0))
is not of type STRING.
Automatically continuing.
To reenable the Lisp debugger set *debugger-hook* to nil.
…二回試して二回とも同じ結果です。
次のプログラムが正しいか、どなたか見ていただけませんか?
228 :
227:2010/02/23(火) 15:03:31
use_fast_arrays: true$
gn: 900;
ref: make_array(flonum, gn+1, gn+1)$
imf: make_array(flonum, gn+1, gn+1)$
x0: 0.5;
s0: 0.25;
s02: s0 ^ 2;
k0: 50 * %pi;
v: make_array(flonum, gn+1)$
vq: make_array(flonum, gn+1, gn+1)$
eps: 0.01 * 150 / gn;
del: 0.01 * 150 / gn;
for j: ?truncate(float(72 * gn / 150)) thru ?truncate(float(78 * gn / 150)) do
v[j]: float(2 * (50 * %pi) ^ 2)$
229 :
227:2010/02/23(火) 15:04:37
for j: 1 thru gn do
ref[1,j]: float(cos(k0 * j * eps) * exp(- (j * eps - x0) ^ 2 / 2 / s02))$
for j: 1 thru gn do
imf[1,j]: float(sin(k0 * j * eps) * exp(- (j * eps - x0) ^ 2 / 2 / s02))$
for n: 2 thru gn do
ref[n,1]: float(cos(k0 * 1 * eps) * exp(- (1 * eps - x0) ^ 2 / 2 / s02))$
for n: 2 thru gn do
ref[n,2]: float(cos(k0 * 2 * eps) * exp(- (2 * eps - x0) ^ 2 / 2 / s02))$
for n: 2 thru gn do
imf[n,1]: float(sin(k0 * 1 * eps) * exp(- (1 * eps - x0) ^ 2 / 2 / s02))$
for n: 2 thru gn do
imf[n,2]: float(sin(k0 * 2 * eps) * exp(- (2 * eps - x0) ^ 2 / 2 / s02))$
lam: 2 * eps ^ 2 / del;
eps2: eps ^ 2;
230 :
227:2010/02/23(火) 15:08:24
for n: 1 thru gn - 1 do
for j: 1 thru gn - 2 do (
ref[n+1,j+2]: float(
(lam * imf[n+1,j+1] + (eps2 * v[j+1] + 2) * ref[n+1,j+1]
- ref[n,j+2] - lam * imf[n,j+1] - (eps2 * v[j+1] - 2) * ref[n,j+1]
- ref[n,j]) / 2),
imf[n+1,j+2]: float(
(- lam * ref[n+1,j+1] + (eps2 * v[j+1] + 2) * imf[n+1,j+1]
- imf[n,j+2] - lam * ref[n,j+1] - (eps2 * v[j+1] - 2) * imf[n,j+1]
- imf[n,j]) / 2))$
for n: 1 thru gn do
for j: 1 thru gn - 2 do
vq[n,j+1]: float(
v[j+1]
- (sqrt(ref[n,j+2]^2 + imf[n,j+2]^2)
- 2 * sqrt(ref[n,j+1]^2 + imf[n,j+1]^2)
+ sqrt(ref[n,j]^2 + imf[n,j]^2))
/ sqrt(ref[n,j+1]^2 + imf[n,j+1]^2) / eps2)$
gvq(x,y) := float(vq[?round(y),?round(x)])$
plot3d(gvq, [x, 1, gn/1.5], [y, 1, gn/50],
[gnuplot_pm3d, false],
[gnuplot_preamble,
"set zrange [-50000:75000]; set view 75,300; set hidden3d"],
[grid, ?round(gn/1.5) - 1, ?round(gn/50) - 1])$
…ちなみに計算するのに自分のパソコン(64 bit, 2GHz, 4GB RAM, High-Performance Mode)で40分くらいかかりました。
>>227 コピペして実行させたら
エラーにならず↓こうなった
(%o2) 900
(%o5) 0.5
(%o6) 0.25
(%o7) 0.0625
(%o8) 50*%pi
(%o11) 0.0016666666666667
(%o12) 0.0016666666666667
(%o20) 0.0033333333333333
(%o21) 2.7777777777777783*10^-6
っと思ったらCPUが100%って...まだ終ってないのか...orz
233 :
227:2010/02/23(火) 16:31:04
>>231-232 ありがとうございます & ご苦労様です
しばらく(40〜50分)お待ちくださいませ
234 :
227:2010/02/24(水) 10:39:14
>>231-232 おはようございます
その後はどうなりましたでしょうか?
ちなみに自分のは
(%o2) 900
(%o5) 0.5
(%o6) 0.25
(%o7) 0.0625
(%o8) 50*%pi
(%o11) 0.0016666666666667
(%o12) 0.0016666666666667
(%o20) 0.0033333333333333
(%o21) 2.7777777777777783*10^-6
…が表示されるのも40分後です(それまではずっと計算中)
>>234 こっちのパソコンが非力なんで途中で断念しました
関係ないけど↓これ実行させても
>>227と同じエラーメッセージが出ます
use_fast_arrays: true;
myarray: make_array(flonum, 5, 5);
f(x,y):=myarray[?round(x), ?round(y)];
plot3d(f, [x, 1, 4], [y, 1, 4]);
何なんでしょうね
236 :
227:2010/02/25(木) 08:44:18
>>235 ありがとうございます。
こっちのパソコンでもそのエラーメッセージを確認できました。
Maxima encountered a Lisp error:
Error in MAPPLY [or a callee]: #2A(
(0.0 0.0 0.0 0.0 0.0)
(0.0 0.0 0.0 0.0 0.0)
(0.0 0.0 0.0 0.0 0.0)
(0.0 0.0 0.0 0.0 0.0)
(0.0 0.0 0.0 0.0 0.0))
is not of type STRING.
Automatically continuing.
To reenable the Lisp debugger set *debugger-hook* to nil.
…ですね。不思議なことに、
キーワード「"Error in MAPPLY" "is not of type STRING."」でググると
このスレしか引っ掛かりません(!)。
ちょっと検索してみたのですが、もしかすると新種のバグかもしれませんね。
もう少し調べてみます。
237 :
227:2010/02/25(木) 09:01:48
ソースを読むか、マセマティカを買う
239 :
227:2010/02/26(金) 12:57:48
>>238 Lispは分からんでもないしソースは読めるだろうけど('A`)マンドクセ
マセマティカ買える金があったら元々Maximaなんてインストしない
Maximaを修得したら移ろうかとは思っているけど
240 :
132人目の素数さん:2010/02/26(金) 22:34:11
このソフトって使えるの?
マセマティカの方が良い?
241 :
227:2010/02/26(金) 23:43:48
>>240 (私が答えるのもなんですが)
使えるには使えるようですが、
もちろん、マセマティカの方が断然良いようです
Mathematicaには出来てMaximaには出来ないことがたくさんあります
∫(7t^2+t)^(1/3) dt がその一例です
それとMaximaは基本的にボランティアで成り立っているので
バグが出たときのサポートがありません
それで↑
>>227-239のような問題が出てるのかもしれません
242 :
132人目の素数さん:2010/02/27(土) 01:30:58
MathematicaにできなくてMaximaにできることってある?
244 :
227:2010/02/27(土) 13:56:54
Mathematicaはバグが取れにくかったと俺も思う。
何しろ値段バカ高過ぎでユーザーが少なかったと思われるから。
でも安いHome Editionが出て1年。大分減ったかな、、。
>>244 ありがとう
Maximaで困ってないと、金を払ってまで試そうとは思わないな
マテマテカは高いってほどでもないし、普通に買ったほうがいいと思うよ。
中国製のパチモンだった無料から200元ぐらいだし。
検索してみたが$295かぁ
しかも32ビット版しかない模様
世の中、もっと早く64ビットに移行してくれよ・・・
30万か…
安いってほどでもなく妥当なところかな。
たとえ5万でも使いこなせる奴はいないだろうから、個人向けの数学系ソフトでいいんじゃないか。
あとはTIの関数電卓(CASのやつでも3万ぐらい)かな。
数式処理じゃなくて数値計算のみなら統計のRしかない。
マキシマはGPLだから自分で改良できるけどそれほどのスキルがある奴はいないだろう。
>>250 統計のRもインストしてんだけど
Maximaとの住み分けがいまいち分からない
統計学 → R
解析学 → Maxima
…でいいの?
Maximaでは多変数の三次元グラフはお茶の子さいさいだけど
Rでは描けないよね?
Rはデータ打ち込んだだけで標準偏差を出してくれたのには感動した
あと行列も扱いやすい気がした
Maximaでも出来るのかはまだ知らない
>>30万か…安いってほどでもなく妥当なところかな。
凄いな。研究者か何かですか?
webとかwikiとかで調べてみてもいまいちだし、数学系のソフトがなんなのか機能がどう違うのか分からないんだろうね。
マキシマは数式処理に特化していて、メインは代数(アルジェブラ)ができるってこと(gimpより下レベル)。
マテマテカとか他の商用のもおなじ代数がメインだけど、特にマテマテカはさらに上で細かいところも手が入っていて機能もオールマイティ(photoshopレベル)。
この代数(CAS)は
http://ja.wikipedia.org/wiki/%E6%95%B0%E5%BC%8F%E5%87%A6%E7%90%86%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0 簡単には言えば、
f[x_]:= sqrt[-x] - 3
f[-3]
#=>√[3]-3
と教科書と同じような感じで結果がでる。
数式処理じゃない、パソコンの普通のアプリではf[x]などと関数を定義できない。
プログラミング言語では関数を定義できるけどから上の簡単なのはできるし、マキシマやマテマテカなどと同機能だけど、数学特有の細かいところまではサポートしてない。
例えば、java,ruby,c#とかあるけど、上のf[-3]まではできるけど結果は √[3]-3でなく -1.267....と数値になる。
ここがCASの売りの部分。
>>253 ありがとうございます
いつかは欲しいな、Mathematica
Rは数学で統計に特化してるけど、実際はscheme lipsと統計関係のライブラリが入った数学用に特化したプログラミング言語と同じ。
上の説明と同じで関数f[x]を定義できるけど、結果が数値 -1.26...となるところがCASと大きく違う。
さらに式の書き方とか関数呼び出しの書き方(いわゆる言語の文法)もそれぞれ違うから慣れるしかない。
マキシマはかなり独特な構文で意味不明なのが多く、マテマテカは直感的で手が入っているから馴染みやすく、Rのscheme(lisp)構文は素直だろう。
ただ、プログラミング言語はC言語風の構文が当然だから、C,Java系から見るとどれも異質な感じがするし馴染み難い。
これらでプログラミングをやる(Rでちょっとこったプログラムを組む)ならもうC99,C#,java,ruby,javascriptの方が普通に便利だろう。
基本的に、集計してそれをグラフにしてデータを保存、ならかなり面倒(gui+グラフが鬼門)だけど、Rなら簡単。
つまりRは日常の数学計算に特化したアプリ(とプログラミング言語)ってところ(ただし代数だけはできない)。
上のgimp,photoshopと比べるならexcel+accessに近い。
schemeと書くと少し誤解があるか。
どうせプログム板に縁が無いだろうし、まいいか。
上の代数(CAS)レスもちょっと誤解があったか。
ソフトの売りはそうだけど一言で言えば、代数であるとはシンボル処理として数式を扱え数式を変形できること。
カシオの関数電卓(自然表記)もある程度お奨めだけど、ルートとかπは擬似的に表示してるだけだし、
方程式求根はできるけどシンボル処理(CAS)ができるわけでないのでカシオの関数電卓は代数ソフトではない(TIの方はCASも可能)。
>>256 レキシカルスコープバインディングは scheme っぽいけど、ごまかしが多いから
ある意味便利、ある意味変な挙動するよなw
>>255 ありがとうございます
>上の説明と同じで関数f[x]を定義できるけど、結果が数値 -1.26...となるところがCASと大きく違う
なるほど、これでようやくMaximaとRの住み分けが出来るようになりました
(予想していた通り)しばらくはMaximaを中心に使っていくことが多くなりそうです
そのうち統計学も再勉強するんで、そのときはRが大活躍しそうです
…あーあ、それにしても大学のパソコンにはMathematicaもMapleもインストされてたのに使わなかった
今になって激しく後悔orz
>>259 学校のパソコンにMathematica入ってるけど
家でMaximaだからMathematicaの使いかたがわからん
Mathematicaが1980円だったら買って勉強したい
3万くらいなら買う!のに日本では永遠に買えそうにないね。
>>252 30万どころか、40万以上だろ?
どっちにしろ俺には∞に等しいが、、、。
262 :
132人目の素数さん:2010/02/28(日) 22:31:25
なんで?
295jだろ
>>262 Home Editionは295ドルだが、日本では売ってくれないだろ?
理由が理解できんが。
264 :
132人目の素数さん:2010/03/01(月) 01:18:54
ほんとだ。
423500円って書いてあった。
一体誰が買うんだ?
100年に一度の不況だというのに、そんな値段じゃ売れないと思うけど、
なんでHome Edition売らないんだろう?
やっぱり日本の代理店が邪魔してるのかな?
>>261 学生版は、昔は二万くらいで有った気がするが、今は無いの?
学生証で買えたが。
267 :
132人目の素数さん:2010/03/06(土) 19:10:51
ユーザーがより安いソフトや、より応用範囲の広いソフトに流れて
Mathematicaのシェアが下がっているように聞いた。日本のユーザーズ
グループも解散したとか聞いた。主に使っているのは非常に高度な
数学を必要とする数学者、理論物理学者、統計学者、金融関係ぐらいだろう?
そもそも数学者(数学科の先生レベルでさえ)と自称する人でマテマテカを使いこなせてる人は少ない。
いくら凄いソフトでも、あの値段じゃシェアが上がる訳が無い。
特に個人には。
未だに「エクセルで0から2piまでの数表作ってグラフコマンドで…」が多い人にとって、数学系ソフトは少なくともグラフ作成ソフトの代用にはなる。
271 :
132人目の素数さん:2010/03/07(日) 07:08:49
理論にとっちゃ、手計算の検算くらいにしか使えないのに、あの値段はないわ。
そもそもあの種のソフトは何か証明や発見の役にたつものなの?
綺麗なグラフを見てるとインスピレーションが湧くとかはあるかも知れないけど。
代数処理ソフトを使うと式変形が超楽になる
それとマテマテカ話はそろそろスレ違い
>>244 Mathematica は MACSYMAみたいにlispで拡張書けるの?
lispと混合したコード書くには
mapply1とかいう関数つかうといいらしいんだけど
使い方がわからない
柳下浩紀
さんのことなの?非線形拡散方程式って
専門は解析だね。つか、偏微分方程式?
maximaのコードみてくと、
dont work とか書いてある便利関数が結構ある
これが動きさえすればmaximaをlispの部品にできるのに
このスレにはLisperが棲みついているのか
LispはComputer Programmingのクラスで再帰処理やったくらい
Prologならもっとマシに使えるんだが・・・
Lispもやっておこうかな
いや、ハスケルの方がいいよ。
実際問題PG,SEならschemeすら不要だけど、代数・数学・計算屋ならschmeよりも最近落ち着いてきたハスケルの方を勧める。
280 :
278:2010/03/09(火) 23:48:00
「型宣言が不要」ってのが不満なのは珍しいな。
CやJavaで型宣言に慣れてると
PHPみたいに型宣言なしで動く奴が怖くて仕方ない
型宣言が不要だからといって動的型というわけではないぞ
文脈上型が明らかな部分に関しては記述が省略できるということで
型推論とか呼ばれてる
Haskellの数式処理で実用なのってあるの?
あるならlispから乗り換えるけど
ハスケルは数式処理ソフトではない
haskellで書かれた数式処理ね
デフォルトの機能だけじゃどうせ足りなくなるから、結局中身をいじることになるからね
>>284-286 何を言ってやがる
俺たちが作るんだよ、そのHaskellで書かれた数式処理ソフトをな!!!!1!!
Haskellは無限数列とか扱うにはいいけど
数式処理にはLispの方がいいんじゃないかと俺は思う
MaximaをMaxima自身のサブセットで実装する事は出来ないのかなぁ?
290 :
132人目の素数さん:2010/03/13(土) 21:18:30
Lispを使うのを止めてCとかFortranで書き直せないのかね。
Lisp使ってるのにも理由があるんじゃないの?
初めてLisp使ったときはびっくりしたよ
Cなら何十行と書かないといけない処理が
たったの三行くらいで済んじゃうんだからね
あの再帰処理の効率の良さが決め手なんじゃないか
とか素人考えで書いてみるテスト
292 :
132人目の素数さん:2010/03/15(月) 12:31:57
Lispには変数の宣言が無い。Lispの変数には特定の型というものが無い。
短くかける理由の一つだろう。
>>290 axiomはpython(boot)とlispの混合
数式処理一般でLispのOn Lispに相当するような
基礎が書いてある本ってありますか?
maximaを導入したのですが、うまくいきません。
wxMaximaで、たとえばx*(x+1)とタイプして、メニューからSimplify->Expand Expressionと選んでみても、
"Not connected to Maxima!"というダイアログボックスが出て、動作しません。
また、コマンドラインで実行しようとしても、
Error in SYSTEM::SET-UP-TOP-LEVEL [or a callee]: :ROOT is an illegal pathname name.
Fast links are on: do (use-fast-links nil) for debugging
Broken at SYSTEM:STAT. Type :H for Help.
1 (Abort) Return to top level.
dbl:>>
このように出て、ここからいろいろ打っても動作しません。
windows付属のfirewallに例外指定しても、また(インターネットから切り離した上で)firewallそのものを停止してみてもうまくいきませんし、
(自分のパソコンにはfirewallはwindows付属のしか入っていません)
wxMaximaをDEPの例外に指定してもうまくいきません。
どうすればうまくいくようになるのでしょうか。
環境はwindows vistaで、maximaは5.20.1(3/20時点での最新版)です。
298 :
296:2010/03/22(月) 13:05:22
>>297 ありがとうございます。
いろいろやってもだめだったので、
>>830の人と同様にknoppix/mathを導入しました。
俺もvistaで動かない。virtual boxにubuntu入れてlinux版使ってるけど、不便だわさ
300 :
132人目の素数さん:2010/03/30(火) 22:07:09
vista でmaxima-5.18.1
動きます。
301 :
299:2010/03/31(水) 02:25:11
ごめん、ログ読んでなかった。
>>297読んでDEP?だかを設定したら出来た、サンクス
なぜ論理計算が出来ないのか?
303 :
132人目の素数さん:2010/04/17(土) 16:57:29
使ってみようと公式サイト開いたら変な表示が出てきた
17,18日はダウンロードできないってことか?
toshiba dynabook tx 66j2
os vista
maxima-5. 21. 0
動きます。
wxmaxima
日本語化されている。
305 :
132人目の素数さん:2010/05/10(月) 01:01:59
diff(x^2, x)
2x
にはなるの当たり前としまして
diff(y^2, x)
0
になるんですよ
y^2をxで微分して2yy'という結果が欲しいんですけど
Maximaにどう打ち込んだらいいのか分かりますか?
diff(y(x)^2,x)
307 :
305:2010/05/10(月) 08:59:41
ちゃんと出ました!
やっぱり出来たんですね!
超ありがとうございました!
lim[(x,y)->(0,0)] (x * y) / (x^2 + y^2)
をMaximaにどう打ち込んだらいいのか分かりますか?
もちろん、この場合は連続ではないので未定義と出てきてほしいのですが。
limit(limit((x * y) / (x^2 + y^2),x,0),y,0)
とlimitを二重にしたら、計算できてしまい、結果が0と返ってきます。
xからもyからも同時に(0,0)に近付くことは出来ませんか?
309 :
132人目の素数さん:2010/05/22(土) 17:48:14
昔は(今から30年〜20年位前)Lispを使って書かれた大規模ソフトウェアの
例として必ず数式処理システムが挙げられていたのだが、今はLispで書くのが
適当と思われるものはどんなものなんだろうか?
Lispの利点とされていた、再起的定義が可能、任意長の整数、
動的な変数の確保と回収、実行時にデータ型を識別する処理、
実行時にプログラム自身を変更して処理できる、などといった機能は、
今ではそれ程までにLispに特有なものでも何でもない。
むしろ、大規模ソフトウェアを書く上では、欠点の方が多いのでは?
CommonLispにしたから全て解消したわけでもないだろうし、所詮
ポインターをたぐりながら動く処理はキャッシュやパイプライン
処理を前提としたマシンの性能をがた落ちにするばかりだし。
20年以上前のその大規模ソフトウェアとやらは具体的に何のことですか?
今でもその子孫が存在するかそれ自体が稼動しているんですか?
macroがあるから数式処理がしやすいのでは?
maximaのprogramをCに変換するプログラムを書いたが
自分のスタイルで書かないと変換できないから
自分専用だな
ベクトル変数w (w=[w_1..w_N])を定義して抽象的なまま数式処理することってできないでしょうか
論文にある最適化の式をそのまま入力して微分したりしたいのですが
プログラムを作るほうがそんなに数学に詳しくないのでたぶん無理でしょう。
あったとしてもかなりクセがあるつくりで、あなたが想像しているように簡単に実現できるとは限りませんし。
次の関数f(x)のn階微分のx=0における値f^(n)(0)=d^n(f(x))/dx^nを求めよ。どうしてそうなのかも説明せよ。
(1)f(x)=e^x
(2)f(x)=sin(x)
(3)f(x)=cos(x)
(4)f(x)=sqrt(1+n)
(5)f(x)=arctan(x)
(1),(2),(3)は微分ができて、n階微分の規則性も見えてきたのですが、(4)、(5)の微分ができないので教えてもらえませんか?
f(x)=1/sqrt(2*π*v))*e^(-(x-u)^2/(2*v)について、f’(x)=0、f’’(x)=0となる点を求めよ。
という問題なのですが、答えはf’(x)=0はx=u、f’’(x)=0はx=u-sqrt(v)、u+sqrt(v)となり、f’(x)は、(u, 1/√(2πv)) と出てきたのですが、f’’(x)の点の求め方がわからないのでおしえてもらえませんか?
(1+1/n)^nを実際にいろいろなnについて計算し、n→∞での極限値と比較してみよ。
という問題なのですが、実際にnにいろいろな数字をいれるとnがだんだん大きくなるにつれてeに近づきました。
またlim(1+1/n)^n=eになります。
なので
(1+1/n)^nを実際にいろいろなnについて計算すると、nが増えていくほど、eに近づき、すなわち、n→∞の極限値に近づいていくが、一致することはない。
で、答えになりますか、でも、「一致することはない。」が完全にいえないので少し悩んでいます。
昭和57年生まれ?
1957年生まれ?
>>315 (4)
f(x) = (1+x)^(1/2)
f'(x) = (1+x)^(-1/2)
f''(x) = (-1/2) (1+x)^(-3/2)
f'''(x) = (-1/2)(-3/2) (1+x)^(-5/2)
手で計算すると規則性が見えてきます。
>>316 f(x)を微分してf'(x)を求め、さらに微分してf''(x)を計算する。
最後にf''(x) = 0 とおいて、方程式を満たすxを求めます。
>>317 「n→無限大の極限で一致する。」
lim(1+1/n)^n
はネイピア数eの定義
教えてください。
マキシマでA=(B*C)/(B+C)という式を
C=○○という形に変形したいときどうすればいいんでしょうか?
322 :
132人目の素数さん:2010/06/23(水) 15:46:29
solve(A=(B*C)/(B+C),C);
323 :
132人目の素数さん:2010/06/27(日) 01:01:28
310〉
とぼけないで下さい。Macsymaは当時としてはLispで書かれた大規模
システムだったのです。
325 :
132人目の素数さん:2010/06/27(日) 14:41:50
324>
議論のすり替えはしないでください
324>>
こうですかわかりません ><;
327 :
132人目の素数さん:2010/06/27(日) 23:22:56
(%i327) こんなぐあいですか?
(%o327) こんなぐあいですか?
今、14次元の微分方程式を解こうとしてて
(1)FreeMatのGUIで微分方程式のパラメータを入力
(2)Maximaで解析。
(3)解析結果をCソースで出力する。←今ここ
(4)CプログラムをFreeMatに対応できるように文字変換
(5)その結果をGUIで表示
と言う感じで、(3)で行き詰まったんだけど、どうやってMaximaの解析結果
をCで出力できるか教えてください。
調べたところ、cform.lispというものを使えばいいらしいですが
教授はそれなしでもできるって・・・orz
329 :
132人目の素数さん:2010/06/29(火) 10:19:42
Maximaで
2a + a = 3a で
2*a + a ; → 3a になるのは分かるけど
(√2)a + (√2)a = 2(√2)a はどう記述するのですか?
また
√(2a) + √(2a) = 2√(2a) はどう記述するのですか?
√の記述なら
sqrt(2*a)
or
(2*a)^(1/2)
ありがとう
ordergreat(X[1],X[2], ・・・);
というようにやりたいのですが上手くいきません。
ordergreatやorderlessで添え字付の変数を引数にするにはどうしたらいいのでしょうか?
integrate(exp(-x^2),x,-inf,+inf);
ならちゃんと表示されるけど、
integrate(2^(-x^2),x,-inf,+inf);
だと出てこない。
数学知らない人の代わりに考えてくれるという域には今一つだな。
数学知らないやつはまず数学学べよwww
解答を知っている人間にしか解答を返せないのは、結構微妙な線だと思うが。
336 :
132人目の素数さん:2010/07/03(土) 13:00:49
めんどくさい計算を代行してくれるだけで
扱い方もわからない式をエスパーで解釈してくれるとか_
339 :
132人目の素数さん:2010/07/03(土) 17:12:36
>>337 なるほど、erfは誤差関数というのか。
不定積分なら、Maximaでも
integrate(2^(-x^2),x);
で出てきた。
教科書の数値だけ変えた問題が解けなかったりするのは、
人間的でほほえましいと言うべきか、機械的で人間の知性からほど遠いと言うべきか。
341 :
132人目の素数さん:2010/07/03(土) 18:00:47
なあに たんなるプログラムのおよばざるところよ
>機械的で人間の知性からほど遠いと言うべきか。
すぐ人はそういうことを言いたがる
e^(i*pi) +1 =0 と出したいのですが、どうすればよいのでしょうか?
exp(%i*%pi)+1;
piの表記は%PIですよね?
微積分>積分から関数を指定して積分するときに、関数に%PIを含めると計算結果において%PIとπが混在して出てきてしまうのですが、統一して
出力する方法はありませんか?おそらく結果の%PIは自分が打ち込んだ関数に入っている%PIによるもので、πは計算過程から出てきたものかなとも思うのですが。
よろしくお願いします。
あ><すいません自己解決しました
%piだったんですね。。失礼しました><
sum(x,x,1,n);
出てこないな。
等差数列の和の公式は実装されていないのか?
>>346 nusum(x,x,1,n);
と記述するぞょ
ちなみに
2乗
nusum(x^2,x,1,n);
3乗
nusum(x^3,x,1,n);
>>347 Thanx
http://www.bekkoame.ne.jp/~ponpoko/Math/maxima/maxima_16.html > 関数: NUSUM (exp,var,low,high)
> R.W.Gosperによる決定手順を用いたvarに対するexpの不定和を計算する。
> 式expと潜在的な解はn次の羃乗、階乗、二項係数、そして有理関数の積
> として表現可能なものでなければならない。"定和"と"不定和"と云う言葉は、
> "定積分"と"不定積分"の類似として用いる。不定和を取るとは、
> 変数の複数の区間、例えば0からinfへと云ったものでは無く、
> その上での和に対する近い公式を与える事を意味する。
> それ故、二項級数の一般的な部分和に対しては公式が存在しない為、
> NUSUMは使えない。
sumにはまた別の使い方があるんだろう。
(学生時代には、Σの束ね直ししかしたこと無かったけど、そういう計算するのかな。)
ΣΣみたいなやつか?
350 :
348:2010/07/05(月) 19:31:22
>>348 anarchy golf のときは for のかわりに使ってる。
よぶんな計算するわけだけど、短いから。
(%i57) sum(print(i),i,1,3);
1
2
3
(%o57) 6
>>350 Σ [k=1,l] k = l(l+1) / 2 で
Σ [l=1,m] { Σ [k=1,l] k } = m(m+1)(m+2) / 6 を導け
みたいな問題か?
(十分高校数学レヴェルだから
どこぞの大学入試で出題されるかもしれん…)
>>352 E((x-E(x))^2)=E(x^2)-E(x)^2
みたいなのを思っていた。
問題を解くよりも、教科書の記述を確かめながら読み進めるほうに興味がある。
放送大学の教科書『数理ファイナンス』を計算過程を確かめながら読みすすめれば嬉しい。
サイモンとニューウェルが、"Logic Theorist"を用いて
"Principia Mathematica"の論理展開をたどっていった話にあこがれる。
このスレで放送大学の学生がいるとは思わなかったな
『数学とコンピュータ』で解説していた MuPAD を使いたいと思っていたのだけど
今は有料になっていて、どうやら使用できないようだ
それゆえ、今は Maxima を使っている
放送大学の MuPAD の解説通りとはいかないけど
そこそこ使える
>>354 学生ではない。
放送を視聴したり教科書を読むだけのポピュラーサイエンス愛好者。
歯が立たないと思えば止める。
『はじめてのMaxima』を読んでみているけど、
群とか順序とかlambdaとかの段階でちょっとキビしいと感じる。
長岡亮介先生のMuPADの話も『数理ファイナンス』(こっちは津野義道先生)も、
そこまで抽象的な話題ではなかった気がする。
MuPAD、Mathematicaのような商用システムの教科書見て、
使い方のイメージをつかんだ方がよいのかも。
>>328 C変換するの自分用に作ったのは持ってるけど公開する気はないわ
ECLでも使えばいいんじゃないかな
fortranに変換して出力できるから
それを書き換えてもいいんじゃないかな
行列計算のsolveはできないのか
solve(A.x=b,x)
素直に
invert(A).b
にしなさい
じゃあ
solve([A.x+(a.B.A.b).y=0,x.x+y.y=1 ],[x,y])
みたいなのは無理なの?
ひょっとして関数内のローカル変数にdeclareすることってできない?
関数内でnewcontextもできない?
コピペしてmaximaがしばらく考えるような問題くらはい
10^1000000;
(8!)!;
errorで答えがでませんでした・・・・
しょぼいPCやの
そういう問題なのかw
[[1,2],[3,4]] を2x2の行列に変換するにはどうすればいいですか?
A:matrix([1,2],[3,4]);
のことか?
リストのリストになっているものを行列にしたいのですが
372 :
クリップボード:2010/07/19(月) 21:58:59
apply(matrix,[[1,2],[3,4]]);
で出来る。
ありがとうございます。なるほど。合わせ技だったのですね。
なにか別の関数があるのかと、違う方向をさがしてました。
しかし、こりゃあmaximaの層で使うにもLISPを知らないとダメなのか。
nusum(x^i,i,1,n);
とか
nusum(y^i,i,1,n);
なら当然級数の閉形式が表示されるのですが。
nusum(x^i+y^i,i,1,n);
にすると、エラーになってしまいます。
上記の問題だと
nusum(x^i,i,1,n) + nusum(y^i,i,1,n);
でいいじゃんと思われるかもしれないけど、
解いている問題の都合上一つのnusumで表現したいのです。
エラーの原因や解決方法をわかる方いますか?
>>374 simpsum:true;
sum(x^i+y^i,i,1,n);
こうすれば結果は出力される
理由はわからないけど
式変形がおかしいのは
自分でlisp使って実装しないとだめなのかねえ
f(x,y)をbilinearにしたいのだけど、どうやってもうまくいかない
declare(f,linear);
f(a*y,z);
=>f(1,z)*a*y
378 :
クリップボード:2010/07/22(木) 20:39:48
>>374 nusum は超幾何級数の和を求めるための、Gosper's アルゴリズムを使用している。
各項は超幾何関数であることが必要である。すなわち、第n項をa(n)とするとa(n+1)/a(n)が
nの有理関数であることが必要である。
本問の場合、(x^(i+1)+y^(i+1))/(x^i+y^i)はiに関し有理関数でないのでnusumは
適用できないと考えられる。
なお、Gosper's アルゴリズムは Ralph William Gosper,Jr(Bill Gosperとして知られている。)にちなんだものです。
Bill Gosperは興味深い人です。
http://en.wikipedia.org/wiki/Bill_Gosper
maximaのテンソルパッケージを使いこなすには
どの本でテンソルの勉強すればいいですか?
380 :
374:2010/07/26(月) 08:03:30
お礼が遅くなり大変申し訳ありません。
>>375 simpsumについても調べさせていただきました。
解決方法を教えてくださりありがとうございました。
>>378 Gosper's アルゴリズムというものを使っている
という話は伺ってましたが、そのアルゴリズムに必要な要件までは
確認していませんでした。超幾何関数でなきゃだめなのですね。
わかりやすい補足説明も加えていただきありがとうございました。
tensorパッケージはつかえない
ctensorって極座標変換以外に使い道ない感じするんだけど、この理解であってる?
itensorも実際の問題扱うにはいろいろ機能不足じゃない?
136
384 :
132人目の素数さん:2010/08/06(金) 17:36:49
age
385 :
132人目の素数さん:2010/08/08(日) 16:15:35
5.22.0あげ
ちょっと失礼してコピペします。
猫
--------------------------------------------
徳島県警阿南署などは5日未明、東京都足立区千住寿町、筑波大学准教授、増田哲也容疑者(50)を
県迷惑行為防止条例違反(痴漢行為)容疑で逮捕した。
調べでは、増田容疑者は、4日午後4時20分ごろから約50分にわたり、JR牟岐線の列車内で、県内の
専門学校生の女性(21)の胸や太ももなどを触った疑い。調べに対し、「夏休み期間に、講演活動を兼ね
て旅行していた。好みの女性だったのでムラムラした」と話しているという。
通分しないように制御するフラグがみつからない