个人技术分享

在这里插入图片描述

一、说明

我们在前面的文章中,叙述了莫比乌斯变换的复数分析,以及种种几何属性,本篇中叙述如何程序地实现:复平面上的圆在莫比乌斯变换下的图像是另一个圆。为了使这一点始终成立,您必须将一条线作为圆的特例,如果您愿意,可以是无限半径的圆。

二、python实现复平面的莫比乌斯变换

这篇文章将用 Python 代码和图表来说明这些陈述。首先,一些在复平面上绘制圆和其他曲线的代码。

 from numpy import exp, pi, linspace
    import matplotlib.pyplot as plt
    θ = linspace(0, 2*pi, 200)
    def circle(radius, center):
        return center + radius*exp(1j*θ)
    def plot_curves(curves):
        for c in curves:
            plt.plot(c.real, c.imag)
        plt.show()
        plt.close()

接下来,编写莫比乌斯变换的代码,以及我们将在绘图中使用的特定莫比乌斯变换。

def mobius(z, a, b, c, d):
        return (a*z + b)/(c*z + d)

def m(curve):
        return mobius(curve, 1, 2, 3, 4)

现在我们将绘制三个圆及其在莫比乌斯变换下的图像

m ( z ) = ( z + 2 ) / ( 3 z + 4 ) m ( z ) = ( z + 2)/(3 z + 4) m(z)=(z+2)/(3z+4)

使用以下代码。

    circles = [circle(1, 0), circle(2, 0), circle(2, 2)]
    plot_curves(circles)
    plot_curves([m(c) for c in circles])

这会产生
在这里插入图片描述
和
在这里插入图片描述

请注意,第一个蓝色圆圈最初是最小的圆圈,并包含在第二个橙色圆圈内。但在图像中,蓝色圆圈变得最大,并且不再位于橙色圆圈内。这是因为我们的莫比乌斯变换在 -4/3 处有一个奇点,并且围绕该点事情会发生翻天覆地的变化。

三、线的变换

接下来我们将看一个线与线之间映射的示例。

   line = linspace(-100, 100, 600)
   curves = [line, 1j*line - 4/3]
   plot_curves(curves)
   plot_curves([m(c) for c in curves])

这会产生
在这里插入图片描述
和
在这里插入图片描述

这些线被映射到线,因为它们都穿过 -4/3 处的奇点。蓝色的实轴映射到其自身。 -4/3 + iy行被移至实部 1/3。

最后,让我们看一下映射到圆的直线。由于莫比乌斯变换的逆变换是另一种莫比乌斯变换,因此该示例还表明圆可以映射到直线。

    lines = [1j*line - 4, 1j*line + 4, line - 4j, line + 4j]
    plot_curves(lines)
    plot_curves([m(c) for c in lines])

这会产生
在这里插入图片描述
和
在这里插入图片描述
请注意,圆圈并不是很接近。那是因为我的线只从 -100 到 100,而不是 -∞ 到 ∞。圆圈中的间隙为 1/3,因为当z趋向 ±无穷大时,这是我们变换 ( z + 2)/(3 z + 4)的极限。

四、画笑脸

莫比乌斯变换的很重要指标是奇点(与不动点是两个概念)位置。为了进一步说明问题,我想看一下笑脸以及在不同的莫比乌斯变换下它会发生什么。
在这里插入图片描述
这是绘制原始脸部的代码。

  dash = linspace(0.60, 0.90, 20)
    smile = 0.3*exp(1j*2*pi*dash) - 0.2j
    left_eye  = circle(0.1, -0.4+.2j)
    right_eye = circle(0.1,  0.4+.2j)
    face = [circle(1, 0), left_eye, smile, right_eye]

接下来,让我们用参数 (1, 0, 1, 3) 对该面进行莫比乌斯变换。奇点位于 -3 处,位于面外且距离相当远。

求奇点方法:分母等于0, f ( z ) = z z + 3 f(z)=\frac{z}{z+3} f(z)=z+3z​ z = − 3 z=-3 z=−3

在这里插入图片描述
接下来我们将使用参数 (1, 0, 1, -1+1j),其奇异性为 1 – i,更接近脸部,因此失真更多。

求奇点方法 f ( z ) = z z + ( − 1 + 1 j ) = z f(z)=\frac{z}{z+(-1+1j)}=z f(z)=z+(−1+1j)z​=z z = 1 − j z= 1-j z=1−j
在这里插入图片描述

现在我们使用参数 (1, 0, 3, 1),将奇点置于面内的 -1/3 处。
在这里插入图片描述
最后,我们查看参数 (1, 0, 1, 0.4-0.2j),将奇点放在左眼内。
在这里插入图片描述
结论:奇点在不在单位圆内部,是图片保持信息的关键因素。
下一篇文章将解释如何选择莫比乌斯变换的参数以使点到达您想要的位置。