MAXIMA

このエントリーをはてなブックマークに追加
400GO MAXIMA
この結果を見て分かるようにscalar a --> aまたはaJ
vector (a,b,c)-->a*Dr+b*r*Dphi+c*r*sin(phi)*Dthと対応させている。
a*Dx+b*Dy+c*Dzを引き戻したのがa*Dr+b*r*Dphi+c*r*sin(phi)*Dth
である。つまりvector (a,b,c)とa*Dx+b*Dy+c*Dzは同一視して計算している。
この同一視で引き戻しだけで球座標のベクトル解析ができる。
面倒だから、動くことが分かったので上の大部分をファイルにしてしまう。
これをdifform_test.macとした。

batch("difform_test.mac");
M-x temp-region-writeで上の一行を実行する。
tempのbufferで上と(D26)までは同じなので消して残りをsaveしてリンク。
>>> ~/difform_result2
最後がちょっと中途半端なので

load("difform_test.mac");
nest2([D,h_st,D],a);
ratsubst(1/(r^2*sin(phi)),Dr@Dphi@Dth,%);
expand(%);

>>> ~/difform_result3
てな風に使います。howmのよいところは検索も速いのでええっと
cartan関連のファイルを探しているのなら 一発ででcartanを含む
メモの一覧が出てきてブラウズできて気持ち好いです。


401FeaturesOfTheGod ◆UdoWOLrsDM :04/07/22 22:10
GO MAXIMAさん、良かったらこっちに出てきてください。
http://pc5.2ch.net/test/read.cgi/tech/1090227743/
402名無しさん@3周年:04/08/09 18:37
TeXmacsをフロントエンドとしてMaximaを起動したところ以下の様な警告文が出てしまいました.
使用するぶんには問題ないのですが色々いじってみても警告文が消えません。
どうしたらよいのか教えて頂けないでしょうか?

WARNING:
DEFUN/DEFMACRO: redefining function MAIN-PROMPT in
/usr/share/TeXmacs/plugins/maxima/lisp/texmacs-maxima-5.9.0.lisp, was defined in
/root/rpm/SOURSES/maxima-5.9.0/src/binary-clisp/macsys.fas

WARNING:
DEFUN/DEFMACRO: redefining function DISPLA in


WARNING:
DEFUN/DEFMACRO: redefining function BREAK-DBM-LOOP in


WARNING:
DEFUN/DEFMACRO: redefining function $ENTERMATRIX in
403名無しさん@3周年:04/08/12 01:57
ある程度書き溜めたら、まとめて本にでもしてくれると、嬉しいよ。
もちろんPDF/HTMLファイルで無料でダウンロード閲覧できるのでもいいけど。

MATHEMATICAとかが、跋扈している理由の大きなものは、参考書とか
教科書(?)の類が政策的に氾濫していること。日本国内ではMAPLEが
劣勢なのも、それが最大要因だ。
404名無しさん@3周年:04/08/16 21:33
maxima が出力できるプログラミング言語用の形式は,fortran だけですか?
C や lisp で使える式を出すにはどうしたらいいんですか?
405404:04/08/19 21:42
レスが無い...

プログラムに,とっても長い (数学的な) 関数やその偏微分の関数を
式として書きたいときにも maxima は便利なんですよね?
こういう使い方は一般的ではないのですか?
406名無しさん@3周年:04/08/19 23:01
http://www.00-chan.jp/i/
未体験の請求サイト     
407名無しさん@3周年:04/08/29 17:29
maximaってこの程度の計算も出来無いんですか
使えませんね

realonly : true $
solve(abs(2*x+1)-abs(x-2)/2) ;
408名無しさん@3周年:04/08/29 18:01
(C1) solve((2*x+1)^2-(x-2)^2/4);
(D1) [x = -4/3,x = 0]
A,Bがrealなら abs(A)=abs(B) はA^2=B^2と同値ということも知らんのか。
409名無しさん@3周年:04/08/29 18:13
>>408
そんな小細工する位なら手計算でやれば?
私は問題の本質部分を単純化して指摘しただけですよ
上と同じ状況がもっと複雑な例の中で出て来たらどうするの?
abs(A)*abs(B)とかabs(A+abs(B))とかね

>A,Bがrealなら abs(A)=abs(B) はA^2=B^2と同値ということも知らんのか。

