最終更新 2024.09.27
インストール # apt install wolfram-engine 起動 GUI版 $ mathematica CUI版 $ wolfram ● pi 以外のユーザーで mathematica を使う root, pi 以外のユーザーが mathematica を起動すると、 アクティベーションを要求してくる。 Activate online というウィンドウが開く。 これを回避するには、 /etc/group を root 権限で開き、グループ video にユーザー名を 追加する。 video:x:44:pi,user-name のように書く。一旦ログアウトし、再ログインすると 使えるようになっている。
(* *) 式の途中に入れてもよい
変数名にアンダースコアを使ってはいけない! アンダースコアが付いた変数は展開されない。
a = b * c; のように式の末尾に ; をつけておくと、 Out[1] = 10 のように Out[1] の行を表示しない。 Enter は単なる改行 Shift + Enter で演算や定義を実行 命令をファイルに書いておいて一気に実行する方法 命令ファイルが a.m のとき $ wolfram < a.m 起動中のとき In[1]:= << a.m
値を計算 L = 0.239 * 10^-3 Ca = 0.166 * 10^-6 C は予約語らしい。使えない w = 1 / Sqrt[L Ca] f = w / 2 / Pi
x = a * b y = c * d z = x * y
(注意!) == を使うこと。 = を一度使って y[0] = 1 とやってしまうと、次に == を使ってもだめである。 DSolve[ y'[x] - x y[x] == x, y[x], x] DSolve[ y''[x] + 3 y'[x] + 2 y[x] == Exp^(2 x ), y[x], x] Simplify[%] % は前の結果 Expand[%] 初期値を入れるときは DSolve[ { y''[x] + 4 y[x] == 0, y'[0] == 1, y[0] == 0}, y[x], x]
不定積分 Integrate[ Exp[x^2], x] 定積分 Integrate[ Exp[x],{x,0,Infinity}]
D[ Log[3 x], x]
Cos, Sin, Exp, Abs, Sqrt Re, Im, Conjugate
m = { {1,2,3},{4,5,6},{7,8,9} } Det[m] Inverse[m] Eigenvalues[m] Eigenvectors[m] 行列の積 m2 = m.m 要素を取り出す a = m2[[2,1]]
定義 func[x_] := Exp[ -x^2] 確認 func[x] 定義 func2[x_] := D[func[x],x] 積分 Integrate[func2[x], {x,0,Infinity}] クリア Clear[func]
N[%,10] 10 は桁数
大文字の I
Solve[ x^2 + ax + 1 == 0, x ]
3 x + 4 y = a 4 x + y = b Solve[ { 3x + 4y , 4x + y} == {a,b},{x,y} ]
Wolfram のリファレンス Expand[ ] カッコで括っている部分を展開する ExpandNumerator[ ] 分子だけ ExpandDenominator[ ] 分母だけ ExpandAll[ ] 分子分母を完全に展開する Simplify[ ] FullSimplify[ ] Reduce[ ] FortranForm[ ] Factor[ ] 因数分解に使うが、分数の中に分数があるのを解消するときにも使う FactorTerms[poly, {x, y}] Collect[poly, {x, y}]
プログラム中で変数を表示する方法はよくわからない。 プログラムの実行終了後、プロンプトから変数名を 打ち込む、あるいは Simplify[変数名] と打ち込むと、 変数の内容を表示する。
虚数単位は I で表す x = 3 + 4 I y = a + b I 関数(最初の一文字が大文字なのに注意! 小文字だと動かない) Re[z] Im[z] Abs[z] Arg[z] Conjugate[z] mathematica は変数は複素数とみなすので、 Re[y] は a とはならない。 変数を実数として扱いたい場合 ComplexExpand[ Re[y] ] と記述する。