Translate

środa, 13 lutego 2013

45. Logarytm chaotyczny. Sortowanie

    Poprzednio pokazałem, że szereg logarytmiczny dany wzorem 1 zachowuje się chaotycznie dla szeregu wartości zmiennej c :

    Wartości x wypełniają obszar pomiędzy xmin oraz xmax w sposób przypadkowy. Interesowało mnie uporządkowanie tych wartości od największej do najmniejszej. W tym celu do algorytmu generującego szereg chaotyczny dołożyłem prosty algorytm porządkujący (sortujący). Poniżej przedstawiam tekst odpowiedniego programu, który napisałem w języku QBASIC:


'Sortowanie x dla kwadratu funkcji logarytmicznej
'LOG2.BAS
CLS:
x = .7

llos = 10000  'liczba iteracji
DIM wektor(llos)

c = 1.2       'dla c=1.2 min=1.15E-9, max=507.92
OPEN "dywek.txt" FOR APPEND AS #1

FOR i = 1 TO llos
  x = c * LOG(x) ^ 2  'funkcja logarytmiczna
  wektor(i) = x
NEXT i

'sortowanie
FOR j = 1 TO llos - 1
    FOR i = 1 TO llos - 1
      IF wektor(i) > wektor(i + 1) THEN
       tymcz = wektor(i)
       wektor(i) = wektor(i + 1)
       wektor(i + 1) = tymcz
      END IF
    NEXT
NEXT

'zapisywanie danych do pliku tekstowego
FOR i = 1 TO llos
 PRINT #1, wektor(i)
NEXT i
CLOSE #1


    Program generuje plik dywek.txt, w którym zapisane są wartości szeregu od największej do najmniejszej. Wartość największa ma numer 1, a najmniejsza 10000. Rezultat przedstawiłem na poniższym wykresie:




    Otrzymałem wykres funkcji malejącej. Własności tej funkcji nie są dla mnie jasne, ale być może mają jakiś związek z gęstością elektronową. 

Brak komentarzy :

Prześlij komentarz