Pokazywanie postów oznaczonych etykietą chaos. Pokaż wszystkie posty
Pokazywanie postów oznaczonych etykietą chaos. Pokaż wszystkie posty

niedziela, 5 stycznia 2020

Dywan i kartka Sierpińskiego (gry w chaos)



Napisałem program w Small Basicu, który generuje dywan Sierpińskiego. Procedura jest prosta. Ustala się położenie ośmiu punktów, cztery w narożach kwadratu i jeszcze cztery w połowie długości boków kwadratu. Potem wybiera się dowolny punkt i losuje jesten z ustalonych punktów. W następnym kroku ustala się punkt leżący w połowie odległości pomiędzy punktem wybranym a wylosowanym. Procedurę się powtarza. W wyniku powtórzenia jae bardzo dużą liczbę razy, otrzymuje się rysunek jak poniżej (Program 1):

Dywan Sierpińskiego otrzymany z gry w chaos

Jeśli losuje się dowolne punkty na osi x i y, to otrzymuje się coś, co nazwałem kartką Sierpińskiego. Stopień wypełnienia kartki zależy od liczby iteracji:


Teksty programów, które realizują opisane algorytmy:


'Program 1. Dywan  Sierpińskiego utworzony z za pomocą gry w chaos
trans_x=500  'umiejscowienie punktu (0,0) na ekranie
trans_y=400
scale= 100    'skala rysowania 100 dla a=0.69
xw[1] = 1     'wierzchołki i punkty na bokach kwadratu
yw[1] = 1
xw[2] = 1
yw[2] =-1
xw[3] =-1
yw[3] =-1
xw[4] =-1
yw[4] = 1
xw[5] = 1
yw[5] = 0
xw[6] = 0
yw[6] =-1
xw[7] =-1
yw[7] = 0
xw[8] = 0
yw[8] = 1
x=0.1
y=0.1
a = 0.69 'dla 0.69 mamy okno Sierpińskiego i skali 100
GraphicsWindow.Width=1000
GraphicsWindow.Height=800
For i = 1 To 4000000
  rog = math.GetRandomNumber(8) 'losowanie numeru punktu kwadratu

   x = x - (x - xw[rog]) / a
   y = y - (y - yw[rog]) / a

  x_screen=x*scale +trans_x
  y_screen=y*scale +trans_y
  GraphicsWindow.SetPixel(x_screen, y_screen, "blue")
  GraphicsWindow.DrawEllipse(trans_x,trans_y, 1, 1)
Endfor
GraphicsWindow.DrawBoundText(10,400,200, "Koniec obliczeń")

'Program 2.Kartka  Sierpińskiego
'Utworzona z wykorzystaniem losowania punktów na osiach
trans_x=400  'umiejscowienie na ekranie
trans_y=300
scale=200    'skala rysowania 100 dla a=0.69
x=0.1
y=0.1
a = 1
GraphicsWindow.Width=1000
GraphicsWindow.Height=800
For i = 1 To 100000
  xlos = (math.GetRandomNumber(10001)-1)/10000 'losowanie punktu na osi x
  ylos = (math.GetRandomNumber(10001)-1)/10000 'losowanie punktu na osi y
   x = x - (x - xlos) / a
   y = y - (y - ylos) / a

  x_screen=x*scale +trans_x
  y_screen=y*scale +trans_y
  GraphicsWindow.SetPixel(x_screen, y_screen, "blue")
  GraphicsWindow.DrawEllipse(trans_x,trans_y, 1, 1)
Endfor
GraphicsWindow.DrawBoundText(10,400,200, "Koniec obliczeń")





czwartek, 26 września 2013

Trudności z gęstościami chaotycznymi

    Pokazałem, że gęstość elektronową stanu podstawowego atomu wodoru można przedstawić, jako proces chaotyczny.  Oczywiście poszedłem dalej i spróbowałem zrobić to samo dla pierwszego stanu wzbudzonego atomu wodoru. Nic z tego, ścisła funkcja gęstości zachowuje się atraktorowo, a chwytu z jej odwróceniem nie można zrobić. Krzywa odwrotna nie jest funkcją. Zadwozdka.

poniedziałek, 8 października 2012

