פרקטלי מנדלברוט – ג'וליה

 

שני הפרקטלים הנ"ל מתקבלים באמצעות סוג משוואות, המכונות quadratic recurrence equation:

 

Zn ç    Z^2 + C

 

כאשר Z ו- C מרוכבים (ולצורך חישובים יש לתאר את המרכיבים הממשי והדמיוני  שלהם).

 

כל אחד מהפרקטלים מראה את אוסף הנקודות שאינן בורחות לאין-סוף לאחר מספר גדול מאד של איטרציות.

 

מנדלברוט

 

בכל מחזור חדש של איטרציה:

  1. מונה (Counter) האיטרציות מאופס : I=0
  2. החלק הממשי והדמיוני של Z מאופסים: Zr=Zi=0
  3. הקבוע C מקבל ערך כלשהו: Cr=SomeValue1, Ci=SomeValue2, מתוך סדרה של ערכים.

 

במהלך מחזור:

  1. בודקים את הערך המוחלט AbsZ . אם ערכו גדול מ- 2, אזי Cr ו- Ci (שעבורם אנו בודקים) גורמים בריחה לאין-סןף.
  2. אם לאחר מספר נתון של איטרציות (MaxIter) תנאי 1 אינו מתקבל, אזי Cr ו- Ci מגדירות נקודה במישור המרוכב, שהיא חלק מאוסף נקודות דומות, היוצרות את חבורות מנדלברוט. נקודה זאת נצבעת בצבע כלשהו, כגון שחור.

 

 

For Cr = -2.0 To 0.5 Step SomeStepX

  For Ci = -1.25 To 1.25 Step SomeStepY

    Zr = 0: Zi = 0: I = 0

    Do

        ZrN = Zr * Zr - Zi * Zi + Cr

        ZiN = 2 * Zr * Zi + Ci

        AbsZ = ZrN * ZrN + ZiN * ZiN

        Zr = ZrN: Zi = ZiN

        I = I + 1

    Loop Until I = MaxIter Or AbsZ > 4

    If I = MaxIter Then PSet (Cr, Ci), QBColor(0)

  Next

Next

 

   

ג'וליה

 

בכל מחזור חדש של איטרציה:

  1. מונה (Counter) האיטרציות מאופס : I=0
  2. מגדירים משתנים זמניים (ZrT ו- ZiT) לצורך חישוב האיטרציות.
  3. החלק הממשי והדמיוני של Z מקבלים ערך כלשהו מתוך סדרה של ערכים.
  4. הקבוע C מקבל ערך, הנשמר קבוע.

 

במהלך מחזור:

  1. בודקים את הערך המוחלט של Z(n) (AbsZ) . אם ערכו גדול מ- 2, אזי Zr ו- Zi (שעבורם אנו בודקים) גורמים בריחה לאין-סןף.
  2. אם לאחר מספר נתון של איטרציות (MaxIter) תנאי 1 אינו מתקבל, אזי Zr ו- Zi מגדירות נקודה במישור המרוכב, שהיא חלק מאוסף נקודות דומות, היוצרות את חבורות ג'וליה. נקודה זאת נצבעת בצבע כלשהו, כגון שחור.

 

 

Cr=0.275: Ci=.531

For Zr = -2.0 To 2.0 Step SomeStepX

  For Zi = -2.0 To 2.0 Step SomeStepY

    ZrT = Zr: ZiT = Zi :I = 0

    Do

        ZrN = ZrT * ZrT - ZiT * ZiT + Cr

        ZiN = 2 * ZrT * ZiT + Ci

        AbsZ = ZrN * ZrN + ZiN * ZiN

        ZrT = ZrN: ZiT = ZiN

        I = I + 1

    Loop Until I = MaxIter Or AbsZ > 4

    If I=MaxIter Then PSet (Zr, Zi), QBColor(0)

  Next

Next

 

במידה ונבחר קבוע C אחר, נקבל פרקטל גוליה שונה.

 

 

פרקטלים צבעוניים

 

פרקטל צבעוני מתקבל כאשר משנים את השורה:

 

If I=MaxIter Then PSet (Zr, Zi), QBColor(0)

 

באופן הבא:

 

PSet (Zr, Zi), QBColor(I mod 15)

 

ההתניה (If…) אינה קיימת יותר, והצבעים מייצגים את מספר האיטרציה (לפני הבריחה לאין-סוף, או MaxIter).

הצבעים במחזוריות של 15, ז"א שעבור איטרציה 1 ו- 16 נקבל את אותו הצבע (כחול עמוק).

 

פרקטל צבעוני. כל צבע מייצג את מספר האיטרציה שאליה הגענו. הצבע השחור מייצג את חבורת מנדלברוט, וזאת בגלל ש:- MaxIter=600, ו- 600 mod 15=0.

 

 

 

If i = MaxIter Then PSet (Cr, Ci), QBColor(200 * absZ Mod 15)

 

 

 

 

את פרקטלי ג'וליה ניתן לחלק ל-3 קטגוריות:

 

1.      פרקטל גוליה מכיל אזור מרכזי שחור (כלומר אזור המכיל את חבורת גוליה)

2.      פרקטל גוליה המכיל אזורים צבעוניים המחוברים ביניהם.

3.      פרקל גוליה מכיל הרבה מאד אזורים ללא חיבור בינהם (אבק, Dust).

 

כל אחד מהקטגוריות הנ"ל תלוי בערך של הקבוע C (Cr ו- Ci), וקיים קשר בין צורת הפרקטל לזה של מנדלברוט באופן הבא:

 

1.    אזור מרכזי שחור:
       הקבוע
C נלקח מתוך חבורת מנדלברוט

 

 

2.    אזורים מחוברים בינהם:
       הקבוע
C נלקח מתוך הגבול של פרקטל מנדלברוט

 

3.    אבק.

       הקבוע C אינו שייך לחבורת מנדלברוט

 

Hosted by www.Geocities.ws

1