CurvG
登录

第 7 个 · 复数 · 方程

用牛顿法解 z³ = 1,为什么会画出分形?

牛顿法沿着切线一步步逼近方程的根。把复平面上每个点都当作起点,按它最后到达哪个根上色:z² = 1 的两块地盘以一条直线为界,z³ = 1 的三块地盘之间却是无穷无尽的花边。拖动根,看边界怎么变。

为什么?

讲解

在导数为 0 的地方附近,切线几乎是平的,一步就能把起点甩到任何地方,所以相邻的起点会奔向不同的根。结果是:边界上任何一点,三种颜色都同时紧挨着它,放大多少倍都一样。

01沿切线逼近根

想解 f(x)=0f(x)=0,先猜一个 x0x_0,在曲线上这一点画切线,切线和横轴的交点就是更好的猜测:

xn+1=xn−f(xn)f′(xn)x_{n+1}=x_n-\frac{f(x_n)}{f'(x_n)}

求 2\sqrt2 就是解 x2−2=0x^2-2=0。从 x0=1x_0=1 出发:1.51.5、1.416671.41667、1.41421571.4142157、1.414213562374691.41421356237469,正确的小数位依次是 1、2、5、11。靠近根以后,误差每步大约平方一次,位数翻倍,这叫二次收敛。

02搬到复平面

同一个公式对复数也成立,只是"切线"变成了复导数。对 p(z)=(z−r1)(z−r2)⋯(z−rn)p(z)=(z-r_1)(z-r_2)\cdots(z-r_n),一步牛顿法可以只用根来写:

z  →  z−11z−r1+⋯+1z−rnz\;\to\;z-\frac{1}{\dfrac{1}{z-r_1}+\cdots+\dfrac{1}{z-r_n}}

画板就是这样算的,所以你可以直接拖动根。

对 z2−1z^2-1,到 ±1\pm1 距离相等的点构成虚轴,虚轴两边的起点各自奔向近的那个根,边界是一条直线,凯莱 1879 年证明了这一点。对 z3−1z^3-1 他写道,这个情形"似乎相当困难"。

03为什么边界是分形

对 z3−1z^3-1,牛顿一步是 z→2z3+13z2z\to\dfrac{2z^3+1}{3z^2}。在 z=0z=0 处导数为 0,切线是平的,这一步除以 0;0 附近的点一步就被甩到很远。

实轴上的点 −2−1/3≈−0.7937-2^{-1/3}\approx-0.7937 第一步正好到 0。它的邻居第一步落在 0 的四周,再一步就去向四面八方,所以它周围三种颜色都有。而落到这类点上的点又有无数个,每一个周围都是同样的情形:花瓣上又有花瓣。

复动力系统里有一条定理:对这样的映射,每一块地盘的边界都是同一个集合(茱莉亚集)。所以边界上任何一点同时挨着三块地盘,叫"三盆性质",和拓扑学里的"瓦达湖"是同一种怪现象。

04牛顿法什么时候会失败

对 p(z)=z3−2z+2p(z)=z^3-2z+2,一步牛顿法把 0 送到 1,又把 1 送回 0:

0→1→0→1→⋯0\to1\to0\to1\to\cdots

而且 p′′(0)=0p''(0)=0,这个循环会把附近的点吸过来,所以 0 和 1 周围各有一整片起点永远到不了根,画板上是黑色。实际计算里,解方程的程序会检查是否收敛,不收敛就换一个起点。

常见问题

颜色的深浅表示什么?

颜色表示最后到达哪个根,亮度表示用了几步:步数越多越亮,根附近一两步就到,所以最暗。一圈圈的环是步数相同的起点。白色的细线是边界:同一个像素里的几个起点去了不同的根。

为什么放大到一定程度画面会变糊?

画板在显卡上用单精度浮点数计算,大约 7 位有效数字,所以最多放大到视野宽 0.0002。分形本身是无限细的,用更高精度就能一直放大下去。

这和曼德博集合有关系吗?

有。两者都是复平面上反复迭代一个函数得到的图形,属于复动力系统。数学家研究三次方程的牛顿法时发现:让方程的系数变化,按牛顿法在哪些系数下会失败来上色,会出现曼德博集合的小复制品。

课本里的这部分

相关曲线

资料: Newton fractal — Wikipedia · Newton’s method — Wikipedia · Lakes of Wada — Wikipedia