Chaos u podstaw

    Zastanawiam się, jak by wyglądała mechanika kwantowa i cała związana z nią filozofia, gdyby okazało się, że u podstawy tej gałęzi nauki leży chaos. Myślę o chaosie deterministycznym a nie biblijnym. Chaos deterministyczny ma to do siebie, że jest lokalny. Gdyby zachowanie chaotyczne było fundamentem zjawisk atomowych, to wątpliwości Einsteina, co do  występowania nielokalności zjawisk kwantowych, miałyby uzasadnienie. Należałoby przeinterpretować wszystkie współczesne doświadczenia, dowodzące, że nielokalność jednak istnieje. Mogłoby się również okazać, że w jednych zjawiskach nielokalność istnieje w innych dominuje lokalność. Być może wreszcie, obie możliwości są komplementarne, na co zgodzić by się mogli nawet zwolennicy ortodoksji kopenhaskiej. Chaos ma jeszcze jedną zaletę - jest ściśle kwantowy. Liczby generowane przez szeregi chaotyczne, pojawiają się to tu, to tam, w sposób przypadkowy i "wypełniają" w określony sposób przestrzeń funkcji "matki", która je generuje. W naturalny sposób powstają ciągli liczb (zasadniczo skończone ciągi), z których być może będzie dało się policzyć jakieś własności układu kwantowego. To, że te ciągi zawierają konkretne liczby i w skończonej ilości, powoduje, że w miejsce całek pojawią się zwykłe sumy i proste wartości średnie. Całkowanie byłoby więc idealizacją procesów sumowania. Pociągająca perspektywa.  
    Dodatkowo, gdyby chaos okazał się możliwą do zaakceptowania podstawą mechaniki kwantowej, obecne całościowe rozwiązania wynikające z faktu, że równanie Schrödingera jest równaniem falowym, należałoby zastąpić spojrzeniem lokalnym, w których atomy tworzą się w miarę rozwoju chaosu i stabilizują się wtedy, gdy chaos uzyskuje postać stabilną w sensie ustabilizowania się dystrybucji (rozkładu) zmiennej chaotycznej. Oznacza to, że należałoby inaczej spojrzeć na stan stacjonarny w atomach. Obecnie jest on jasny matematycznie i trudny do wyobrażenia. Z jednej strony sądzimy, że elektron się porusza a z drugiej  akceptujemy jego matematyczny bezruch. Frustrująca sytuacja.
    Czy powyższe rozważania są mrzonką, czy mają naukową podstawę pokaże czas.

(merge 04.2013)
Prosty program, który kiedyś tam napisałem w języku BASIC, pokazuje zachowanie się funkcji logistycznej


z zastosowaniem obrazowania w postaci mapy powrotnej (return map). Proces powstawania kolejnych punktów o charakterze atraktorów, rozwidlania punktów (bifurkacji) i wreszcie odtworzenia paraboli, czyli chaosu, pokazuje filmik, który nakręciłem podczas działania programu.

Napisałem prosty programik w języku "SmallBasic", który rysuje zależność zachowania się szeregu
w zależności od wartości stałej c. Innymi słowy na osi odciętych są odłożone wartości c w przedziale od 0.9 do 4.0, a na osi rzędnych wartości x, obliczane 500 razy pod rząd. Wykres, który powstaje można zobaczyć za pomocą programu, działającego on-line (http://smallbasic.com/smallbasic.com/program/?DCJ438): (Obejrzenie tego procesu wymaga zainstalowania Silverlight Microsoftu i IE. co za postęp w utrudnianiu!)

Kilka lat temu skopiowałem skądś funkcję trygonometryczną, która w zależności od parametru a zachowuje się atraktorowo bądź chaotycznie. Poniżej zamieściłem link do strony, na której jest tekst tego programu http://smallbasic.com/program/?ZHK128. Poprzednio umieściłem okno linku tutaj, ale szybkość działania tego programu online była niezadowalająca, więc odsyłam do linku.

 Przedstawiam kolejny programik, napisany w języku Small Basic, który pokazuje zachowanie się funkcji sinus (listing programu: http://smallbasic.com/program/?CHN019) w zależności od parametru. Poniżej jest tekst tego programu, a pod linkiem można obejrzeć zachowanie się chaosu.

'interesting chaos
'Author Wojciech Szczepankiewicz
'Silesian University of Technology, Gliwice, Poland
GraphicsWindow.BackgroundColor = "Black"
x = .1
scale = 350

For a = .01 To .6 Step .01
  For i = 1 To 1500
    y = a * math.SIN(1 / x)
    GraphicsWindow.SetPixel(x * scale + 300, 220 - y * scale, "LightGreen")
    x=y
  EndFor
  GraphicsWindow.Clear()
EndFor
GraphicsWindow.DrawText(10,10,"End of calculation")

Ostatnio piszę o chaotycznej gęstości elektronowej stanu podstawowego atomu wodoru. Nazwałem ją CEDE (od ang. skrótu Chaotic Electron DEnsity). Starając się zachować metodę naukową omal nie zapomniałem o jej aspekcie dydaktycznym. Dlatego poniżej zamieszczam obraz chmury elektronowej obrazujący działanie chaosu. Obraz ten nie odbiega (bo nie może) wyglądem od typowych przedstawień dla gęstości typu Q (Quantum). Jest jednak pewna różnica. Gęstość powstała z funkcji porządnych jest tylko przybliżeniem, swego rodzaju dyskretyzacją funkcji ciągłej. Tutaj mamy skończony zbiór punktów. To ciągłość funkcji typu Q jest matematyczną idealizacją tego, co przedstawia CEDE.