3

私はmatlabでこの特定の問題を解決しようとしています

"システムを考えてみましょうdr/dt = r *(l --r ^ 2)+ mu * r cos(theta)

d(シータ)/ dt = 1

mu = oの場合、r = 1で安定したリミットサイクルがあります。muが十分に小さい限り、mu>0の間は閉じた軌道がまだ存在することを示してください。」

近いリミットサイクルを描くことはできますが、x対yグラフのベクトル場を描くことができません。

これが私のコードです。

function file->
function dy = tst(t,y)
%UNTITLED Summary of this function goes here
% Detailed explanation goes here
dy = zeros(2,1);
dy(1) = y(1)*(1-y(1)*y(1))+1.5*y(1)*cos(y(2));
dy(2) = 1;
end

script file->

[t,r] = ode45(@tst,[0, 40],[1,0]);
x = r(:,1).*cos(r(:,2)); 
y = r(:,1).*sin(r(:,2));
figure(1)
plot(x,y);

hold on

[R,T] = meshgrid(r(:,1),r(:,2));

X = R.*cos(T);

Y = R.*sin(T);

quiver(R,T,X,Y);

私はこれを間違った方法でやっていると思いますが、ベクトル場を描く正しい方法は何ですか?問題はスクリプトファイルにあります。

4

1 に答える 1

1

アイデアは、パラメータの差分を取ることです:

quiver(x(1:end-1),y(1:end-1),diff(x)./diff(t),diff(y)./diff(t))

ここに画像の説明を入力してください

于 2013-02-25T21:56:08.500 に答える