読み書きプログラミング

日常のプログラミングで気づいたことを綴っています

2011-05-01から1ヶ月間の記事一覧

記事更新

"Crandall"シリーズの以下の記事を更新しました。 (14) Pollardの素因数分解アルゴリズム (25) 軌道狙い撃ち法 (41) 水素原子の波動関数の有限要素法解法 (62) 水星の近日点移動

マニュアル ctensor

ctensorの翻訳が一応終わりました。成分テンソル操作の章です。 http://www.h3.dion.ne.jp/~y.ich/Maxima/maxima_28.htmlマニュアルの翻訳、一通り終わりました。 Maximaを触り始めたのが2007年。マニュアルの翻訳を始めたのが2009年。2年間かかりました。こ…

マニュアル grobner, itensor

grobnerとitensorの翻訳が一応終わりました。Gröbner基底のためのパッケージと指標テンソル操作の章です。 http://www.h3.dion.ne.jp/~y.ich/Maxima/maxima_60.html http://www.h3.dion.ne.jp/~y.ich/Maxima/maxima_27.html

マニュアル stats

statsの翻訳が一応終わりました。統計的推定パッケージです。 http://www.h3.dion.ne.jp/~y.ich/Maxima/maxima_80.html

マニュアル graphs

graphsの翻訳が一応終わりました。グラフ理論パッケージです。 http://www.h3.dion.ne.jp/~y.ich/Maxima/maxima_59.html グラフ理論は「わかる」奥深さがある感じがします。奥深さを反映する充実度のパッケージです。

マニュアル unit

unitの翻訳が一応終わりました。単位系パッケージですが、ezunitsとの違いよくわかっていません。物理定数の宣言はなく、変換重視という感じでしょうか。

iPad版数式宇宙(仮)

iPad/iPhoneのSafariの上で、数式記号が動きます!お持ちの方是非お試しください。 http://www.h3.dion.ne.jp/~y.ich/applets/expressions.htmlGibsonという方のWKTouch.jsを利用させていただきました。 参考文献 Gibson, "WKTouch - Multi-touch JavaScript…

数式宇宙(仮)

