5. Vector 関数について

Vector を表示する便利な関数を見つけたのでここに載せることにする。以下の本て載っていたものです。

CalcLab with Mathematica , Multivariable Calculus, Setwyn Hollis, Brooks/Cole,
ISBN-13:978-0-8400-5813-3

設定

Step 1. 次の関数定義をノートブックの初めに貼付けてセルを 初期化セル に設定する。

Step 2. 評価 -> 初期化セル を評価 を実行する。

これで 関数 Vector を利用できるようになる。

SetOptions[#, {ViewPoint -> {6, 3, 3}}] & /@ {Graphics3D, Plot3D, ParametricPlot3D};
(*  2D  Vector  *)
Vector[{ip : {_, _}, vec : {_, _}}, styles___] :=
  Graphics[{Arrowheads[Medium], Thickness[Medium], styles, Arrow[{ip, ip + vec}]}];
Vector[vec : {_, _}, styles___] := Vector[{{0, 0}, vec}, styles]
(*  3D vector  *)
Vector[{ip : {_, _, _}, vec : {_, _, _}}, styles___] :=
  Graphics3D[{Gray, CapForm["Butt"], Arrowheads[Medium], styles, Arrow[Tube[{ip, ip + vec}]]}];
Vector[vec : {_, _, _}, styles___] := Vector[{{0, 0, 0}, vec}, styles]
ijk := Show[Vector[#, Darker[Blue]] & /@ IdentityMatrix[3]]
ijk2 := Show[Vector[#, Darker[Blue]] & /@ IdentityMatrix[3], 
  Graphics3D[Text[Style["i", Italic, Bold, 16], {1.05, 0, 0}]], 
  Graphics3D[Text[Style["j", Italic, Bold, 16], {0, 1.05, 0}]], 
  Graphics3D[Text[Style["k", Italic, Bold, 16], {0, 0, 1.05}]]]
(* Projections  *)
comp[b_, a_] := a.b/Sqrt[a.a]
proj[b_, a_] := comp[b, a]*a/Sqrt[a.a]
showProj[b : {_, _}, a : {_, _}, opts___] :=
  Show[Vector[proj[b, a], Thick, Red], Vector[a], Vector[b],
    Graphics[{Dashed, Line[{b, proj[b, a]}]}], opts, Axes -> True]
showProj[b : {_, _, _}, a : {_, _, _}, opts___] :=
  Show[Vector[proj[b, a], Thick, Red], Vector[a], Vector[b],
    Graphics3D[{Dashed, Line[{b, proj[b, a]}]}], opts, Axes -> True]

利用例

f[t_] := {Sin[t + Pi/4], Cos[t]};
Show[ParametricPlot[f[t], {t, 0, 2 Pi}], Table[Vector[f[t]], {t, Pi/6, 2 Pi, Pi/6}]]
g[t_] := {Sin[t], Sin[2 t], Sin[3 t]}
Show[Table[Vector[g[t]], {t, 0, Pi, 0.1}], ijk2, ParametricPlot3D[g[t], {t, 0, 2 Pi}]]

まとめ

  • Mathematica には組み込み関数としての Vector は無い。
  • ここに定義した関数を使うことにより ベクトルをグラフィックスで表示できる。
  • 2次元ベクトルと3次元ベクトルに対応している。

目次へ