Демонстрация динамики роста популяции. Следующая формула описывает динамику развития популяции: f(x) = аx – ах2 Простейшая модель — это пропорциональное соотношение численности с прошлым годом. Допустим в прошлом году у нас было x животных. В этом году их должно быть rx животных. Но это не выполняется в реальных условиях. Лучшее соответствие с реальностью получится если добавить фактор, зависящий от того какой потенциал существует у популяции для дальнейшего развития, и пусть x — коэффициент полноты, который меняется от 0 до 1. Потом добавляется фактор 1 – x, так что территория почти полностью заполнена, популяция не возрастет выше верхнего предела. Отображение на экране строится, путем циклического выполнения формулы. uses Graph; var Driv,Mode:integer; I,J:integer; R,X:extended; Row: array [0..800] of word; const K=1.1/600; X0=0.3; procedure GenPal; {определение палитры} var i,c:byte; begin for i:=1 to 255 do begin c:=10+Round( (63-10)/255*i ); SetRGBPalette(i,c,c,c); end; end; begin Driv := InstallUserDriver('SVGA256',nil); {инициализация графики} Mode:=3; {800x600x256} InitGraph(Driv,Mode,''); GenPal; for J:=0 to 600 do begin FillChar(Row,SizeOf(Row),0); R:=2.9+J*K; X:=X0; for I:=1 to 200 do X:=X*R*(1-X); {реализация формулы} for I:=1 to 10000 do begin X:=X*R*(1-X); inc( Row[Round(X*800)] ); end; for I:=0 to 800 do PutPixel(I,J,Round(Row[I]/100*255) ) {прорисовка} end; Readln; CloseGraph; end.
Ключевые слова:
Дерево Фейгенбаума
|
|||||||