Springen naar inhoud

[matlab] bifurcatiediagram


  • Log in om te kunnen reageren

#1

ametim

    ametim


  • >100 berichten
  • 150 berichten
  • Ervaren gebruiker

Geplaatst op 13 december 2008 - 16:32

Ik had een vraagtje mbt het volgende probleem:
Verborgen inhoud

3. a) Consider the 1-parameter family of equations:
LaTeX

b) Compute all real equilibrium solutions and prove that, at a
certain parameter value LaTeX , 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 :
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 LaTeX . 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

Dit forum kan gratis blijven vanwege banners als deze. Door te registeren zal de onderstaande banner overigens verdwijnen.

#2

EvilBro

    EvilBro


  • >5k berichten
  • 6703 berichten
  • VIP

Geplaatst op 13 december 2008 - 22:52

Wij begrijpen niet waarom de bifurcatie diagram onder andere geen oplossingen laat zien voor LaTeX

.

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.

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).

#3

ametim

    ametim


  • >100 berichten
  • 150 berichten
  • Ervaren gebruiker

Geplaatst op 15 december 2008 - 16:21

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

Veranderd door ametim, 15 december 2008 - 16:22






0 gebruiker(s) lezen dit onderwerp

0 leden, 0 bezoekers, 0 anonieme gebruikers

Ook adverteren op onze website? Lees hier meer!

Gesponsorde vacatures

Vacatures