Period Three Implies Chaos

Merhaba arkadaşlar,

Geçen gün bir sohbet arasında matematikten biraz uzaklaştığımı farkettim yoğun geçen bu dönemde.O yüzden matematik üzerine bir yazı yazmak istedim.Daha önce de bir hocamla üzerinde konuştuğumuz bir konuydu, aklıma gelince ufakta olsa birşeyler yazmış olayım.

Olaylar nasıl gelişti, big bang sonrasında genişleyen evren, soğuyan gezegenler vs. :)
İlk olay aslında bir hocamın bana gönderdiği şu ufak görüntü ile başladı.Bir süre önce üzerine biraz konuşmuştuk, şimdi de bir blog yazmaya karar verdim bu konu ile ilgili.

P3 Implies Chaos

Tanım olarak şurayı inceleyebilirsiniz: https://www.jstor.org/stable/2318254?seq=1#fndtn-page_scan_tab_contents

Yazının giriş kısmından da anlayabileceğiniz üzere bir önce ki sonuçtan bir sonraki sonucu tahmin etme(hesaplama) üzerine kurulmuş bir teori.Bu teorinin problem olarak nitelendirilmesinin sebebi 3.0'dan biraz sonrasında ortaya çıkan kaos.Problemi grafikselleştirdikten sonra aşağıda da bunu göreceksiniz zaten.Bu yazı da böcek popülasyonu ve bir okulda ki öğrencilerin bir önceki yıla göre hastalıklara yakalanabilme olasılığı örnek olarak verilmiş.Teoriyi ilginçleştiren konu ise bir süre boyunca sayıların birbirine yakın kalması fakat bir yerden sonra çok fazla fark açılması.Yeni ortaya çıkan değerlerin çok daha eski değerlere yaklaşıyor olması.Daha da dikkat çekici olan noktası ise 29.999 değerin içinden hiçbir değerin bir önceki ile aynı olmuyor oluşu.Belki de ben yanlış çözüyorumdur :)

Matematiksel değişkenlere bakacak olursak;

  • X(n+1) = r * x(n) [1 - x(n)]
  • 0 < x(n) < 1
  • 1 < r < 4

Şimdi de birkaç satır kod yazalım;

import random
import matplotlib.pyplot as plt

x0 = random.uniform(0,1) r = 1.0001

r_list = [] xn_list = []

Öncelikle kullanacağımız modülleri dahil edip değişkenleri tanımlıyoruz.x0'a 1 ve 0 arasında rastgele bir değere atıyoruz. r değişkenini, bu değişkenin değerlerini saklamak için r_list'i ve sonuçları saklamak içinde xn_list'i tanımlıyoruz.r değerini küçülterek daha hassas değerlere de ulaşabilirsiniz.

while r < 4:
    x1 = r * x0 * (1 - x0)
    xn_list.append(x1)
    r_list.append(r)
    r += 0.0001
    x0 = x1

Her çıkan Xn+1 değerini xn_list'e, ve devam eden her r değerini de r_list'e ekliyoruz.En son da bir önceki değeri yeni çıkan değere eşitleyerek devam ediyoruz.

Bunu grafiğe dökecek olursak

plt.scatter(r_list, xn_list)
plt.grid(True)
plt.title("Period Three Implies Chaos")
plt.show()
Şu şekilde bir çıktı elde ediyoruz;

Period Three Implies Chaos Daha büyük boyutta görmek için tıklayın

Aynı değerlerin tekrar kullanılıp kullanılmadığını kontrol etmek için;

import collections
print [item for item, count in collections.Counter(xn_list).items() if count > 1]

Umarım yanılmamışımdır, umarım faydalı olmuştur :)
İyi çalışmalar..


Tags: python, period three implies chaos, math, chaos, matplotlib