2012-01-04 52 views
2

我不知道如何繪製一個只有1個變量的矢量場。也許Mathematica不支持這一點。例如:Mathematica如何繪製1個變量的矢量場?

r(t) = cost j + sint i 

一樣

<cost, sint> 

這不起作用:

VectorPlot[{cos t, sin t}, {t, 0, 2 Pi}] 

作爲獎金如何利用向量的衍生品?

+2

你知道是t的餘弦寫爲cos [T]在數學,而不是作爲CoS的T? – 2012-01-04 21:13:24

+0

你是什麼意思「有一個變量的矢量場」?你是否將一個矢量分配給一個鏈接的每個點,並且想要在該線上繪製該矢量*? – Szabolcs 2012-01-04 21:28:12

回答

13

一個簡單的解決方法是使用2D-VectorPlot像這樣一個虛擬變量:

VectorPlot[ 
    {Cos[t], Sin[t]}, {t, 0, 2 \[Pi]}, {s, -1/2, 1/2}, 
    AspectRatio -> Automatic, 
    VectorPoints -> {15, 3}, 
    FrameLabel -> {"t", None} 
] 

VectorPlot with dummy variable

或者有什麼可能更有意義是離散的曲線,你得到你的時候跟隨矢量,同時增加t。這是例如用於量子力學中的費曼式動作積分。

Module[ 
    {t, dt = 0.1, vectors, startpoints, startpoint, vector, spv, spvs}, 
    vectors = Table[dt {Cos[t], Sin[t]}, {t, 0, 2 \[Pi], dt}]; 
    startpoints = Accumulate[vectors]; 
    spvs = Transpose[{startpoints, vectors}]; 
    Graphics[Table[Arrow[{spv[[1]], spv[[1]] + spv[[2]]}], {spv, spvs}]] 
] 

Feynman 1D-vectorplot