Den logistiska avbildningen eller hur jag slutade oroa mig och lärde mig älska kaos Jonas Gustafsson gsson@kth.se Linnea Rullgård f01lru@kth.se 15 maj 2002
Sammanfattning Vi har undersökt beteendet hos populationer som följer den logistiska ekvationen. För tillräckligt stora tillväxtparametrar uppkommer inget stabilt tillstånd, utan ett kaosliknande beteende tar vid. 1
1 Uppgift Vi skulle undersöka egenskaperna för en dynamisk population modellerad med den så kallade logistiska ekvationen. Vi har studerat hur en logistisk population utvecklas med tiden, ochkvalitativt försökt utröna dess egenskaper genom att leta efter stabila lösningar för olika parametervärden, ochundersöka när sådana inte existerar. 2 Inledning Den logistiska ekvationen, dy =(r ρy)y (1) dt eller i diskret tid, x n+1 = ρx n (1 x n ) (2) introducerades 1838 som en modell för befolkningstillväxt av den belgiske matematikern Pierre Verhulst. Differentialekvationen (1) används när man vill beskriva kontinuerligt växande populationer medan (2) huvudsakligen används vid modellering av arter där hela populationen förökar sig mer eller mindre samtidigt vid diskreta tidpunkter. I den modellen kan n ses som antalet generationer från utgångsläget. Verhulst saknade erforderliga data och kunde aldrig jämföra sin modell med verkligheten, men försök på 1930-talet med bland annat insektspopulationer har dock visat god överrensstämmelse med modellen. Modellen bygger på att populationer på ett tidigt stadium i princip växer exponentiellt så att dy/dt = cy, därc är en konstant. När populationen blir större börjar emellertid resurser, tex mat ochutrymme, ta slut ochtillväxten dämpas. Om man inför K = r/ρ ochskriver ekvationen som dy/dt = r(1 y/k)y ser man att då y är litet är 1 y/k 1 och y växer exponentiellt. När y blir större går 1 y/k mot 0 ochtillväxten avtar. Man ser att r och K kan tolkas som tillväxthastigheten med obegränsade resurser respektive den stabila populationsstorleken. 3 Egenskaper Vi börjar med att normalisera problemet. Så låt Vi vill att f :[0, 1] [0, 1]. Maximerar vi får vi =ρx(1 x) (3) df dx = dx n+1 dx n = ρ(1 2x) =0 (4) Varur det följer att f maximeras för x max = 1 2. Insättning ger f(x max )= ρ 4 ρ [0, 4] (5) Innan vi undersöker (2) vidare behöver vi göra lite definitioner. 2
Definition. Om f : K K och x K : x = så säger vi att x är en fixpunkt till. Om x n+1 = f(x n ) och x n+j =(f f f)(x n )=f j (x n )=x n så säger vi att x n är en j:te ordningens fixpunkt till f. Definition. Om det för en fixpunkt x = f(x ) ε >0 så att x : x x < ε x n = x,n så kallas x för attraherande. Om så icke är fallet säger vi att x är repellerande. Då har vi följande användbara resultat Sats. Om x är en fixpunkt till den kontinuerligt deriverbara funktionen f, och df dx (x ) < 1, såärx en attraherande punkt. Bevis. f är deriverbar i x vilket medför f(x ) x x df,x x dx f antogs kontinuerlig så för x tillräckligt nära x gäller då att f(x ) x x <c<1 (6) Följdaktligen kan vi låta x = x 0, tillräckligt nära x så att (6) gäller, x n+1 = f(x n ), och bygga följden f(x ) f(x 0 ) = x x 1 < c x x 0 f(x ) f(x 1 ) = x x 2 < c 2 x x 0. f(x ) f(x n 1 ) =. x x n <. c n x x 0 0,n Vilket innebär att i en omgivning till x gäller x n x,n, som visar satsen. Mer allmänt gäller att en avbildning f : R n R n är ytförminskande om avbildningens jacobian, det f < 1. Vill vi undersöka den logistiska tillväxten så söker vi fixpunkter till f. De triviala fixpunkterna är de konstanta lösningarna { x = 0 x = 1 1 ρ (7) För att undersöka om lösningssekvenserna från närliggande utgångsvärden konvergerar mot de konstanta lösningarna studerar vi derivatan nära fixpunkten. För ρ [0, 1] är 0 en attraktiv fixpunkt, eftersom df dx = ρ(1 2x) < 1 x (0, 1] (8) Enligt satsen ovan är således 0 stabil. Detta är rimligt, ochkan tolkas så att populationer med en tillväxtparameter under ett, är dömda till undergång. I närheten av x =1 1 ρ får vi istället df dx = ρ(1 2+ 2 ρ ) = 2 ρ (9) 3
vilket medför att enligt samma sats ovan är x =1 1 ρ en attraherande fixpunkt om 2 ρ < 1 eller ekvivalent ρ (1, 3). Slutsatsen blir att för ρ [0, 1] konvergerar följden mot x =0ochi intervallet ρ [1, 3) mot x =1 1 ρ. När vi söker fixpunkter till (3) får vi en trevlig grafisk tolkning. För att finna en första ordningens fixpunkt vill vi finna skärningen mellan grafen till och linjen y = x. Utgå ifrån ett godtyckligt startvärde x 0. Dra därefter en vertikal linje tills grafen korsas. Dra därefter en vågrät linje tills linjen y = x korsas. Dra sedan åter en vertikal linje till grafen. Vi har nu från x 0 grafiskt funnit x 2 = f(f(x 0 )). Itererarar vi ovanstående får vi en bra grafisk representation av vad uppträdandet av dessa serier innebär. Följande grafer illustrerar detta ochresultaten om attraherande fixpunkter för ρ [0, 1] och ρ [1, 3). 1 0.9 0.8 0.7 0.6 0.5 0.4 ρ = 0.99 x 0 = 0.5 0.3 0.2 0.1 0 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 x 4
1 0.9 ρ=2.5 x 0 =0.5 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 x Då ρ 3 är ingen av de konstanta lösningarna stabil. För ρ något större än 3 pendlar iterationerna periodiskt mellan två värden. 0.76 0.74 ρ=3.01 0.72 0.7 0.68 0.66 0.64 0.62 0.6 0.58 0.56 0 10 20 30 40 50 60 70 80 90 100 n antalet iterationer Detta innebär att det finns två stycken attraherande fixpunkter av ordning två, vilket åskådligörs i följande diagram som tydligt visar konvergensen mot de attraherande fixpunkterna av grad två. 5
1 0.9 ρ=3.01 x 0 =0.1 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 x Det är tydligt att avbildningen i det här läget är helt okänslig för begynnelsevillkor, som följande diagram visar 1 0.9 ρ=3.01 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 x För att beräkna värdena av fixpunkterna efter första perioddubblingen 6
sätter vi ochfår x n+2 = x n (10) (11) x n+2 = ρx n+1 (1 x n+1 ) = ρ[ρx n (1 x n )][1 ρx n (1 x n )] = ρ 2 x n (1 x n )(1 ρx n + ρx 2 n)=x n Ta bort indexen ochförenkla till x(ρ(1 x)(1 ρx + ρx 2 ) 1) = 0 ρ 3 x[x (1 1 ρ )][x2 (1 + 1 ρ )x + 1 ρ (1 + 1 ρ )] = 0 (12) Här känner vi igen de två första faktorerna som den triviala 2-cykeln som uppkommer genom att upprepa en 1-cykel. Vi vet att dessa är repellerande för ρ>1, ochförenklar med gott samvete till x = 1+ρ 1 2 ± (1+ρ 1 ) 2 4 1 ρ 1 ρ 2 = 1 2 (1 ρ 1 ± 1+2ρ 1 3ρ 2 ) = 1 2 (1 ρ 1 ± ρ 1 (ρ 3)(ρ +1) (13) Där vi helt i enlighet med våra tidigare resultat, ser att lösningen för en äkta 2-cykel inte är reell för ρ<3. Ökar vi försiktigt ρ kommer de båda fixpunkterna bli repellerande. Omkring ρ = 3.449 delar båda extremlägena i oscillationen upp sig i två nya distinkta värden, som vardera är en 4:e gradens fixpunkt till f. Lösningen blir 4-periodisk. En så kallad perioddubbling har inträffat. Att lösningen blir 4-periodisk med stabila 4:e gradens fixpunkter illustreras tydligt i följande diagram. Den gröna grafen är f 4 (x). 1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 ρ=3.5 x 0 =0.5 0 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 x 7
Med ökande ρ uppträder nya perioddubblingar så att vi får periodiska lösningar med attraherande cykler utav period 2k, k = 0, 1, 2.... Denna perioddubbling kan visas upprepas tätare och tätare när ρ närmar sig fyra. Detta kan åskådliggöras genom följande diagram, där alla cykler plottas mot värdet på ρ. 1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 2 2.2 2.4 2.6 2.8 3 3.2 ρ tillväxtparameter 3.4 3.6 3.8 4 Uppkomsten av nya lösningar vid ett visst parametervärde kallas bifurkation. Att vi iakttar en bifurkationspunkt strax innan den teoretiska splittringspunkten vid 3, kan förklaras med att diagrammet är gjort med ett ändligt antal iterationer. Låt nu ρn beteckna det parametervärde som svarar mot den n:te cykelsplittringen. Bilda följden {ρn } n=0, låt sedan ρn+1 ρn δ = 4.669211660910299067185320382047..., n ρn+2 ρn+1 (14) δn har den geometriska tolkningen som kvoten mellan avstånden mellan två succesiva bifurkationspunkter. Mitchell Feigenbaum upptäckte 1976 detta värde numeriskt när han studerade flera 1-dimensionella avbildningar. Hans upptäckt var förbluffande, värdet på δ var oberoende av vilken familj avbildningen tillhörde. δ kallas efter sin upptäckare för Feigenbaums konstant. Kan vi hitta ett närmevärde till ρ? Det vill säga, kan vi finna ett ρ [0, 4] så att (2) uppvisar ett helt aperiodiskt beteende? Vi kan skriva δn = ρn = ρ1 + (ρ2 ρ1 ) + (ρ3 ρ2 ) + + (ρn ρn 1 ) (15) Om vi sedan utnyttjar att ρn+2 ρn+1 = 8 1 (ρn+1 ρn ) δn (16)
ochantar att δ 3 δ n δ får vi ett uttryck för ρ n som en geometrisk serie i δ ρ n = ρ 1 +(ρ 2 ρ 1 )+δ 1 (ρ 2 ρ 1 )+ + δ n+2 (ρ 2 ρ 1 ); (17) som har den konvergenta summan ρ = lim ρ 1 n = ρ 1 +(ρ 2 ρ 1 ) n 1 1 δ 3.57 (18) För ρ>3.57 är således alla fixpunkter repellerande ochinga stabila cykler existerar. Detta tillstånd kännetecknas av extrem känslighet för begynnelsevärden, ochbrukar betecknas som kaotiskt. Den teoretiska biologen Robert May som var den första att studera gränscykler för den logistiska avbildningen drog slutsatsen att det är omöjligt att göra långsiktiga uttalanden om populationer med en stor effektiv tillväxtparameter. Märkligt nog hittar vi fönster i bifurkationsträdet, där avbildningen tvingas in i irrationella cykler, för att sedan åter uppvisa kaotiskt beteende. Detta illustreras med följande diagram, där vi plottat de 20 första iterationerna med ρ =3.6. 1.5 ρ = 3.6 röd x 0 = 0.1 blå x 0 = 0.1001 1 0.5 0 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 x Notera att att följderna följs åt de första iterationerna, för att sedan helt frigöra sig från varandra. 9
1 ρ = 3.75 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0 50 100 150 n antalet iterationer Studerar vi funktionsvärdet för de första 150 iterationerna, kan vi inte upptäcka något cykliskt beteende. 4 Tillämpningar och tolkningar I de populationsdynamiska tillämpningarna ser man att för ρ>3 uppnås konstanta tillstånd endast om x 0 =0eller x 0 = ρ 1 ρ. Båda dessa fall är av naturliga skäl ganska ointressanta. För andra utgångsvärden uppträder bifurkationer som får tolkas som att populationen snabbt växer till en ohållbart stor nivå, varför den lika snabbt kommer att minska till en nivå under den stabila, ochså vidare. Liknande resonemang gäller även för högre perioder. Huruvida Feigenbaums konstant har någon populationsdynamisk tolkning, är en intressant, men för oss öppen fråga. Ekvationerna dy =(r ρy)y (19) dt och x n+1 = ρx n (1 x n ) (20) uppkom vid studier av populationsdynamik ochdet är främst där de har tillämpningar. En annan rätt uppenbar tillämpning är smittspridning men det finns även mindre självklara områden där modellen kan användas. Ett sådant är ekonomi där man till exempel kan studera sambandet mellan ett företags reklambudget ochintäkter. Här blir x n den summa man bör satsa på reklam och ρ = lg där l är inkomsten tack vare reklamen och g är den andel av vinsten som används till reklam. Som kuriosa kan även nämnas att den logistiska ekvationen har använts för att komponera musik. Till exempel har kemisten och musikern David Clark Little 10
skrivit stycket Fractal Piano 6 utifrån värden som erhållits från iterationer av (2) ochtolkat dem som frekvenser, ljudstyrkor ochtider. 11
A Källhänvisning 1. William E. Boyce, Richard C. DiPrima, Elementary differential equations and boundary value problems 6:th edition, 1997 2. Michael Benedicks, Periodfördubbling till kaos, 1983 3. Cynthia Kinnan, Chaos Report, http://www.math.pitt.edu/ gartside/math0450/chaos/studentreports/cynthiakinnan.html 4. http://sca.ahk.nl/david/compwchaos.html#ver - COMPOSING WITH CHAOS 5. http://www.cut-the-knot.com/blue/chaos.shtml - Emergence of chaos 6. http://mathworld.wolfram.com - Eric Weisstein s world of mathematics 12
B MATLAB-program bifurcation.m function bifurcation(numsteps, numinitial, numcycles) %Plottar den logistiska ekvationens bifurkationsträd. %parametrar %numsteps - hur många diskreta värden ska intervallet 2-4indelas i. %numinitial - hur många iterationer ska göras innan vi anser att ev. % konvergensegenskaper framkommit. %numcycles - hur många värden plottar vi för varje rho rho=2:2/numsteps:4; %initiera rho x = 0.5*ones(1,numsteps+1); %initiera x %låt x-värdena stabiliseras for i=1:numsteps x = rho.*x.*(1-x); end %initiera en tom matris valuevector=zeros(numsteps+1,numcycles+1); for j=1:numcycles x = rho.*x.*(1-x); %nya x %fyll kolonn i valuevector med de värden som %uppkommer för alla möjliga rho valuevector(:,j) = x ; end %plotta resultatet med små röda punkter. plot(rho,valuevector, r., MarkerSize,2); xlabel( \rho - tillväxtparameter ); ylabel( ); logistic.m function logistic(x0,rho, numiterations, numorderfixpoint, color) %Plottar de logistiska iterationerna %parametrar %x0 - initellt värde för iterationen %rho - tillväxtparameter %numiterations - anger hur många iterationer som ska utföras %numorderfixpoint - om parametern är n, så ritas grafen ut % för fixpunkter av ordning n. %color - anger färg och stil för iterationslinjerna axis([0 1 0 1.5]) x = 0:0.001:1; idx=0:0.5:1; 13
%initera y med den logistiska kurvan y=rho*x.*(1-x); %plotta den. plot(x, y), hold on; c = green ; %Skapa grafen för en fixpunkt av ordning numorderfixpoint for q=2:numorderfixpoint y=rho*y.*(1-y); end if ( numorderfixpoint ~= 0) plot(x,y, c), hold on; end %rita y=x plot(idx,idx); %rita ut iterationslinjerna for i=0:numiterations y_tmp=rho*x0*(1-x0); if ( i == 0 ) line_y=[0 y_tmp]; else line_y=[x0 y_tmp]; end line_x=[x0 x0]; plot(line_x,line_y,color), hold on; line_x=[x0 y_tmp]; line_y=[y_tmp y_tmp]; plot(line_x, line_y, color), hold on; x0=y_tmp; end xlabel( x ); ylabel( ); logistictimeseries.m function logistitimeseries(x0,rho, numiterations,color) %Räknar fram en tidsserie för den logistiska ekvationen %parametrar %x0 - initiellt värde %rho - tillväxt parameter %numiterations - antalet iterationer %color - färg och stil y=zeros(1,numiterations); x=zeros(1,numiterations); y(1)=rho*x0*(1-x0); x(1)=1; 14
for i=2:numiterations y(i)=rho*y(i-1)*(1-y(i-1)); x(i)=i; end plot(x,y, -r ), hold on; xlabel( n - antalet iterationer ); ylabel( ); 15