2013-02-25 2 views
3

Я пытаюсь решить эту конкретную проблему в MATLABвекторные поля в MATLAB

«Рассмотрим систему дг/дТ = г * (л - г^2) + мю * R Cos (Theta)

д (тета)/дт = 1

при му = о, существует устойчивый предельный цикл при г = 1, Покажите, что замкнутая орбита еще существует, мю> 0, до тех пор, как му достаточно мала. "

Я могу нарисовать близкий предельный цикл, но не смог рисовать векторное поле для графика x vs 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); 

я, что я делаю это неправильно, что это правильный способ сделать векторное поле ?? проблема в файле сценария.

+0

Какую ошибку вы получаете? – Phonon

+0

Я не получаю никакой ошибки, код не генерирует стрелки вектора желания. – vinita

ответ

1

идея заключается в том, чтобы взять дифференциал параметров:

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

enter image description here

+0

нет, его не рисовать даже одну стрелку векторного поля – vinita

+0

@винита: см. ... стрелки – Rasman

+0

о, мой бог, он работает, я хранили данные в meshgrid thats, который изменял значения d (theta)/dt и dr/dt, почему он не работает. Спасибо тебе большое. – vinita

Смежные вопросы