Search All of the Math Forum:

Views expressed in these public forums are not endorsed by NCTM or The Math Forum.

Topic: Incomplete diagram!
Replies: 2   Last Post: Jul 12, 2013 5:38 PM

 Messages: [ Previous | Next ]
 Curious Posts: 2,357 Registered: 12/6/04
Re: Incomplete diagram!
Posted: Jul 12, 2013 11:50 AM

"Sanaa" wrote in message <krot0k\$q4g\$1@newscl01ah.mathworks.com>...
> Hi,
> I have a problem that I wish to plot what is called a bifurcation diagram.
> The map under study is given by
> x_((n+1)r)= 1 - ru *x^2_(nr),
> where r is a positive constant may take 0.1,0.2,...
> ru is a positive parameter, and the time t runs from nr to (n+1)r, n=0,1,2,...
>
> I have the matlab code
> %%%%%%%%%
>
> % define the vector of values that r takes
> r_vec = [0.2];
> % define the vector of colors, to plot the dat aof reach value of r in
> % different color
> color_vec = ['b'];
>
> for rho = 0: 0.005: 2
>
>
> % do a loop of values of r
> for j = 1 : size(r_vec,2)
> % define delay
> r = r_vec(j);
> % define coefficient rho
> %rho = 0.5;
> % define the number of deiscrete times in interval [k*r, (k+1)*r]
> n = 10;
> % define the nimber of iterations k = 1,.....,Nit
> Nit = 1000;
> % define the initial vector which is a vector of size n
> x0 = 0.3*ones(1,n);
> % define vectors x_next and x_previous
> x_next = zeros(1,n);
> x_previous = zeros(1,n);
> time = zeros(1,n);
>
> % initialize x_previous
> x_previous = x0;
> x_next = x_previous;
> time = linspace(0,r,n);
>
> % set the figure details
> figure(1)
> xlabel('t')
> ylabel('x')
> %plot(time,x_next,'*')
> hold on
> for i = 1:Nit
>
> x_next = 1 - rho*x_previous.^2;
> x_previous = x_next;
> time = linspace(i*r,(i+1)*r,n);
>
> end
> end
>
>
> plot(rho,x_next(1),'.', 'Color', char(color_vec(j)),'linewidth',10)
>
> end
>
> hold off
> % save the figure
> % print -depsc map.eps
> %%%%
> The code works but I am wondering why I don't get a complete picture of the diagram, it seems that it is divided into 2 parts!!!!

I don't have MATLAB installed on this computer, but from the above my guess is to move the statements:

% set the figure details
figure(1)
xlabel('t')
ylabel('x')
%plot(time,x_next,'*')
hold on

before your outer loop and see what happens. I suspect the statement "figure(1) is executed twice and that is why your diagram is divided into 2 parts (as you state). But this is just a guess!

Date Subject Author
7/12/13 Sanaa
7/12/13 Curious
7/12/13 Sanaa