פרקטל ניוטון

מתוך ויקיפדיה, האנציקלופדיה החופשית
פרקטל ניוטון, רוחב 1.5.
"שש שרשראות" נובה
"מנדלברוט" פרקטל נובה
ג'וליה קבעה את הפונקציה הרציונלית הקשורה לשיטת ניוטון עבור f(z) = z3 − 1 .

פרקטל ניוטון הוא קבוצת גבול במישור המורכב המאופיין בשיטת ניוטון המיושמת על פולינום קבוע p(Z) ∈ ℂ[Z] או פונקציה טרנסנדנטלית. זוהי קבוצת ז'וליה של הפונקציה המרומורפית zzp(z).

כמעט כל הנקודות של המישור המורכב משויכות לאחד משורשי deg(p) של פולינום נתון באופן הבא: הנקודה משמשת כערך התחלתי z0 עבור איטרציה של ניוטון zn + 1 := znp(zn)

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

כדי לשרטט תמונות של הפרקטל, אפשר לבחור תחילה מספר d מסוים של נקודות מורכבות (ζ1, …, ζd) ולחשב את המקדמים (p1, …, pd) של הפולינום.

.

על הנקודות ב- , מוצאים את האינדקס k(m,n) של השורש המקביל ζk(m,n) ומשתמשים בזה כדי למלא רשת רסטר M × N על ידי הקצאת לכל נקודה (m,n) צבע fk(m,n). בנוסף או לחלופין הצבעים עשויים להיות תלויים במרחק D(m,n), המוגדר כערך הראשון D כך ש- zDζk(m,n) < ε עבור כמה ε > 0.

הכללה של פרקטלים של ניוטון[עריכת קוד מקור | עריכה]

הכללה של האיטרציה של ניוטון היא:

כאשר a הוא כל מספר מרוכב[1] הבחירה המיוחדת a = 1 מתאימה לפרקטל ניוטון. הנקודות הקבועות של מפה זו יציבות כאשר a שוכנת בתוך הדיסקה ברדיוס 1 שבמרכזה 1. כאשר a נמצא מחוץ לדיסק זה, הנקודות הקבועות אינן יציבות מקומית, אולם המפה עדיין מציגה מבנה פרקטלי במובן של קבוצת ז'וליה. אם p הוא פולינום בדרגה d, אזי הרצף zn מוגבל בתנאי ש-a נמצא בתוך דיסק ברדיוס d שמרכזו ב-d.

באופן כללי יותר, הפרקטל של ניוטון הוא מקרה מיוחד של קבוצת ג'וליה.

נובה פרקטל[עריכת קוד מקור | עריכה]

פרקטל נובה שהומצא באמצע שנות ה-90 על ידי פול דרבישייר[2][3] הוא הכללה של פרקטל ניוטון בתוספת ערך c בכל שלב[4]:

גרסת "ג'וליה" של פרקטל נובה שומרת על c קבוע על פני התמונה ומאתחלת את z0 לקואורדינטות הפיקסלים, גרסת ה"מנדלברוט" של פרקטל נובה מאתחלת c לקואורדינטות הפיקסלים ומגדירה את z0 לנקודה קריטית, כאשר[5]

פולינומים נפוצים כמו p(z) = z3 − 1 או p(z) = (z − 1)3 מובילים לנקודה קריטית ב- z = 1.

יישום[עריכת קוד מקור | עריכה]

כדי ליישם את פרקטל ניוטון, יש צורך בפונקציית התחלה וכן פונקציית הנגזרת שלה:

שלושת השורשים של הפונקציה הם:

ניתן לתרגם את הפונקציות שהוגדרו לעיל בפסאודו קוד באופן הבא:

//z^3-1
float2 Function (float2 z)
{
	return cpow(z, 3) - float2(1, 0); //cpow is an exponential function for complex numbers
}

//3*z^2
float2 Derivative (float2 z)
{
	return 3 * cmul(z, z); //cmul is a function that handles multiplication of complex numbers
}

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

float2 roots[3] = //Roots (solutions) of the polynomial
{
	float2(1, 0),
	float2(-.5, sqrt(3)/2),
	float2(-.5, -sqrt(3)/2)
};
	
color colors[3] =  //Assign a color for each root
{
    red,
    green,
    blue
}

For each pixel (x, y) on the target, do:
{
	zx = scaled x coordinate of pixel (scaled to lie in the Mandelbrot X scale (-2.5, 1))
    zy = scaled y coordinate of pixel (scaled to lie in the Mandelbrot Y scale (-2, 1))

    float2 z = float2(zx, zy); //z is originally set to the pixel coordinates

	for (int iteration = 0;
	     iteration < maxIteration;
	     iteration++;)
	{
		z -= cdiv(Function(z), Derivative(z)); //cdiv is a function for dividing complex numbers

        float tolerance = 0.000001;

		for (int i = 0; i < roots.Length; i++)
		{
		    float2 difference = z - roots[i];
		
			//If the current iteration is close enough to a root, color the pixel.
			if (abs(difference.x) < tolerance && abs (difference.y) < tolerance)
			{
				return colors[i]; //Return the color corresponding to the root
			}
		}
		
    }

    return black; //If no solution is found
}

ראו גם[עריכת קוד מקור | עריכה]

קישורים חיצוניים[עריכת קוד מקור | עריכה]

ויקישיתוף מדיה וקבצים בנושא פרקטל ניוטון בוויקישיתוף

הערות שוליים[עריכת קוד מקור | עריכה]

  1. ^ Simon Tatham. "Fractals derived from Newton–Raphson".
  2. ^ Damien M. Jones. "class Standard_NovaMandel (Ultra Fractal formula reference)".
  3. ^ Damien M. Jones. "dmj's nova fractals 1995-6".
  4. ^ Michael Condron. "Relaxed Newton's Method and the Nova Fractal".
  5. ^ Frederik Slijkerman. "Ultra Fractal Manual: Nova (Julia, Mandelbrot)".