ソフトウェア/Mathematica のバックアップの現在との差分(No.7)

更新


  • 追加された行はこの色です。
  • 削除された行はこの色です。
[[公開メモ]]

* 目次 [#od6bc1c7]

#contents

* おすすめチートシート [#f808cec1]

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

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

** n が整数であることや、偶数であることを仮定して変形 [#dcadc045]

 LANG: Mathematica
 % // FullSimplify[#, n \[Element] Integers] &
 % // FullSimplify[#, Mod[n,0]==0] &
 % // FullSimplify[#, Mod[n,2]==0] &

- ~# と & で純関数を作っている

** y を x+1 や x-1 に置き換えて展開 [#de166b45]

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

** 複素積分 [#dffffa86]

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

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

** 数列リストを作成 [#vdeebd46]

1から10まで

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

** リストに関数を適用 [#sa0aeac5]

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

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

同じことを、

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

と書ける。


** x に関する整式として式を整理 [#p2b34c9f]

 LANG: Mathematica
 Collect[ expr, {x}]

** 不必要な ConditionalExpression を消す [#y15a7883]

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

Normal を通せばいい

** 式を強制的に評価する [#s0ca500c]

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

** 前置で Do を書く [#l5baeac9]

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

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

** 変数の値を指定して評価 [#r2d0e46c]

 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 を適用してくれる

* コメント [#ca7e4a15]

#article_kcaptcha


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