2012-01-04 303 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