1 van 1

[matlab] bifurcatiediagram

Geplaatst: za 13 dec 2008, 16:32
door ametim
Ik had een vraagtje mbt het volgende probleem:

Verborgen inhoud
3. a) Consider the 1-parameter family of equations:
\(y(n + 1) = \alpha y(n) (1 - y(n)^2) \)
b) Compute all real equilibrium solutions and prove that, at a

certain parameter value
\( x_{0} \)
, undergoes a pitchfork bifurcation.

c) The program has to be able to show either one side of the pitchfork,

or both sides of the pitchfork at the same time, without explicit use of

any symmetry properties. (This requires some serious thinking!

What is the minimal number of solutions that have to be computed in

each case?) Explain the difference between a pitchfork bifurcation and

a period doubling bifurcation.


We hadden de volgende m-file gemaakt in Matlab, het gaat overigens om vraag 3c :

Code: Selecteer alles

function F = bifurcationdiagram2(Amin, Amax, Xo, X1, No, Nmax)

A = Amin:0.005:Amax;

for a = 1:length(A)

for i = 1:Nmax

if i==1

Y(a,i) = Xo;

Z(a,i) = X1;

else Y(a,i) = A(a)*Y(a,i-1)*(1 - Y(a,i-1));

 Z(a,i) = A(a)*Z(a,i-1)*(1 - Z(a,i-1));

end

end

C = Y(:,No:Nmax);

D = Z(:,No:Nmax);

end

plot(A,C,'r',A,D,'g', 'markersize', 1);

axis([-3 3 -1.5 1.5])

xlabel('Alpha');

ylabel('y');

title('Bifurcationdiagram')

end
Wij begrijpen niet waarom de bifurcatie diagram onder andere geen oplossingen laat zien voor
\( \alpha<2 \)
. Ook als wij een negatieve startwaarde invoeren, komt er niet een spiegeling uit t.o.v. de alfa as.

Alvast bedankt voor het doorlezen van deze lap tekst :D

Re: [matlab] bifurcatiediagram

Geplaatst: za 13 dec 2008, 22:52
door EvilBro
Wij begrijpen niet waarom de bifurcatie diagram onder andere geen oplossingen laat zien voor
\( \alpha<2 \)
.
Het probleem dat ik hier heb is dat ik niet weet hoe jullie de functie aanroepen. Als je een specifiek voorbeeld geeft van een call dan kan ik je (waarschijnlijk) vertellen wat er misgaat in dat geval.

Het valt me wel op dat jullie functie in de matlab code niet hetzelfde is als de functie in de opgave...

Ik heb overigens even het volgende geprutst. Let wel, tot een kwartier geleden of zo wist ik niet wat een bifurcatie diagram was. Het programma dat ik geschreven heb is gebaseerd op wat ik tussen dat moment en nu geleerd heb. Ik kan dus de plank volledig misslaan. Met andere woorden: als je er blindelings op vertrouwt dat mijn oplossing klopt dan kan je wel eens vreselijk de mist in gaan. Je bent gewaarschuwd.

Code: Selecteer alles

close all;

clear all;

figure;

hold on;

y_0 = -1:0.1:1; % starting points.

maxN = 100; % assume 'convergence' after maxN steps.

for a = 0:0.001:3,

y = y_0;

for i = 1:1:maxN,

y = a * y .* (1-y.^2);

end

plot(a*ones(size(y)), y, '.');

end
Als laatste wil ik nog de tip geven dat het volgens mij handig is om bij een specifieke 'a' en een specifiek startpunt y0 van de rij eens het verloop van de rij te bekijken. Je zult dan zien dat de rij voor a<2 wel degelijk convergeert (in sommige gevallen).

Re: [matlab] bifurcatiediagram

Geplaatst: ma 15 dec 2008, 16:21
door ametim
Heel erg bedankt EvilBro, grotendeels door jouw werk zijn we er nu uitgekomen!

Verborgen inhoud
Onder andere hadden we de functie niet goed overgenomen... :D