פרקטל ניוטון

פרקטל ניוטון, רוחב 1.5.
"שש שרשראות" נובה
"מנדלברוט" פרקטל נובה
f(z) {{=}} z<sup>3</sup> − 1}} .
פרקטל ניוטון הוא קבוצת גבול במישור המורכב המאופיין בשיטת ניוטון המיושמת על פולינום קבוע או פונקציה טרנסנדנטלית. זוהי קבוצת ז'וליה של הפונקציה המרומורפית .

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

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

כדי לשרטט תמונות של הפרקטל, אפשר לבחור תחילה מספר מסוים של נקודות מורכבות ולחשב את המקדמים של הפולינום.

: <math>p(z)=z^d+p_1z^{d-1}+\cdots+p_{d-1}z+p_d:=(z-\zeta_1)(z-\zeta_2)\cdots(z-\zeta_d)</math> .

: <math>z_{mn} = z_{00} + m \, \Delta x + in \, \Delta y; \quad m = 0, \ldots, M - 1; \quad n = 0, \ldots, N - 1</math>

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

== הכללה של פרקטלים של ניוטון ==
הכללה של האיטרציה של ניוטון היא:

: <math>z_{n+1}=z_n- a \frac{p(z_n)}{p'(z_n)} </math>

כאשר הוא כל מספר מרוכב<ref></ref> הבחירה המיוחדת מתאימה לפרקטל ניוטון. הנקודות הקבועות של מפה זו יציבות כאשר שוכנת בתוך הדיסקה ברדיוס 1 שבמרכזה 1. כאשר נמצא מחוץ לדיסק זה, הנקודות הקבועות אינן יציבות מקומית, אולם המפה עדיין מציגה מבנה פרקטלי במובן של קבוצת ז'וליה. אם הוא פולינום בדרגה , אזי הרצף מוגבל בתנאי ש- נמצא בתוך דיסק ברדיוס שמרכזו ב-.

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

=== נובה פרקטל ===
פרקטל נובה שהומצא באמצע שנות ה-90 על ידי פול דרבישייר<ref></ref><ref></ref> הוא הכללה של פרקטל ניוטון בתוספת ערך בכל שלב<ref></ref>:

: <math>z_{n+1}=z_n- a \frac{p(z_n)}{p'(z_n)} + c = G(a, c, z)</math>

גרסת "ג'וליה" של פרקטל נובה שומרת על קבוע על פני התמונה ומאתחלת את לקואורדינטות הפיקסלים, גרסת ה"מנדלברוט" של פרקטל נובה מאתחלת לקואורדינטות הפיקסלים ומגדירה את לנקודה קריטית, כאשר<ref></ref>

: <math>\frac{\partial}{\partial z} G(a, c, z) = 0.</math>

פולינומים נפוצים כמו או מובילים לנקודה קריטית ב- .

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

: <math>\begin{align} f(z) &= z^3 - 1 \\ f'(z) &= 3z^2 \end{align}</math>

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

: <math>z = 1,\ -\tfrac12 + \tfrac{\sqrt 3}{2}i,\ -\tfrac12 - \tfrac{\sqrt 3}{2}i</math>

ניתן לתרגם את הפונקציות שהוגדרו לעיל בפסאודו קוד באופן הבא:<syntaxhighlight lang="c">
//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
}
</syntaxhighlight>עכשיו זה רק עניין של יישום שיטת ניוטון באמצעות הפונקציות הנתונות:<syntaxhighlight lang="c">
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
}
</syntaxhighlight>

== ראו גם ==
* קבוצת ז'וליה
* קבוצת מנדלברוט

== קישורים חיצוניים ==

* [http://www.math.sunysb.edu/~scott/ JH Hubbard, D. Schleicher, S. Sutherland] : כיצד למצוא את כל השורשים של פולינומים מורכבים בשיטת ניוטון, Inventiones Mathematicae vol. 146 (2001) - עם דיון במבנה הגלובלי של פרקטלי ניוטון
* [http://citeseer.ist.psu.edu/313081.html על מספר האיטרציות לשיטת ניוטון] מאת דירק שלייכר 21 ביולי 2000
* [https://web.archive.org/web/20140111090233/http://www.math.sunysb.edu/cgi-bin/thesis.pl?thesis06-1 שיטת ניוטון כמערכת דינמית] מאת יוהנס רוקרט
* [https://www.youtube.com/watch?v=-RdOwhmqP5s Newton's Fractal (שניוטון לא ידע עליו כלום)] מאת 3Blue1Brown, יחד עם הדגמה אינטראקטיבית של הפרקטל [https://www.3blue1brown.com/lessons/newtons-fractal באתר שלו], וקוד [https://github.com/3b1b/videos/tree/master/_2021/newton_fractal.py המקור] להדגמה

== הערות שוליים ==

קטגוריה:פרקטלים
קטגוריה:אנליזה נומרית