1. The problem statement, all variables and given/known data
Consider the system of equations : x' = x-y-x^3 and y'=x+y-y^3
a) Draw a phase plot ( Done numericlly program listed here in matlab)
b) Prove analytically that at-least one stable cycle exists ( Used Poincare Bendixon theorem to prove done)
c) Compute the period of the cycle numerically ( No idea about this >>)
2. Relevant equations
Limitcycle.m
clc;
clear all;
options=[];
timeperiod=[];
phasepoints=[];
xnew =0.01;
ynew =0.01;
% x_start= -0.9:0.1:0.9;
% xstart = 0.9:-0.1:-0.9;
% x_start= [x_start,xstart];
% y_start= -0.9:0.1:0.9;
% ystart= -0.9:0.1:0.9;
% y_start=[y_start,ystart];
%for u=1:size(x_start,2)
[t y]=ode23('cyclefunc',[0 50],[xnew ynew],options);
timeperiod=[timeperiod;t];
phasepoints=[phasepoints;y];
%end
n=0.015;
points=y;
figure(2)
plot(phasepoints(:,1),phasepoints(:,2));
xlabel('X-axis');
ylabel('Y-axis');
% plot3(t,y(:,1),y(:,2));
% xlabel('Time');
% ylabel('Y-axis');
% zlabel('X-axis');
% startingNode=y(4,:);
% filename: cyclefunc.m
function dydt = f(t,y,flag)
dydt = [y(1)-y(2)-y(1)^3;
y(1)+y(2)-y(2)^3];
plot(y(1),y(2));
xlabel('X-axis');
ylabel('Y-axis');
drawnow;
hold on;
axis([-1.3 1.3 -1.3 1.3]);
These programs generate the limit cycle numerically and it is correct
3. The attempt at a solution
Now the attempt is the above program itself. I scoured the internet to search for an algorithm for generating time period numerically . I saw some programs like pplane which do it for you ( I doesnt show how it calculate though)
Any one can tell me a primitive algorithm for calculating this ?? Or if my current matlab program can be modified to calculate the same ?
Consider the system of equations : x' = x-y-x^3 and y'=x+y-y^3
a) Draw a phase plot ( Done numericlly program listed here in matlab)
b) Prove analytically that at-least one stable cycle exists ( Used Poincare Bendixon theorem to prove done)
c) Compute the period of the cycle numerically ( No idea about this >>)
2. Relevant equations
Limitcycle.m
clc;
clear all;
options=[];
timeperiod=[];
phasepoints=[];
xnew =0.01;
ynew =0.01;
% x_start= -0.9:0.1:0.9;
% xstart = 0.9:-0.1:-0.9;
% x_start= [x_start,xstart];
% y_start= -0.9:0.1:0.9;
% ystart= -0.9:0.1:0.9;
% y_start=[y_start,ystart];
%for u=1:size(x_start,2)
[t y]=ode23('cyclefunc',[0 50],[xnew ynew],options);
timeperiod=[timeperiod;t];
phasepoints=[phasepoints;y];
%end
n=0.015;
points=y;
figure(2)
plot(phasepoints(:,1),phasepoints(:,2));
xlabel('X-axis');
ylabel('Y-axis');
% plot3(t,y(:,1),y(:,2));
% xlabel('Time');
% ylabel('Y-axis');
% zlabel('X-axis');
% startingNode=y(4,:);
% filename: cyclefunc.m
function dydt = f(t,y,flag)
dydt = [y(1)-y(2)-y(1)^3;
y(1)+y(2)-y(2)^3];
plot(y(1),y(2));
xlabel('X-axis');
ylabel('Y-axis');
drawnow;
hold on;
axis([-1.3 1.3 -1.3 1.3]);
These programs generate the limit cycle numerically and it is correct
3. The attempt at a solution
Now the attempt is the above program itself. I scoured the internet to search for an algorithm for generating time period numerically . I saw some programs like pplane which do it for you ( I doesnt show how it calculate though)
Any one can tell me a primitive algorithm for calculating this ?? Or if my current matlab program can be modified to calculate the same ?
via Physics Forums RSS Feed http://www.physicsforums.com/showthread.php?t=703914&goto=newpost
0 commentaires:
Enregistrer un commentaire