אנטרופיה של המשוואה הלוגיסטית
Logistic Equation Entropy
הגדרת
האנטרופיה
האנטרופיה
נתונה בביטוי
הבא:
כאשר:
·
Xo – עך
התחילי של
משתנה
שבאמצעותו
מחוללים את
האי-סדר
הכאוטי תוך
יצירה של סדרת
ערכים:
Xo è X 1 , X2… Xm
·
Pm
– הסתברות ש- Xo
ייצור את Xm.
אם ניישם את
הנ"ל עבור
המשוואה
הלוגיסטית (כדוגמא):
אזי יש לחלק
את תחום Xn
לאזורים
שווים ולבדוק
את מספר
הפגיעות המצטבר
באזורים
השונים, וזאת
עבור מספר איטרציות
גדול מאד, כפי
שמתואר סכמתית
באיור הבא:
איור מס' 1:
חישוב
אנטרופיה במערכת
איטרטיבית
ניישם את
איור מס' 1 עבור
משוואה
לוגיסטית כאשר
r=4,
עם ערך התחילי
Xo=0.06,
ומספר
החלוקות שווה
ל- 100.
איור מס' 2:
התפלגות
הפגיעות
וחישוב
האנטרופיה
עבור 100 חלוקות
אם נשנה את
מספר החלוקות
ל- 500 נקבל עליה
בערך האנטרופיה:
איור מס' 2:
התפלגות
הפגיעות
וחישוב
האנטרופיה
עבור 500 חלוקות
להלן קוד
המקור של
התוכנית:
Const r =
4 ' The logistic equation R parameter
Const BinNumber = 500 ' Number of
partition
Dim prob(BinNumber) ' Array which stores number of hits
Const MaxIter = 10000 ' Maximum Iteration number
Private Sub Command1_Click()
deltaX = 1 / BinNumber
'========= Reset =============
probTemp = 0: n = 0: x = 0.06: s = 0
For i = 1 To BinNumber
prob(i) = 0
Next
'========= Store Hits ========
Do While n <= MaxIter
DoEvents
x = r * x * (1 - x)
n = n + 1
prob(Int(x / deltaX)) = prob(Int(x / deltaX)) + 1
'========= Display Hits ======
For ibin = 1 To BinNumber
If n > 500 Then
Line (ibin - 1, prob(ibin))-(ibin, 0), QBColor(ibin Mod 15), BF
Line (ibin - 1, probTemp)-(ibin, prob(ibin)), QBColor(15)
probTemp = prob(ibin)
If prob(ibin) > 0 Then s = s - prob(ibin) / MaxIter * Log(prob(ibin) / MaxIter)
End If
Next
Text1.Text = "Entropy = " + Str$(s)
End Sub
Private Sub Command2_Click()
End
End Sub
Private Sub Form_Load()
Form1.Scale (0, 200)-(BinNumber, -10)
Text2.Text = "Win Coor. = (0, 200)-(" + Str$(BinNumber) + ", -10)"
End Sub
מצב מעניין
מתקבל עבור r=3 (נקודת
התפצלות).
רואים את
ההתפצלות, ז"א
החל מ r גדול מ- 3, האיטרציות
גורמות ל- Xn
להתנדנד בין
שני ערכים.
הציור הבא
מראה הגדלה של
אזור
ההתפצלות –
ז"א תאור המצב
בין אזורי
חלוקה מס' 320 ל- 340.
מספר החלוקות
הכללי 500.
איור מס' 3:
התפלגות
הפגיעות
וחישוב
האנטרופיה
עבור r=3
ומס' חלוקות
שווה ל- 500.
לאחר
שחישבנו את
האנטרופיה
עבור r
נתון, נחשב את
האנטרופיה
עבור כל אחד
מה- r
בתחום שבין 0 ל- 4:
איור מס' 4:
האנטרופיה
עבור 0<=r<=4
ומספר חלוקות
שווה ל- 10000.
Const BinNumber = 10000
Dim prob(BinNumber)
Const MaxIter = 10000
Private Sub Command1_Click()
deltaX = 1 / BinNumber
For r = 0.0001 To 4 Step 4 / 752
'========= Reset =============
probTemp = 0: n = 0: X = 0.001: s = 0
For i = 1 To BinNumber
prob(i) = 0
Next
'========= Display fractal & Store Hits ========
Do While n <= MaxIter
DoEvents
X = r * X * (1 - X)
n = n + 1
If n > MaxIter - 200 Then
Form1.Scale (0, 1)-(4, -0.1)
PSet (r, X), QBColor(13)
End If
prob(Int(X / deltaX)) = prob(Int(X / deltaX)) + 1
'========= Calculate S ======
For ibin = 1 To BinNumber
If n > 500 Then
If prob(ibin) > 0 Then s = s - prob(ibin) / MaxIter * Log(prob(ibin) / MaxIter)
End If
Next
'========= Display S ======
Form1.Scale (0, 10)-(4, -0.1)
Line (Rtemp, Stemp)-(r, s), QBColor(14)
Rtemp = r: Stemp = s
Next
Text1.Text = "Win Coor. (0, 1) - (4, -0.1)"
Text2.Text = "Win Coor. (0, 10) - (4, -0.1)"
End Sub
Private Sub Command2_Click()
End
End Sub
Private Sub Form_Load()
Form1.Scale (0, 6)-(4, -1)
End Sub
![]()