このブログは、旧・はてなダイアリー「檜山正幸のキマイラ飼育記 メモ編」(http://d.hatena.ne.jp/m-hiyama-memo/)のデータを移行・保存したものであり、今後(2019年1月以降)更新の予定はありません。

今後の更新は、新しいブログ http://m-hiyama-memo.hatenablog.com/ で行います。

maxima

maximaとの通信方法、ソケットが既に使われているときの挙動

なんとmaximaはネットワーククライアントになる。サーバーじゃなくてクライアント!ここが既にハマリ所だが、使用されているソケットにクライアントとして接続しに行くと、次のように死ぬ。 bin > .\maxima.bat -s 4000 Connecting Maxima to server on port…

scilabでは困ること

scilabでは、 --> A = [sqrt(3) -1; 1 1] A = 1.7320508 -1. 1. 1. --> A*A ans = 2. -2.7320508 2.7320508 0. これでは不便なこともある。 --> a 未定義の変数: a --> A = [a -1; 1 1 ] 未定義の変数: a

wxmxフォーマットと数学ノートブック

SageMath notebook, Jupyter Notebook などノートブック形式が主流(?)らしい。Isabelle(イザベル)もproof documentを指向していた。Maximaもノートブック形式指向らしいが、wxMaximaドキュメント形式は、まだセッション記録でしかなくて、とてもドキュ…

平方根の計算

√2 * √3 = √6 はそのままではできない。rootscontract関数に渡す必要がある。 rootscontract(sqrt(2)*sqrt(3)); しかし、√2 * √2 = 2 は自動的に計算される。定義によるからだと思うが、メカニズムはよく分かってない。

Lispとのシンボル対応

マニュアルによると: Maxima Lisp foo $foo 名詞のfoo %foo ?foo foo しかし、実際にやってみると、 :lisp (setq foo 'bar) :lisp foo /* => BAR */ Lisp側での名前が全部大文字の名前になってしまう。なんだ??いずれにしても、:lisp $名前 は探索に役に…

初期化ファイルと出力の準備

基本的なディレクトリは、maxima_userdir と maxima_tempdir 変数に入っている。ファイルの検索位置(ディレクトリ)は、file_search_maxima, file_search_lisp変数に入っている。C:/Users/hiyama/maximaディレクトリがfile_search_maxima変数に入っているの…

wxMaximaのワークシートと設定

wxMaximaがどうも使いにくいのは、コマンドラインシェルではなくて、セルの集まりのワークシートをモデルにしていたのか。コマンドラインとして入力するのではなくて、セルの内容を入力して、セルが評価されるというスプレッドシート方式だったのか。操作モ…

描画の各軸のスケール/描画出力方法

プロットオプション ['same_xy, true], ['same_xyz, true] でスケールが揃う。 wxplot2d([parametric, cos(t), sin(t)], [t, 0, 2*%pi] , [same_xy, true]) ; contour_plot(1/(1+x^2+y^2),[x,-3,3],[y,-3,3], [same_xy, true]); plot3d(10/(1+x^2+y^2),[x,-3…

初期化ファイルはtcl構文だ!

maximaのdotfile - 檜山正幸のキマイラ飼育記 メモ編 の件、あのファイルはtcl構文だろう。 http://wiki.tcl.tk/724 http://www.interq.or.jp/japan/s-imai/tcltk/array.html tcl/tkベースのmaximaのためだとすると、wxMaximaには関係ないだろう。maxima-ini…

ワケわからんバグ

以下の1番のみエラー。 block( [div], 1 + 1) block( [di], 1 + 1) block( [divv], 1 + 1) block( [div_], 1 + 1) 意味不明なバグだ。変数の名前によって事情が変わる。そもそも、名前(記号アトム)は局所変数になるはずのものなのに。ソース c:/Installed/…

ファイルのありか、ラムダ式、ブロック式

.lisp, .macファイルのありか $MAXIMA_HOME/share/maxima/5.40.0/src/ の下 $MAXIMA_HOME/share/maxima/5.40.0/share/ の下 ラムダ式 lambda([ローカル変数リスト], 処理本体) block式 Lispのprogn形式やRのlocal式のようなもの。入れ子のブロック構造を作る…

グラフの描画

1パラメータの3dカーブ - 檜山正幸のキマイラ飼育記 メモ編 の敷衍。 1変数→1変数 plot2d(関数式, [変数名, 下限, 上限]) e.g. plot2d(x^2, [x, -2, 2]) 1変数→1変数 共端である複数の関数(Set射)を同時に plot2d([式1, 式2], [変数, 下限, 上限]) e.g. pl…

構文解析と束縛力定義

$MAXIMA_HOME/share/maxima/5.40.0/src/nparse.lisp

ダメなところ

パッケージマネージャがない。http://maxima.sourceforge.net/3rdpartycode.html にサードパーティコードのリストがある。 タブ補完が使えない。とーーっっても不便。→ Ctrl+K があるが、、、 DELキーが上に遡って消す、勘弁してくれ。 ヘルプシステムがカス…

OSインターフェイスとロード

MaximaのOS、特にファイルシステム機能、 意外に検索はしにくい。「maxima ls chdir」とかやってミソ。 http://maxima.sourceforge.net/docs/manual/maxima_74.html によると次が使える。load("operatingsystem"); を忘れずに。 chdir (dir) mkdir (dir) rmd…

変数のマネジメント

values() は現在具体的な実体を割り当てられ定義された文字の一覧を返す。 functions() は現在具体的な定義を持つ関数の一覧を返す。 変数の開放 kill(変数名)は変数名に割り当てられた定義を消す。 kill(all)はすべての割り当てられた定義を消す。 変数はた…

基本操作

等号の判定には、is(式 = 式), e.g. is( 1 + 1 = 2) 方程式を解くには、solve(方程式, 未知数変数), e.g. solve(x^2 - 1 = 0, x) 微分するには、diff(式, 変数), または diff(式, 変数, 微分回数), e.g. diff(x^2, x), diff(x^2, x, 2) tex(式) でtexのテキ…

微分できない、暗黙のラムダ変数がない

diff(x^2, x) 変数xがバインドされていると変なことになる。xを純粋な変数にしたいなら kill(x) しないといけない。「関数表示だから、暗黙にラムダ変数だろう」という常識が効かないで、大域変数として値を探してしまうのだ。

1パラメータの3dカーブ

2パラメータの3dサーフェイスが基本で、特にカーブ用の関数は用意されてない。2パラメータのうち片方をダミーにして使う。 plot3d([cos(t), sin(t), (1/3)*t], [t, -4*%pi, 4*%pi], [k,0, 1], [grid,500,1])ここで、kはダミー変数で無意味。tだけがパラメー…

maxima フォーカスとカレット

ウィンドウのフォーカスを失って戻ってくると、カレット(ヘアライン 文字カーソル)が消えている。カレットを生成するには、マウスを使う他はない、と言う。非常に使いにくい。GUIはScilab, Octaveのほうがずっとよく出来ている。

maxima プロンプト

めちゃくちゃ久しぶりにmaxima、コンソールでプロンプト出てない。なんか文字入力しないとプロンプトでないと、と言う。何考えてんだ。以前はリターンでもプロンプトが出たが、最新バージョンでは有意な文字入力しないとダメみたい。改悪、つうか、最初から…

Maximaの新バージョンCLips版

http://maxima.sourceforge.net/download.html から辿って、現在の最新版 maxima-clisp-5.37.3.exe を落とした。以前のバージョン5.36はSBCLを使ったが、CLisp版しかない。インストーラーはカスタマイズできなくて、お任せするしかない。c:/ProgramData/Micr…

MikTexが役に立った!

imaximaのためにMikTexを入れたがまともに動かなかった→MiKTeX - 檜山正幸のキマイラ飼育記 メモ編が、ps2pdf.exeが入っていてこれが使えた。おそらく日本語はダメだろうが、psをPDF化するのに便利。あー、良かった。

maximaのdotfile

~/.maximarc があったが、構文がサッパリ分からない。 array set maxima_default { ConsoleFont {{MS ゴシック} 10} OpenDir ~/ OpenFile ~/.xmaximrc SaveFile ~/.xmaximrc adjust 0 bDebugParse 0 defaultservers nmtp://genie1.ma.utexas.edu/ fixed co…

MiKTeX

imaximaのために入れた。 http://miktex.org/ https://ja.wikipedia.org/wiki/MiKTeX http://supportdoc.net/support-latex/newmik.html インストーラーは、basic-miktex-2.9.5105.exe。TeXworksというGUIが付いている。Windowsのスタートメニュー内からパッ…

maximaを使う。

imaximaバッファから: コマンドの終わりにセミコロン。RET時にShiftを押さなくてもよい。 最初に display2d:true; としておく。 quit(); でプロセスを終了できる。 スタートアップ設定がどこだ? リストはブラケット囲み、カンマ区切り。 行列は、matrix(リ…

imaximaをもう一度 4

maximaそのものの入門 http://maxima.combinators.net/ maxima入門 imaximaでもたぶん変わらんでしょう。たぶん。

imaximaをもう一度 3

あー、そうか。数式レンダリングにMiKTeX(ミックテック?)が必要。 (defvar *imaxima-miktex-bin-dir* (file-name-directory (car (file-expand-wildcards "c:/Program Files*/MiKTeX*/miktex/bin/latex.exe"))) "MiKTeX bin directory, added to exec-pat…

imaximaのために、MikTeXとそのパッケージ

imaximaのために、MiTeXもmhパッケージが必要。だが、パッケージマネージャがエラーする。http://tex.stackexchange.com/questions/230249/problem-in-miktex-while-im-installing-mh-package によると、 The mh package has been split into mathtools and …

imaximaをもう一度 2

少し思い出した。sbclで動かしたのだ。sbclってのはLisp処理系で、Steel Bank Common Lisp (http://www.sbcl.org/ )。他に、CLisp (http://www.clisp.org/) とか選べるらしい。 if "%lisp%" == "gcl" goto dogcl if "%lisp%" == "clisp" goto doclisp if "%l…