fbpx
维基百科

牛顿分形

牛顿分形(英語:Newton fractal)是将牛顿法应用于一给定多项式p(Z) ∈ ℂ[Z]超越函数而得到的复平面上的一个边界集。它是由牛顿法所定义的亚纯函数zzp(z)/p′(z)朱利亚集。当不存在吸引循环(阶数大于1)时,它将复平面划分为不同的区域Gk,每个区域与多项式的根ζk相关联,其中k = 1, …, deg(p)。此时牛顿分形类似于曼德博集合,并且与其他分形一样,它将简单的数学描述变成了非常繁复的图像。从数值分析的角度而言,牛顿分形表现出牛顿法在二次收敛区域之外对于初始点的选择非常敏感。

f(z) = z3 − 1的牛顿分形

将复平面上的某一点作为牛顿法迭代zn + 1 := znp(zn)/p'(zn)的初始点z0,可以通过迭代得到一个点序列z1, z2, …,。如果这一序列收敛于根ζk,则将z0划入区域Gk。如此便能将复平面上的这一点与多项式的某一个根相对应。不过值得注意的是,对于二次以上的多项式,都存在一些点会使得牛顿迭代无法收敛到任何根上,例如不同根的吸引域的边界。甚至存在一些多项式,某些开集中的任意初始点都无法收敛到任何根上。一个简单的例子是z3 − 2z + 2,某些点会被吸引到循环0、1、0、1……中,而不被任何根所吸引。

如果以一个开集中的任意点为初始点,迭代最终都收敛于某一根或循环,则该集合是这一牛顿迭代的法图集。一个法图集对应于一个根或循环。所有这些法图集的并集与朱利亚集为互补集。这一朱利亚集即是法图集的共同边界。因此,朱利亚集中的每个点都是每个法图集的一个聚点。正是由于这一性质导致了朱利亚集的分形结构(当多项式的次数大于2时)。

为了绘制一个牛顿分形图像,可以首先选择指定数量d的复点(ζ1, …, ζd)并计算多项式的系数(p1, …, pd)

.

于是,对于复平面上的一个矩形网格

找到每个点(m,n)对应的根ζk(m,n)的编号k(m,n),并通过为每一点分配一个颜色fk(m,n)来填充这一M × N网格。另外,颜色可以取决于距离D(m,n)。对于某一固定的小ε > 0,距离D可以定义为第一个使得|zDζk(m,n)| < ε成立的D值。

牛顿分形的推广 编辑

牛顿迭代的一种推广可表示为

 

其中a是任意复数。[1]a = 1时即对应于牛顿分形。当a位于以1为圆心、半径为1的圆盘以内时,该映射的不动点是稳定的。而当a位于这个圆盘之外时,不动点是局部不稳定的,不过该映射仍能表现出朱利亚集的分形结构。如果pd次多项式,则当是a位于以d为圆心、半径为d的圆盘内时,序列zn有界的。

更一般地,牛顿分形是朱利亚集的一个特例。

新星分形 编辑

新星分形(Nova fractal)是由Paul Derbyshire于1990年代发明的一种分形。[2][3]它也是牛顿分形的一种推广,即在每一步迭代时都增加了一个c值: [4]

 

新星分形的“朱利亚”版本令c为常数,并将像素坐标设为初始值z0。而新星分形的“曼德博”版本则用像素坐标来初始化c,并将z0设置为一临界点,满足[5]

 

例如,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. . [2022-06-05]. (原始内容存档于2022-06-15). 
  2. ^ Damien M. Jones. . [2022-06-05]. (原始内容存档于2018-12-15). 
  3. ^ Damien M. Jones. . [2022-06-05]. (原始内容存档于2017-08-20). 
  4. ^ Michael Condron. . [2022-06-05]. (原始内容存档于2022-03-28). 
  5. ^ Frederik Slijkerman. . [2022-07-08]. (原始内容存档于2022-01-04). 

