0

私はこの方程式を持っています:

f(t) = <x(t),y(t)>

私が最初にやりたいことは、ある時点 t1 における法線ベクトルを計算することです。MATLAB でこれを行うにはどうすればよいですか?

次に、MATLAB で法線ベクトルと x 軸の間の角度を計算したいと思います。法線ベクトルを見つけることをバイパスして、f(t) から直接角度を計算することができれば、それはより良いかもしれません。

x(t) と y(t) の導関数を手動で取得し、大きさなどを見つける代わりに、いくつかのベクトル操作関数または何かを使用できると便利です。どんな助けでも素晴らしいでしょう!

4

1 に答える 1

0

dx時間微分x、つまり(x(t+1)-x(t-1))/(2dt)(もちろん、中心差の代わりに前方微分を使用することもできます)とdy、対応するの時間微分であるyため、ベクトル[dxから法線とx軸の間の角度を簡単に見つけることができます。 、dy]、その法線は[-dy、dx]だけなので。

n行1列の配列xを想定yし、座標を使用して、次のようにします。

%# take the time derivative
dx = (x(3:end)-x(1:end-2))/2;
dy = (y(3:end)-y(1:end-2))/2;

%# create the normal vector
nvec = [-dy,dx];

%# normalize the normal vector
nvecN = bsxfun(@rdivide,nvec,sqrt(sum(nvec.^2,2)));

%# take the arc-cosine to get the angle in degrees (acos for radian)
%# of the projection of the normal vector onto the x-axis
angle = acosd(nvecN(:,1));
于 2012-12-02T19:50:03.300 に答える