maxima は知らないみたいだね(pu
410名無しさん@3周年:04/08/29 20:03
http://tmp4.2ch.net/test/read.cgi/bakanews/1093762453/l50#tag12
禿同の歴史オワタ・・・!!
411名無しさん@3周年:04/08/29 21:39
最近,maxima が使えればと思っていろいろやっていて,
lisp を知っているので lisp で maxima と対話しようとしています.
しかし,

f(x):=cos(x)*exp(x)$

:lisp $f

Error: The variable $F is unbound.
Fast links are on: do (si::use-fast-links nil) for debugging
Error signalled by PROGN.
Broken at PROGN. Type :H for Help.
MAXIMA>>

lisp の変数としてどうなっているのか知りたいのですが,
どうしたものでしょうか.maxima マニュアルではこの辺は
触れられていないように見えます...
412GO MAXIMA :04/08/29 23:44
>>411
ええっと このへんは 次のように考えてください。
MAXIMA言語で定義された関数は コンパイルしない限り
シンボルの属性としてしまわれます。今の関数なら
(%i10) :lisp (symbol-plist '$|f|)
(MPROPS (NIL MEXPR ((LAMBDA) ((MLIST) $x) ((MTIMES) ((%COS) $x) (($EXP) $x)))))
従ってこれを属性として取り出して 実行するマクロmfunction-callを使って
実行しなければなりません。

(%i10) :lisp (mfunction-call $|f| 1.2)
1.203070112722819

(%i10) f(1.2);
(%o10) 1.203070112722819 で同じ実行であることが
解ります。
もしコンパイルした後では $|f|は LISPの関数に格上げされているのでこの実行は
($|f| 1.2)
としなくてはいけません。mAXIMAのコンパイラは時々両者をとりちがえてしまい、
コンパイルしたコードが動かないことがあることも覚えておくとよいでしょう。

413名無しさん@3周年:04/09/02 22:10
初歩的な質問ですみません。

(C2) save("test.lisp",ALL);

とやってセーブした後、別の機会に内容をロードしようとすると

(C1) loadfile("test.lisp");
Load failed for test.lisp
-- an error. Quitting. To debug this try DEBUGMODE(TRUE);)

と文句をいわれてしまいます。
どうすれば読めるようになるのでしょうか。

インストールは、rpmで
clisp-2.29-1.i386.rpm
maxima-5.9.0-1.i386.rpm
maxima-exec-clisp-5.9.0-1.i386.rpm
を取ってきて行いました。
414GO MAXIMA :04/09/02 23:47
>>413
いくつかのVerで やってみましたが再現できません。
よかったらそのtest.lispを 見せてください。
長ければ はじめの 7行と終わりの7行くらいでもよいです。
415413:04/09/03 12:47
レスありがとうございます。
始めの8行が
;;; -*- Mode: LISP; package:maxima; syntax:common-lisp; -*-
(in-package "MAXIMA")
(DSKSETQ $C1 '((MSETQ) |$a| ((MPLUS) |$b| |$c|)))
(ADDLABEL '$C1)
(DSKSETQ $D1 '((MPLUS SIMP) |$b| |$c|))
(ADDLABEL '$D1)
(DSKSETQ $C2 '(($SAVE) |&test.lisp| $ALL))
(ADDLABEL '$C2)
終りの7行が
(ADD2LNC '$HTRIGRULE4 $PROPS)
(MDEFPROP $HTRIGRULE4
((MEQUAL) ((%COTH SIMP) $A)
((MTIMES SIMP) ((%COSH SIMP) $A) ((MEXPT SIMP) ((%SINH SIMP) $A) -1)))
$RULE)
(ADD2LNC '$HTRIGRULE4 $PROPS)
(SETQ $LINENUM 2)
でした。
416413:04/09/03 12:49
もしやと思って、playbackしてみると、
(C1) load("./test.lisp");
Load failed for test.lisp
-- an error. Quitting. To debug this try DEBUGMODE(TRUE);)
(C2) playback(30);

(C1) a:b+c;

(D1) c + b
(D2) DONE

となり、とりあえず読めてはいるようです。
デバッガの使い方覚えたら、調べてみます。
417GO MAXIMA:04/09/03 16:53
今日 学生から聞いたらそのVerだけで 413と同じ症状がでるとのこと。
まあ次のVerでは 直っているのだけど、ノートパソコンを借りて調べた
ところ、test.lispの下のほうに
(DEFPROP $DVA #<COMPILED-CLOSURE TOP-LEVEL-FORM-2-3-3-2-1> TRANSLATED-MMACRO)
(DEFPROP $DVA T TRANSLATED)
(ADD2LNC '$DVA $PROPS)
があるがこの #<COMPILED...>を読み込もうとしてエラーとなっている。この$DVAは
現在使われていないので必要ないからこの3行をコメントアウトします。
;;;(DEFPROP $DVA #<COMPILED-CLOSURE TOP-LEVEL-FORM-2-3-3-2-1> TRANSLATED-MMACRO)
;;;(DEFPROP $DVA T TRANSLATED)
;;;(ADD2LNC '$DVA $PROPS)
とすれば正常に読み込めます。lispかperlで$DVAの行をコメントするスクリプトを
作って使ってください。
418413:04/09/03 17:33
GO MAXIMAさん、どうもありがとうございました。
いい機会なのでlispを使えるように勉強します。
419名無しさん@3周年:04/09/13 11:37:35
Maximaで底がe(2.71828)以外の対数関数の計算をするには
どうすればよろしいのでしょうか?
420FeaturesOfTheGod ◆UdoWOLrsDM :04/09/15 08:10:23
Re:>419 普通にLOG(x)/LOG(a)でいいんじゃないの?
421名無しさん@3周年:04/09/15 11:44:55
fortran(exp) の C 言語用が欲しいです.
しかも,多数の,それぞれの複素数ライブラリに対応したやつが欲しいです.

c_expression(exp, c++stl) とか
c_expression(exp, gsl) とか
c_expression(exp, c99) のような.

とりあえず義務としてソースを読んでみます...
422名無しさん@3周年:04/09/15 18:52:34
Deriveサブセットが載ってる、
Texas Instrument Voyage200
http://www.naoco.com/calc/voyage_200.htm
なら、こんな事も出来るぞ。

http://up.goraa.info/gazou/img-box/img20040828234121.jpg
このようにきわめてアレな関数を定義する。

どのようにアレかというと…
http://up.goraa.info/gazou/img-box/img20040828234138.jpg
激しすぎww

http://up.goraa.info/gazou/img-box/img20040828234148.jpg
まずy1(x)とy2(x)の交点のx座標を列挙し、それをy1(x)に代入する。

http://up.goraa.info/gazou/img-box/img20040828234202.jpg
テキストエディタに貼り付けて、正しく六個の交点が求められていること
が判る。

以上、解析的に求められる一例。
絶対値含んだ関数を微分して、微分可能な点だけ数を返す様なことも可能。
423名無しさん@3周年:04/09/15 18:53:09
http://vladimir.ddo.jp:8888/cgi-bin/upload2/src/pic2230.jpg
こういう微分をさせてみる。絶対値を含んでるとMathematicaでもムリだったりする。
sign()は符号関数で、パラメーターが正なら1、負なら-1,0ならsign(0)を返す。
sign(0)は数ではないので、微分可能な点は数を返し、微分不可能なときは数を返さないという形で
ある程度整合性を持って表現できている模様。

http://vladimir.ddo.jp:8888/cgi-bin/upload2/src/pic2231.jpg
微分する前とした後をプロットしてみる。分割画面でグラフそのものと
定義を同時に表示。特に定義の方が全部表示されるように分割比率を調節。

http://vladimir.ddo.jp:8888/cgi-bin/upload2/src/pic2232.jpg
グラフのプロットで定義したy1(x)とy2(x)の交点を求めさせてみる。
なんと解析的に解を出せたりする。(小数点を含んだ近似ではないという意味)

http://vladimir.ddo.jp:8888/cgi-bin/upload2/src/pic2233.jpg
先ほどの解をペーストしてマトリックス形式に変換する命令に食わす。
座標として見やすい並び方に。

http://vladimir.ddo.jp:8888/cgi-bin/upload2/src/pic2234.jpg
交点マトリックスを数値に変換して、先ほどのグラフと同時表示させる。
解が正しいことが判る。なお数値は見やすくするために表示時有効数字6桁
にしてある。(内部14桁)

MAXIMAごときでは全く歯が立たないだろう。
424名無しさん@3周年:04/09/15 19:52:40
>>422-423 落ち着いてください.

よーし,パパ Lisp で
425名無しさん@3周年:04/09/16 00:49:51
>>422-423
あのー、ちょっと程度が低いんじゃありませんか。。

まあ、話題を提供してくれるのは嬉しいんだけど。。
426名無しさん@3周年:04/09/16 04:39:35
>>425
え、MAXIMAじゃこれ出来ないでしょ。
悔しかったらやって見せてみなよ。
427名無しさん@3周年:04/09/16 08:11:32
>>426
活発なプロジェクトらしいので,良いアイデアがあれば連絡を取ってみるのも
いいと思います.
428名無しさん@3周年:04/09/16 14:44:00
429名無しさん@3周年:04/09/16 15:28:09
なんか、商品として売っているもので正確に完全に実行できるものを、
タダで手にはいるからといってそれに実装しようとヘコヘコしてるのは
人生棒に振ってませんか?
430名無しさん@3周年:04/09/16 15:31:18
悪いけど、199$の計算機で出来る既知のアルゴリズムを
労力かけて実装しようという意味が全くわからない。
431名無しさん@3周年:04/09/16 15:35:39
あ、ちなみにこの計算機でwhen(A,B,C)ってのは、
Aが真の時Bを返し、Aが偽の時にCを返すという意味です。
432名無しさん@3周年:04/09/16 15:39:28
>>351は場合分けを全く含んでいないから数学的に誤りだよね。
433名無しさん@3周年:04/09/16 15:56:21
>>428
これは>>64 の問題は>351 352 で解けていますがなにか?(428よりエレガントにね)
数値計算で味付けしただけでしょ、deriveは。
コンピュータは アルゴリズムを載っけただけですから
できないのはMAXIMAではなくて あんたの頭だということを
忘れていませんか?
商売でないのだから、絶対値つきの連立方程式を解きたい人と言えば
高校生くらいしかによね。そんな人に向いてるのはOK。
数学だけなら 工学部の教授よりできる1、2、年がごろごろしているよ。
そいつらに問うたら、1分で次のようなアルゴリズムが返って来た。
外からabsをはずして+と-の 2つの式のわけて別リストにして再帰的に
繰り返し absがn個なら2^nの式になる。2元なら2^n*2^mこの連立方程式を
解いて、解を元のabsを含む式に入れてcheckをすればよい。
最後のstepが可能であるのは 解が数値であるときのみで、つまり
これはつまらない問題である、そうです。
商売でなにができるできないというなら別スレでやってください。
数式処理では できないのは頭の問題であることは 皆が知ってます。

434名無しさん@3周年:04/09/16 16:17:30
訂正
>2元なら2^n*2^mこの連立方程式を解いて
2元なら2^n*2^m回 2元連立方程式を解いて
435名無しさん@3周年:04/09/16 16:35:43
>>433
>351はαとβについての場合分けをした解ではないから
「エレガント」なのではなくて「決定的な数学的誤り」ですよ。
単なるヘタレ実装でヘタレ解しかでないだけ。
たとえばx^2=aの解をx=√aしか返さないとしたらそれはエレガントなのではなくヘタレ。
同値変形になってないんだよ。
Deriveは基本能力がMAXIMAとは決定的に違うよ。
そのつまらない問題でさえ手に余るのがMAXIMAだって事は自覚しなさい。
数式処理で出来ないのではなく、「MAXIMAというヘタレ系で出来ない」だけのこと。
混同しないように。
436名無しさん@3周年:04/09/16 16:38:28
現に>>66で「場合分けできっこない」といってる奴の頭で出来ないことを
5ページに完全に記述しきった訳でね。
しかも>>66で場合分けが必要と言っておきながら>>351では全くやってないね。
矛盾もいいとこ。
http://up.goraa.info/gazou/img-box/img20040916143824.jpg
http://up.goraa.info/gazou/img-box/img20040916143910.jpg
http://up.goraa.info/gazou/img-box/img20040916143923.jpg
http://up.goraa.info/gazou/img-box/img20040916143935.jpg
http://up.goraa.info/gazou/img-box/img20040916143957.jpg
437名無しさん@3周年:04/09/16 16:39:57
>最後のstepが可能であるのは 解が数値であるときのみで

これも意味不明だな。
http://up.goraa.info/gazou/img-box/img20040828234148.jpg
これが解析解以外の何だって言うんだ?
438名無しさん@3周年:04/09/16 16:50:08
MAXIMAの普及は数式処理の未来にとって有害だと思うね。
MAXIMAの限界が数式処理の限界だと混同する奴が増えるから。
現に何匹か居るみたいだし。
439名無しさん@3周年:04/09/16 17:00:01
>>433
http://up.goraa.info/gazou/img-box/img20040916165742.jpg
つまらない道具でつまらない発想になってしまった学生たちには
予想の出来ない解を返しましたよ。
場当たり的な個別問題の実装にはとどまらず、かなり広い範囲で条件付の
同値変形を行えるって事よ。
単にグレブナー基底求めましたじゃダメだっての。
440名無しさん@3周年:04/09/16 17:01:07
>>66 では
"つまりもし数式的に解けると仮定すると この単純な2つのalph betaにたいし
てさえ 解の個数つまり表現形がことなるので 場合分けが必要ですね。
では 一般のalphとbetaのとき どれだけ 場合わけしてしめしたらよいのでしょ
うか? ということで不可能としているのです。
ただし 実用上は 他の数式処理システムのように 厳密性に目をつぶって
えいやーとひとつの解をほしいときもあります。この場合もそれにあたるでしょ
う。こんなときは ほしい解の正当性をじぶんが 保証できる場合にあたり
mmmsolveとかいう名前でsolveの関数を書かなければいけません。"
とあり>352でheuristic なアルゴリズムを... とあり矛盾していないように
見えます。むしろ whenが解の表現に有効と主張するのであれば
>>66がいう"解の個数つまり表現形がことなるので 場合分け"が完全にできること
lambdaでなくてK、Lが意味ある形になるかどうかということが問題です。
441名無しさん@3周年:04/09/16 17:09:34
>>440
当然λの完全な表示が求めらているからKもLも出るよ。一対一対応してるでしょ。
442名無しさん@3周年:04/09/16 17:13:54
いやwhenが入っているのは単純な整式とはいえないので、
連立が 可能かどうかは 分からないと言うのが正しい。
443名無しさん@3周年:04/09/16 17:23:36
>>442
なんかこの計算機自分で使っててちょっと恐ろしいんだが、
when付きの式をsolveにぶち込んでもちゃんと正確に解を返すんだよね。
三角関数含んででも解に2@n1*π  (@n1は任意の整数を示す)とか含んで返してくるし。
ちょうどMathematica5のReduce[]というコマンドがこういう事をやる。
Mathematica5のReduce[]の方がかなり強力問題でも解を返すけどね。
444名無しさん@3周年:04/09/17 01:07:31
>>438
別にMAXIMAのかたを持つわけじゃないが、
「Deriveサブセットが載ってる、 Texas Instrument Voyage200」
なるものを、馬鹿チョンで使おうとするアホの出現の弊害の方が
大きいと思うがな。
数学ができないのに気がつかない馬鹿が一番迷惑なんだよな。
445名無しさん@3周年:04/09/17 01:44:04
>>444
MAXIMAだと気づくとでも?
それは使用者の資質に帰する問題だな。
446GO MAXIMA :04/09/17 03:40:27
あの私の書き込みでいろいろ言われていますが、
>>436 これは複素数の範囲での解を含めて>66の発言があるわけで
当然のことながら 436の解もすべてを尽くしていないわけです。
x^alph=1 を複素数の範囲で数式処理で明示的に解けるか考えてみてください。
>>437 解析解でも数値で得られるときと 式ででてくるときもあるでしょう。
数式処理では これらは区別します。これが分からないのは素人さんですかね。
>>438 賛成できません。 しかしmaximaが古臭いシステムであるのは確かです。
これは設計されたときには、十分発展していなくて その後本質的な
役割を果たすようになった数値ー数式の協調相互作用についての実装が
まったくないことが原因です。一例をあげときますと山崎圭次郎 ガロア群の計算
(数学研究へのコンピュータの影響、日本評論社など)高精度数値計算のが
数式処理のみのアルゴリズムを凌ぐ例です。
数値数式の協調相互作用の実装は、応用上も極めて重要であるばかりでなく
、数学の研究に使う場合でも 誰かが言っているように証明すべき命題は
証明される前に発見されている、その多くは数値数式の実験によって、
というわけだから極めて重要である。もう一桁使用者が増えるとそのような
実装を行う人も出てくるであろうと推測できる。
まあ 数式処理の現場での使われ方を書いてある文献は異常な程少ないので
、機能がどうこうと問題にする人がでるのも無理もないのですが。
知らないといことは恐ろしい、自戒も含めて。
447名無しさん@3周年:04/09/17 04:24:20
>>446
確かにx^alph=1 を複素数範囲で明示的に展開することはVoyage200計算機では
出来ないようです。実数なら漏らさずやるようですが。

しかし、x^alph=1をMathematica5のReduceでやってみて下さい。
驚愕しますから…

こういう解返されると人間が複素数体でやる事なんて無いんじゃないかとも思えてくる。
448名無しさん@3周年:04/09/17 05:10:09
まぁ計算機がMAXIMAよりは高性能であることは間違いないようですね。
449名無しさん@3周年:04/09/17 05:20:10
まとめ
absは純粋な文字式でも閉じた系で扱える
http://up.goraa.info/gazou/img-box/img20040916165742.jpg
Voyage200は実数範囲で正しく方程式の解を条件付きで展開できる
MAXIMAは条件付きの展開はどのような範囲でも望めない
450名無しさん@3周年:04/09/17 05:23:46
ここまで馬鹿だと笑えますな。
451名無しさん@3周年:04/09/17 13:22:20
>>450
負け惜しみご苦労。
452名無しさん@3周年:04/09/17 16:17:57
453FeaturesOfTheGod ◆UdoWOLrsDM :04/09/18 22:55:13
Re:>438
まあ、maximaを導入する最大の理由はfreeであることだね。
maximaも、一通り仕様が分かれば使えるようになる。
だが仕様を一通り理解するまでが大変。
454名無しさん@3周年:04/09/18 23:39:23
>453
電波は相手にしないほうがいいよ。何言っても無駄だから。
455名無しさん@3周年:04/09/19 00:12:44
>>454
と何も言う能力のない電波が言うのであった。
456名無しさん@3周年:04/09/19 01:55:32
>>453
どんなに使用を理解して内部コードを読み解いたところで、
>>452は出来ない訳だが。
457名無しさん@3周年:04/09/19 01:56:21
使用→仕様
458FeaturesOfTheGod ◆UdoWOLrsDM :04/09/19 11:00:38
Re:>456 LispでReduceを作成する猛者は居ないか?
459名無しさん@3周年:04/09/19 15:34:20
なんか特許アルゴリズム使ってたら
それだけでむりぽだけどね。
特許切れるまで実装出来ないてのもかなりイタいよ。
460GO MAXIMA:04/09/19 16:19:37
x^alpha=1, x=e^beta*e^%i*th,alph=a+b*%i,(a,b,beta,thはreal)
とおいて一般性を失わない。2番目の式を最初の式に代入して指数法則を
使えば,
左辺=(e^beta*e^%i*th)^(a+b*%i)
=e^(beta*a)*e^(%i*b*beta)*e^(%i*a*th)*e^(-b*th)
=e^(beta*a-b*th)*e^(%i*(b*beta+a*th))
この式の第一項は大きさのみに関与し第2項は偏角のみに関与するから
e^(beta*a-b*th)=1かつe^(%i*(b*beta+a*th))=e^(2*%pi*n*%i)が成立
nは任意の整数、つまりbeta,thは
beta*a-b*th=0,b*beta+a*th=2*%pi*nという連立方程式の解
a^2+b^2が0でないとき逆行列が存在するから
beta=2*n*b*%pi/(a^2+b^2),
th=2*n*a*%pi/(a^2+b^2),解は x=e^(2*n*b*%pi/(a^2+b^2))*e^(%i*2*n*a*%pi/(a^2+b^2))
a^2+b^2が0のときx=1
ということで あまり商用のものをクサしたくは無いのだがmathematicaは
阿呆ということでファイナルアンサー。
461GO MAXIMA:04/09/19 16:20:02
1、2年のために捕捉問題を出しておこう。
(a)Let z approach infinity along aray through the origin (am z= const.).
Find all directions for which lim e^z exists.
(b) Let z move as in the proceding problem(a).
How does z+e^z behave?

(b)の答えは∞だけど(a)の場合の3通りごとに証明が必要です。
462GO MAXIMA:04/09/19 16:20:30
数式処理を使っている現場では、数式処理+数学の知識(力)で問題に
attackするのであって、ばかちょんに数式処理にいれてでて来た解を
ありがたく承るのでは決してない。手で計算するアルゴリズムが手に負えなく
なってハジメテ数式処理を使うのであって、そのときもけっして自分の
確認できないアルゴリズムを頭から信じてはならない。ある人が
行列のスペクトル分解を利用したくて、residueを計算する必要のある
アルゴリズムを使っていた、MAXIMAはresidueの計算で正しくない
答えを返すことがしばしばあるので使えないと相談にきたとき
僕はただちにこの場合のresidueの計算は定理に置き換えられるから
そこは頭の中でやってその次の部分からMAXIMAを使ったらいいよと
アドバイスしてうまくいった。いわば、数式処理を数学の力を使って
外挿してゆくのが現場での使い方であろう。>446であげた本に三輪さんの
MACSYMAで新しいstar-triangle relationを探す話が載っているが、
連立方程式の係数が√2を含んでいてMACSYMAでそのままでは解けない
ので(MAXIMAではCAE形式でないと解けない)式全体をPade近似して
x=e^uの有理式にかきなをして処理したとある。
463名無しさん@3周年:04/09/19 18:04:50
>>460
まずx=0の場合には複素指数関数では書けないので一般性を失いまくっている。
なのでダウト。
この時点でx≠0という無根拠な仮定を導入したことになる。
さらにnの範囲が明示されてないのでそれはxの明示的な解ではない。
0点だね。
あんたのは解の個数も不明だから明示的にもなってないし、x=0の考察がないから
数学的な正当性がない。
なのでその「解」とやらを問題の同値変形とは見なせず、数式処理で次のステップを行うことが
絶望的だ。所詮浅知恵ではそのくらいしかできないよ。

それに対してMathematicaではx=0,a=0の場合も考慮してnの範囲付きで漏れなく明示的解を記述している。
このような記述を行うことで意味を完全に保ったまま次の数式処理のステップに解を
渡す事が妥当な意味を持つ。つまり高度な数式処理システムでは広い範囲で閉じた
同値変形を行うことが出来るので一般性を失わない処理を延々と続行出来る。
それ故プログラミングの一部としてそれらを使うことが可能になるのでより複雑な
問題にも対処出来る。
対してMAXIMAでは閉じた体系で書ける解があまりにも狭い範囲なので、
その「解」を次のステップに使おうとすると一般性をほとんどの場合で失う。
結果として一般性を失わない処理を延々と続行出来きない。
そのためにプログラミングの一部として意味を保ったまま自動的に解を渡していくことは
絶望的。なので組める規模が大きくなることはない。

そういうわけなので、日本語は正確に使おう。
×「数式処理を使っている現場では、数式処理+数学の知識(力)で問題に
attackするのであって」
○「(貧弱な)数式処理を使っている現場では、(貧弱な)数式処理+数学の知識(力)で問題に
attackする(事を余儀なくされる)のであって」
464名無しさん@3周年:04/09/19 18:11:16
閉じた体系で明示的に解の表示を行える範囲が広いということは、
余興でも贅沢でもない。
数学的意味を保ったままプログラミングするための必要条件である。
465名無しさん@3周年:04/09/20 03:35:30
>>464
だからあ、そう思うんだったら、こんなMAXIMAスレなんかにカキコしないで、
「Deriveサブセットが載ってる、 Texas Instrument Voyage200」
でも「Mathematica」でも使ってなよ。時間が勿体ないよ。
466FeaturesOfTheGod ◆UdoWOLrsDM :04/09/21 09:36:09
Re:>460 複素冪の不定性を無視しないでくれよ、GM.
467名無しさん@3周年:04/09/21 10:38:43
仮に主値だと言い張ってもMathmeticaよりも数学的洞察力がないってのは
示されちゃってるけどね。
468GO MAXIMA:04/09/21 16:22:16
>> 466 467
ええっと xは0でないと仮定した。複素冪の 不定性は考慮してある。
つまりx=e^beta*e^%i*thの代わりに mを整数として
x=e^beta*e^%i*(th+2*m%pi)と置くべきだと言っているんだろう。
そんなことしても
matrix([a,-b],[b,a]). [beta,th]=[0,2*n*%pi]+2*m*%pi[b,-a]
で付け加えた項に逆行列を掛けたものは2*m*%pi[0,-1]で解に影響しない。
だいたい いつも>466は 考えもせずレスしているだろう。

>>463
数式処理システムと数学は重なりはあっても 一致はしない。
MAthematicaとは向かう方向が異なっているのだからそれぞれの道を
行けば良い。closed formについては 数学全体で適用できる程
進んではいない、A=Bのクヌースの序をみよ。それに演算子中心
の立場をとれば、空間は特定しなくとも計算できることを利用して
考えを進めることが結構ある。最近みた大森氏の量子的微分積分の
本もこの立場だと思う。
469FeaturesOfTheGod ◆UdoWOLrsDM :04/09/21 20:49:54
Re:>468 分かっていないな。複素冪の定義をもう一度読め。
470GO MAXIMA :04/09/21 22:23:18
>469
a^2+b^2が0でないとき、かつxが0でないときの>460の解が
不十分な点を教えていただけると有難い。
471FeaturesOfTheGod ◆UdoWOLrsDM :04/09/21 23:00:01
Re:>470
exp(z)は、よく知られた冪級数で定義されているものとする。
複素数冪は、
a^b=exp(blog(a))で定義される。
ここで、log(a)とは、exp(log(a))=aになるような複素数であり、
log(a)には、2πiの整数倍だけの不定性がある。
よって、blog(a)には2πibの整数倍だけの不定性があり、
bが整数でない限り、exp(blog(a))は多価になる。
472GO MAXIMA :04/09/22 00:07:01
>>471
それは a^2+b^2が0でないとき、かつxが0でないときの>460の解が
十分だといっているのと同じですよ。>468で言っているように
x=e^beta*e^(%i*(th+2*m%pi))とlog(x)=beta+%i*th +%i*2m%piは
同値ですから多価性を表現しているのです。対数関数で定義できる
ということは、当然複素指数関数でも定義できるのです。(単なる流儀の違い)
>460の解は 多価性の結果です。
解は x=e^(2*n*b*%pi/(a^2+b^2))*e^(%i*2*n*a*%pi/(a^2+b^2))で
nは任意の整数ですから 多くの場合∞個の解を持ちます。
>463の言うように明示的な表示かどうかは 意見が分れる、公平に言えば
形式解だろうが これを使って継続計算もできるので不自由はない。
>468でも言っているように、それぞれ我が道をいくしかないようだ。

とにかく[469] FeaturesOfTheGod ◆UdoWOLrsDM が1年のおちこぼれ
レベルであることはよく分った。ありがとう。
473名無しさん@3周年:04/09/22 03:32:59
>>472
答えが偶然合ってたからといって手順をこれっぽっちも正当化出来ないでしょ。
マークシート世代かね。
474名無しさん@3周年:04/09/22 03:48:58
MP3
人間の声は一切使っていません。
http://napo.main.jp/zin/
なぜゆえに、【ドリュホ】なの?
475FeaturesOfTheGod ◆UdoWOLrsDM :04/09/22 19:21:04
Re:>472
とりあえず式ぐらいちゃんと書いてくれ。[>468]で誤解されても無理はない。
それと、この板では実体参照(&alpha;,&beta;など)が使えるのでうまく使うように。
476名無しさん@3周年:04/09/22 21:10:01
x≠0と無根拠な仮定をしてる時点でダメだけどな。
477名無しさん@3周年:04/09/26 02:01:11
age
478Freeでウハウハ:04/09/29 12:26:39
MAIMAはおとこのおもちゃ
チンコビンビン。マンコヌレヌレ。
479FeaturesOfTheGod ◆UdoWOLrsDM :04/09/29 13:27:50
Re:>478 え?何だって?
4801 ◆8P3ifcS3GM :04/09/29 17:55:18
s
4811 ◆F1gx76.c5Y :04/09/29 17:59:54
121354
482FeaturesOfTheGod ◆UdoWOLrsDM :04/09/30 09:13:43
Re:>2
? kill;
483名無しさん@3周年:04/09/30 23:50:23
>479 480 481
FeaturesOfTheGod ◆UdoWOLrsDM == 1
話題が無いのに 書き込みは やめてください.

2chに「スレ主」というシステムはありません。
もしそのスレッドが「スレ主」のためのものであるというのなら、
削除ガイドラインの削除理由3「固定ハンドルの占有」として、
スレッド自体が削除対象となります。
484FeaturesOfTheGod ◆UdoWOLrsDM :04/10/01 09:36:01
Re:>483
FeaturesOfTheGod ◆UdoWOLrsDM == 1
って何だよ。
お前に何が分かるというのか?
485名無しさん@3周年:04/10/05 15:54:49
>304
clisp2.32 + maxima5.9.1 では微分が正しく展開されました。
5.9.1では修正されているみたいです。参考までに。
5.9.1にはcmucl用パケージしかないけどclispでも動くようです。
486名無しさん@3周年:04/10/28 23:01:55
荒れが収まったらこんどは寂れまくり...

MAXIMAそのものとは関係ないが,
とりあえずRisch積分に関連する文書をいくつか学校でプリントしてみた.
数理の図書館には元論文があったけど電子ジャーナルからプリントした方がきれい.
他にも ACM Digital Library が便利だった.
大手ベンダは資金力で人手をかけてヒューリスティクスを入れて拡張してるんだろうけど
まぁ基本からぼちぼち.
487名無しさん@3周年:04/11/10 22:23:12
保守
488名無しさん@3周年:04/11/29 16:34:26
Lisp使えるのがいいね
Debian GNU/Linux 上で emacs と maxima-emacs
最高です
489名無しさん@3周年:05/01/13 12:26:00
sqrt(2)*sqrt(3)をsqrt(6)に
するには、どうすればいいのでしょうか
490max:05/01/14 02:06:23
expand(sqrt(2*3)); です。
491名無しさん@3周年:05/01/14 11:14:28
質問のしかたがよくなかったようです。
知りたいのは、単に sqrt(6) を出力させたいのではなくて、
sqrt(2)*sqrt(3)のように出力されてきた結果があった場合、
どうしたら、sqrtの掛け算をさせることができるのか、
ということです。
492名無しさん@3周年:05/01/14 12:08:10
rootscontract
493名無しさん@3周年:05/01/21 13:07:26
f(x):= x*x;
と定義した関数 f(x) に対して、
その微分を関数 g(x) に設定したいのですが、
g(x):= diff(f(x),x);
とすると、x=0 での微分係数を知りたいときに
g(0);
とするとエラーが発生してしまいます。
494名無しさん@3周年:05/01/22 02:14:04
(%i1) f(x):=x*x$
(%i2) g(x):= block([t],subst(x,t,diff(f(t),t)))$
(%i3) g(0)
(%o3) 0
(%i4) f(x):=sin(x)$
(%i5) g(x);
(%o5) COS(x)
(%i7) g(0);
(%o7) 1
MAXIMAの関数は 数学的関数とは異なり プロシージャの扱いとなるので
きをつけてね。
495名無しさん@3周年:05/01/22 20:03:49
   ──    / ──┐  ┼─┐      |
  ──┐ /|      |   l    |  l l   |\_
   _ノ    |   _ノ    ノ   _/   _ノ  |

      ト|
      ト|
      ト|
      ト|
    /\ト|___/ヽ
   /''''''   '''''':::::::\
  . |(○),   、(○)、.:|
  |   ,,ノ(、_, )ヽ、,, .::::|
.   |   `‐=ニ=‐ ' .:::::::|
   \  `ニニ´  .:::::/
,,.....イ.ヽニニニニニニニニン-、.
:   |  '; \_____ ノ.| ヽ i
    |  \/゙(__)\,|  i |
    >   ヽ. ハ  |   ||
496GO MAXIMA:05/01/24 02:04:24
>>494
これではちょっと不親切ではないか。
g(x):=diff(f(x),x)$ のような関数の定義は MAXIMAでは
常に lambda式として保存されるのだが その際 定義をそのまま
〔評価しないで)記述されたまま保存するので 483のような勘違い
が発生する。これはLISPでの関数定義を思い起こせば納得できる
だろう。しかし 沢山の素人さんに使ってもらうのにはこれでは
困る。関数定義を 評価してから保存する方法はある、quoteを
2回連続させることで可能となる。
(%i1) f(x):=x*x$
(%i2) g(x):=''(diff(f(x),x))$
(%i3) g(0);
(%o3) 0
497名無しさん@3周年:05/01/24 21:23:45
ゴミカス整形プロ野球界の汚物 身障剛志とそのオタは死ね
498名無しさん@3周年:05/01/26 00:53:27
taylor()関数で得られたテーラー形式の多項式をevで評価しようとするとエラーします。例えば
(%i1) taylor((1+x)^i,x,0,5),x=a-1;

** error while printing ERROR message **
Illegal taylor variable 〜M
-- an error. Quitting. To debug this try DEBUGMODE(TRUE);
どうやったらさけられるのでしょうか?ratdisrep()やtaytorat()をかましてみても
うまくいきませんでした。
499GO MAXIMA:05/01/26 03:20:36
(%i1) taylor((1+x)^i,x,0,5)$
(%i2) subst(x=a-1,%);
または (%i2) %o1,x=a-1;でも動きます。つまりBUGですが
実害はないでしょう。
500名無しさん@3周年:05/01/26 23:32:55
やっぱりバグですか、、、。教えていただいたsubst()を使った置換でやります。
そういった意味での実害はないんですが、気持ち悪いのでデバッグもしてみます。
ありがとうございました。