ブラウザ上で数式が踊り始めました。 マウスで記号をぶつけると、「評価」反応を起こして、式が評価式に変わります。(ウソです。まだできてません。) プラットフォームには、scriptaculous.jsを利用しました。 <html> <head> <meta http-equiv="content-type" content="text/html;charset=utf-8"> <title>Expression Universe</title> <script type="text/x-mathjax-config"> MathJax.Hub.Config({</meta></head></html>…

マニュアル zeilberger, atensor

zeilbergerとatensorの翻訳が一応終わりました。超幾何項の定総和、不定総和のパッケージと(Grassman代数とかClifford代数とか)代数テンソル操作パッケージです。 http://www.h3.dion.ne.jp/~y.ich/Maxima/maxima_84.html http://www.h3.dion.ne.jp/~y.ich/M…

マニュアル lsquares, orthopoly

lsquares, orthopolyの翻訳が一応終わりました。最小二乗法パッケージと直交多項式パッケージです。 http://www.h3.dion.ne.jp/~y.ich/Maxima/maxima_68.html http://www.h3.dion.ne.jp/~y.ich/Maxima/maxima_74.html lsquaresパッケージでは、plsquaresの例…

マニュアル minpack, linearalgebra

minpackとlinearalgebraの翻訳が一応終わりました。最小二乗法と方程式の数値解法パッケージ、線形代数パッケージです。 http://www.h3.dion.ne.jp/~y.ich/Maxima/maxima_69.html http://www.h3.dion.ne.jp/~y.ich/Maxima/maxima_67.html

マニュアル interpol, lapack

interpol, lapackの翻訳が一応終わりました。多項式内挿(補間)パッケージとLAPACKパッケージです。 http://www.h3.dion.ne.jp/~y.ich/Maxima/maxima_63.html http://www.h3.dion.ne.jp/~y.ich/Maxima/maxima_64.html

マニュアル ezunits

ezunitsの翻訳が一応終わりました。物理的な単位系を扱うパッケージです。 http://www.h3.dion.ne.jp/~y.ich/Maxima/maxima_54.html

マニュアル descriptive

descriptive(記述統計、いわゆる統計)の翻訳が一応終わりました。 http://www.h3.dion.ne.jp/~y.ich/Maxima/maxima_48.html

Maxima on WebへのMathJax導入

MathJaxはHTML内のTeXなどを数式に変換してくれる表示エンジンです。 Maxima on Webでは数式表示にlatex.codecogs.comを利用していましたが、GUI化の第一歩としてMathJaxを導入してみました。 <html> <head> <meta http-equiv="content-type" content="text/html;charset=utf-8"> <title>Maxima on Web</title> <script type="text/x-mathjax-config"> MathJax.Hub.Config({ tex2jax: { in…</meta></head></html>

Maxima on Web グラフ出力

maxima.html <html> <head> <meta http-equiv="content-type" content="text/html;charset=utf-8"> <title>Maxima on Web</title> <script type="text/javascript" src="prototype.js"></script> <script type="text/javascript"> 0) { var xmlHttp = new Ajax.R…</meta></head></html>

Maxima on Web

iPadでMaxima使いたいなと思っています。数式を扱う時って、ディスプレイ見ているよりノート見る感じのほうがいいんですよね。 てっとり早いのはブラウザでAjaxかと思い、誰かやってくれているはずと思ったのですが、なかなかMaximaを生で見せてくれるものは…

マニュアル solve_rec

マニュアルのsolve_recを訳しました。 http://www.h3.dion.ne.jp/~y.ich/Maxima/maxima_79.html 線形漸化式や和を閉形式に解く関数があります。 (jurupapaさんの記事に触発されて訳しました。感謝。)

(61) Newtonの重力理論と楕円軌道

Newtonの万有引力理論では、二体問題の場合、軌道は楕円になります。 これを順を追って考えます。 角運動量とエネルギーが保存することから以下の式が時間に依存しなくなります。 について解きましょう。 /* 9.4.10m */ derivs : solve([(m/2)*(rDot^2 + r^2…

(62) 水星の近日点移動

一般相対論的な重力場での運動の場合、軌道は楕円にならず、近日点は移動します。これを導くため、Schwarzschild 解から出発します。Schwarzschild 解は以下のような重力場の方程式の球対称解です。この計量で測地線が満たさなければいけない方程式は以下に…

(60) ピンポン球の重力

半径aの薄い球体殻が生じるNewton重力は、殻の外の重力ポテンシャルに関して中心にある質点の重力と等しいことを確認しましょう。 /* 9.4.5m */ assume(not equal((r - a)*(r + a), 0))$ integral : integrate(a * (2 * %pi * a * sin(u)) / (r ^ 2 + a ^ 2 …

(59) Riemannゼータ函数の周辺(パス)

"Crandall"では、Riemannゼータ函数の零点の数値的観察の後、 有限級数と誤差評価による非零点領域の確認 量子振動子の波動函数と余弦積分変換による零点導出 Riemann予想が成り立つ場合のπ(x)の近似からの素数の数の見積もり と続きますが、スクリプトは移…

(58) Riemannゼータ函数の零点

Riemannゼータ函数の絶対値の2乗の逆数をプロットしてみましょう。 /* 9.3.8m */ plot3d(1/cabs(zeta(x +%i*y))^2, [x, 0, 1], [y, 10, 24], [grid, 50, 50], [z, 0, 40])$ x=0.5上のy=14, y=21付近に発散していく場所があることが見えます。実部を0.5に固定…

(57) ゼータ函数のEuler積

以下の恒等式が成り立ちます。右辺がEuler積と呼ばれる形です。これをMaximaを使って実感してみましょう。表示をシンプルにするため、sに-sを代入し、Euler積の中身をMaclaurin展開して、検証する次数まで取り出します。 /* 9.3.3m */ proofLimit : 15$ f(x,…

(56) Vandiverの判定基準

Fermat予想に対して、Kummerに続いて、Vandiverが、非正則素数pに関して以下を証明したそうです。 のうち、分子が素数pで割り切れるものをとします。 pより大きくp(p-1)より小さい素数で、rp+1(rは自然数)の形に書けるものPがあり、かつ、となる自然数uが存…

(55) 素数の正則性チェック(要加筆)

Fermatの最終定理が証明されるまでの歴史のなかで、Kummerが正則素数に限定したものを証明したそうです。正則素数pは、Bernoulli数の偶数項の分子のいずれも割り切らない素数という性質と同値であることがKummerによって示されたそうです。 では、素数の正則…

(50) スペクトル密度

波形とスペクトル密度の関係を見ます。通常は、パワースペクトルを見ますが、振幅の小さなところの特徴も見るため、振幅スペクトルを見ます。まず、振幅スペクトルを計算する関数とそれをプロットする関数を用意しましょう。 /* 8.2.9m */ load("fft")$ matc…

(52) 無限インパルス応答

以下のような無限インパルス応答(IIR)ディジタルフィルタについて考えます。c=0.95でgを0から0.9まで変化させた時のゲインをプロットしてみましょう。 /* 8.3.6m */ c : 0.95$ a : [2 * c * g, -c ^ 2]$ p : length(a)$ b : [-(2 * c * g) / (1 + c ^ 2)]$ q…

(54) 画像処理(パス)

"Crandall"には画像データのエッジ検出がありますが、Maximaで画像データを扱うライブラリを存じないので、パスします。 参考文献 Crandall, Mathematica―理工系ツールとしての (アジソン ウェスレイ・トッパン情報科学シリーズ) p.261-p.265

(53) 有限インパルス応答

有限インパルス応答(FIR)フィルタの場合、バンドパスフィルタは、周波数と共鳴幅を決めるとほぼ決ります。伝達函数は以下のような感じです。特定の周波数に関して、この伝達函数での周波数応答をプロットしてみましょう。 /* 8.3.13m */ sinc(x) := ( local(…