ソフトウェア/Mathematica

(851d) 更新


公開メモ

目次

おすすめチートシート

https://qiita.com/khiri-co/items/977e51074970f8e61c5f

すぐ忘れてしまうので、よく使うコマンドを書いておく

n が整数であることや、偶数であることを仮定して変形

LANG: Mathematica
% // FullSimplify[#, n \[Element] Integers] &
% // FullSimplify[#, Mod[n,2]==0] &
  • # と & で純関数を作っている

y を x+1 や x-1 に置き換えて展開

LANG: Mathematica
% /. y -> {x+1, x-1} // Expand

複素積分

Curve[t] に沿って F[z] を t = 0 から 1 まで積分:

LANG: Mathematica
Assuming[z = Curve[t], Integrate[F[z] D[z, t], {t, 0, 1}]]

数列リストを作成

1から10まで

LANG: Mathematica
Array[ F[#] &, 10 ]

リストに関数を適用

Array で作った数列の各要素に Expand を適用

LANG: Mathematica
Map[ Expand, Array[ (x+y)^# &, 10 ] ]

同じことを、

LANG: Mathematica
Expand /@ Array[ (x+y)^# &, 10 ]

と書ける。

x に関する整式として式を整理

LANG: Mathematica
Collect[ expr, {x}]

不必要な ConditionalExpression を消す

LANG: Mathematica
ConditionalExpression[2, C[1] \[Element] Integers] // Normal

Normal を通せばいい

式を強制的に評価する

LANG: Mathematica
f = x^2 + y^2 + z^2 == 1
ContourPlot3D[Evaluate[f], {x, 0, 1}, {y, 0, 1}, {z, 0, 1}]

前置で Do を書く

LANG: Mathematica
Do[#, {i, 1, 10}] & @ Unevaluated @ (
  Print[i]
)

関数に「式」を外部からそのままの形で渡すには逆に Unevaluated が必要。

変数の値を指定して評価

LANG: Mathematica
With[{x=1}, expression]
Module[{x,y}, x=1; y=x+1; expression]
y //. {y -> x + 1, x -> 1}
  • With は便利だけど y=x+1 のようなのを書けない
  • Module を使うと何でもできるけど変数宣言と値の割り当てで二度手間になる
  • 置き換えに /. を使うと1回しか適用しないのでやはり y->x+1 は無理
  • //. を使うと y->x+1 を適用した後 x->1 を適用してくれる

コメント





Counter: 8282 (from 2010/06/03), today: 2, yesterday: 0