牛顿分形, 英語, newton, fractal, 是将牛顿法应用于一给定多项式p, 或超越函数而得到的复平面上的一个边界集, 它是由牛顿法所定义的亚纯函数z, 的朱利亚集, 当不存在吸引循环, 阶数大于1, 它将复平面划分为不同的区域gk, 每个区域与多项式的根ζk, 相关联, 其中k, 此时类似于曼德博集合, 并且与其他分形一样, 它将简单的数学描述变成了非常繁复的图像, 从数值分析的角度而言, 表现出牛顿法在二次收敛区域之外对于初始点的选择非常敏感, 的将复平面上的某一点作为牛顿法迭代zn, 的初始点z0,. 牛顿分形 英語 Newton fractal 是将牛顿法应用于一给定多项式p Z ℂ Z 或超越函数而得到的复平面上的一个边界集 它是由牛顿法所定义的亚纯函数z z p z p z 的朱利亚集 当不存在吸引循环 阶数大于1 时 它将复平面划分为不同的区域Gk 每个区域与多项式的根zk 相关联 其中k 1 deg p 此时牛顿分形类似于曼德博集合 并且与其他分形一样 它将简单的数学描述变成了非常繁复的图像 从数值分析的角度而言 牛顿分形表现出牛顿法在二次收敛区域之外对于初始点的选择非常敏感 f z z3 1 的牛顿分形将复平面上的某一点作为牛顿法迭代zn 1 zn p zn p zn 的初始点z0 可以通过迭代得到一个点序列z1 z2 如果这一序列收敛于根zk 则将z0 划入区域Gk 如此便能将复平面上的这一点与多项式的某一个根相对应 不过值得注意的是 对于二次以上的多项式 都存在一些点会使得牛顿迭代无法收敛到任何根上 例如不同根的吸引域的边界 甚至存在一些多项式 某些开集中的任意初始点都无法收敛到任何根上 一个简单的例子是z3 2z 2 某些点会被吸引到循环0 1 0 1 中 而不被任何根所吸引 如果以一个开集中的任意点为初始点 迭代最终都收敛于某一根或循环 则该集合是这一牛顿迭代的法图集 一个法图集对应于一个根或循环 所有这些法图集的并集与朱利亚集为互补集 这一朱利亚集即是法图集的共同边界 因此 朱利亚集中的每个点都是每个法图集的一个聚点 正是由于这一性质导致了朱利亚集的分形结构 当多项式的次数大于2时 为了绘制一个牛顿分形图像 可以首先选择指定数量d 的复点 z1 zd 并计算多项式的系数 p1 pd p z z d p 1 z d 1 p d 1 z p d z z 1 z z 2 z z d displaystyle p z z d p 1 z d 1 cdots p d 1 z p d z zeta 1 z zeta 2 cdots z zeta d 于是 对于复平面上的一个矩形网格 z m n z 00 m D x i n D y m 0 M 1 n 0 N 1 displaystyle z mn z 00 m Delta x in Delta y quad m 0 ldots M 1 quad n 0 ldots N 1 找到每个点 m n 对应的根zk m n 的编号k m n 并通过为每一点分配一个颜色fk m n 来填充这一M N 网格 另外 颜色可以取决于距离D m n 对于某一固定的小e gt 0 距离D 可以定义为第一个使得 zD zk m n lt e 成立的D 值 目录 1 牛顿分形的推广 1 1 新星分形 2 实现 3 参考文献牛顿分形的推广 编辑牛顿迭代的一种推广可表示为 z n 1 z n a p z n p z n displaystyle z n 1 z n a frac p z n p z n nbsp 其中a 是任意复数 1 当a 1 时即对应于牛顿分形 当a 位于以1为圆心 半径为1的圆盘以内时 该映射的不动点是稳定的 而当a 位于这个圆盘之外时 不动点是局部不稳定的 不过该映射仍能表现出朱利亚集的分形结构 如果p 是d 次多项式 则当是a 位于以d 为圆心 半径为d 的圆盘内时 序列zn 是有界的 更一般地 牛顿分形是朱利亚集的一个特例 nbsp p z z3 1 的牛顿分形 颜色表示需要的迭代步数 nbsp p z z3 1 的牛顿分形 颜色表示最终收敛到的根 nbsp p z z3 2z 2 的牛顿分形 红色区域中的点不收敛到任何根 nbsp 一个7次多项式的牛顿分形 颜色表示最终收敛到的根 深浅表示收敛速度 nbsp p z z8 15z4 16 的牛顿分形 nbsp p z z5 3iz3 5 2i z2 3z 1 的牛顿分形 颜色表示最终收敛到的根 深浅表示迭代步数 nbsp p z sin z 的牛顿分形 颜色表示最终收敛到的根 深浅表示迭代步数 nbsp p z sin z 的牛顿分形 nbsp p z z3 1 的广义牛顿分形 a 1 2 nbsp p z z2 1 的广义牛顿分形 a 1 i nbsp p z z3 1 的广义牛顿分形 a 2 nbsp p z z4 3i 1 的广义牛顿分形 a 2 1 nbsp p z z6 z3 1 的牛顿分形 nbsp p z sin z 1 的牛顿分形 nbsp p z cosh z 1 的牛顿分形新星分形 编辑 新星分形 Nova fractal 是由Paul Derbyshire于1990年代发明的一种分形 2 3 它也是牛顿分形的一种推广 即在每一步迭代时都增加了一个c 值 4 z n 1 z n a p z n p z n c G a c z displaystyle z n 1 z n a frac p z n p z n c G a c z nbsp 新星分形的 朱利亚 版本令c 为常数 并将像素坐标设为初始值z0 而新星分形的 曼德博 版本则用像素坐标来初始化c 并将z0 设置为一临界点 满足 5 z G a c z 0 displaystyle frac partial partial z G a c z 0 nbsp 例如 p z z 1 3 的临界点位于z 1 处 实现 编辑为了用计算机实现牛顿分形 需要有一个起始函数及其导函数 f z z 3 1 f z 3 z 2 displaystyle begin aligned f z amp z 3 1 f z amp 3z 2 end aligned nbsp 该函数的三个根是 z 1 1 2 3 2 i 1 2 3 2 i displaystyle z 1 tfrac 1 2 tfrac sqrt 3 2 i tfrac 1 2 tfrac sqrt 3 2 i nbsp 该函数可以以伪代码表示如下 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 lt 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 lt 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 lt tolerance amp amp abs difference y lt tolerance return colors i Return the color corresponding to the root return black If no solution is found 参考文献 编辑 Simon Tatham Fractals derived from Newton Raphson 2022 06 05 原始内容存档于2022 06 15 Damien M Jones class Standard NovaMandel Ultra Fractal formula reference 2022 06 05 原始内容存档于2018 12 15 Damien M Jones dmj s nova fractals 1995 6 2022 06 05 原始内容存档于2017 08 20 Michael Condron Relaxed Newton s Method and the Nova Fractal 2022 06 05 原始内容存档于2022 03 28 Frederik Slijkerman Ultra Fractal Manual Nova Julia Mandelbrot 2022 07 08 原始内容存档于2022 01 04 取自 https zh wikipedia org w index php title 牛顿分形 amp oldid 78788893, 维基百科,wiki,书籍,书籍,图书馆,

文章

,阅读,下载,免费,免费下载,mp3,视频,mp4,3gp, jpg,jpeg,gif,png,图片,音乐,歌曲,电影,书籍,游戏,游戏。