zoukankan      html  css  js  c++  java
  • 包络线与对偶曲线

    目录

    初等启发

    最近和中学生多了一些接触,遇到了一个有趣的问题。

    在坐标系$xOy$中,在$x$轴正半轴上有一动点$A$,$y$轴正半轴上有一动点$B$,二者的依赖关系是$ riangle AOB$面积是定值,求线段$AB$围出的区域。更一般的依赖关系呢?例如$AB$长度是定值?

    问题的答案是,当依赖关系是$ riangle AOB$面积是定值时,围出的区域是第一象限的双曲线$xy=lambda$的下方;当依赖关系是$AB$长度是定值时,围出的区域是第一象限的星形线$x^{2/3}+y^{2/3}=lambda^{2/3}$的下方,其中$lambda$是一个常数。如图

    这个问题当然是初等的,以长度为定值为例,遵循如下思路便可在高中知识内解决

    • 方便起见,假设长度是定值$1$. 
    • 这族曲线可以统一写作$frac{x}{cos heta}+frac{y}{sin heta}=1$. 
    • 固定$x=x_0$,计算此时这族直线交${x=x_0}$的最高点,即$y=sin heta+x_0 an heta$的取值范围。
    • 具体来说,对$ heta$求导求出最值点$ heta$满足$cos heta=sqrt[3]{x_0}$得到最值$y=sqrt{1-sqrt[3]{x_0^2}}(1-sqrt[3]{x_0^2})$。
    • 故区域的边界满足$x^{2/3}+y^{2/3}=1$. 

    以上过程后文会有引用,故全盘托出。纵观以上问题,关键在于求出区域的边界,对于每个$x=x_0$,关键的点是那些最值点。假如依赖关系得到的这族直线方程可用参数$t$标作$f(x,y,t)=0$,那么我们要求的『边界』应该满足如下方程$$egin{cases}f(x,y,t)=0\ frac{partial f}{partial t}(x,y,t)=0end{cases}$$其中$frac{partial f}{partial t}$表示$f$对$t$求导。这正是所谓的『包络线』方程。

     

    包络曲线

    一个经典的想法是用微分方程考虑这个问题

    要找一条曲线处处切线都是满足条件——截第一象限为一定长度。

    假设曲线方程是$y=f(x)$,那么$(x_0,f(x_0))$处切线方程是$y-f(x_0)=f'(x_0)(x-x_0)$,所谓的截距分别是$-frac{f(x_0)}{f'(x_0)}+x_0$和$-x_0f'(x_0)+f(x_0)$,那么长度是定值$1$表明

    $$left(-frac{f(x_0)}{f'(x_0)}+x_0 ight)^2+left(-x_0f'(x_0)+f(x_0) ight)^2=1$$

    这个方程这可由参数代换法解出,假设$egin{cases} -frac{f(x)}{f'(x)}+x=cos heta\ -xf'(x)+f(x)=sin heta end{cases}$得到

    $$egin{cases}y'=- an heta\ y=sin heta-x an hetaend{cases}$$

    带入$mathrm{d}y=y'mathrm{d}x$得到

    $$cos hetamathrm{d} heta -xfrac{1}{cos^2 heta}mathrm{d} heta- an hetamathrm{d}x=- an hetamathrm{d}x$$

    所以$left(cos heta-xfrac{1}{cos^2 heta} ight)frac{mathrm{d} heta}{mathrm{d}x}=0$, 在每点有两种可能性,其一是$cos heta-xfrac{1}{cos^2 heta}=0$,另一是$frac{mathrm{d} heta}{mathrm{d}x}$. 前者经过直接地代数变形就变成星形线,后者正对应着那些与之相切的直线(这样的曲线当然满足条件)。

     

    正是所谓微分方程的奇解,这通常出现在隐式方程之中,定义为那些『任意一点附近都有与之相切的解』的解。当然,如标题所言,这还牵涉到包络线,经典的包络线是下面的星形线

    微分方程和奇解和几何上的包络概念互相对应。

     

    另一个惊为天人的奇思妙想是,这个曲线上每一点都是『靠近的两条直线的交点』的极限。具体来说,$y=f(x)$在$x_0$的切线和$x_0+Delta x$处的切线的交点应该不会距离$(x_0,f(x_0))$太远,所以想要还原$y=f(x)$,需要遵循如下步骤

    • 将这族曲线可以统一写作$frac{x}{cos heta}+frac{y}{sin heta}=1$. 
    • 求$egin{cases}frac{x}{cos heta}+frac{y}{sin heta}=1 \ frac{x}{cos ( heta+delta heta)}+frac{y}{sin ( heta+delta heta)}=1 end{cases}$的交点。
    • 令$Delta heta o 0$得到交点,这样就得到了$y=f(x)$的表达式。

    但是这样操作极为繁琐,映为直线方程难解。好在可微性允许我们只计算大致的结果,方程本质是$egin{cases}f(x,y,t)=0\ f(x,y,t+Delta t)=0end{cases}$,我们知道$f(x,y,t+Delta t)=f(x,y,t)+Delta t f_t(x,y,t)$,所以方程变成$$egin{cases}f(x,y,t)=0\ frac{partial f}{partial t}(x,y,t)=0end{cases}$$其中$frac{partial f}{partial t}$表示$f$对$t$求导。我们又一次得到了包络曲线的方程。

    对偶曲线

    在射影平面$mathbb{P}^2$中,每一条直线$Ax+By+Cz=0$和点$[A,B,C]$一一对应,在此对应下可以对一条曲线$C$定义对偶曲线为

    $$C^vee={[a,b,c]: extrm{直线$ax+by+cz=0$与$C$相切}}$$ 

    例如,曲线$C: xy=z^2$的所有切线形如$y_0x+x_0y-2z_0z=0$,其中$[x_0,y_0,z_0]$在$C$上,故对偶曲线是$C^vee: xy=z^2/4$。而$(C^vee)$的切线又形如$y_0^* x+x_0^*y-frac{z_0^*}{2}z=0$,其中$[x_0^*,y_0^*,z_0^*]$在$C^vee$上,故$C^vee$的对偶曲线是$(C^vee)^vee: xy=z^2$又回到了自己。有了上文最末『惊为天人』的想法,这个结果并不令我们惊奇,因为在$mathbb{P}^2$中直线和点的对应下,过两点的直线对应到对应直线的交点,两直线的交点对应到过对应点的连线,所以切线的交点$leftrightarrow$对应点的连线,让切线接近得到的点就对应到切线,所以『惊为天人』又『不出意料』地回到自己。

    这一点可以严格证明,假设曲线被局部参数化作$[x_1(t),x_2(t),x_3(t)]$,要求切线,实际上是求$mathbb{R}^3$中$(x_1(t)s,x_2(t)s,x_3(t)s)$的切空间,不难计算出切线方程是$ax+by+cz=0$,其中$(a,b,c)=(x_1,x_2,x_3)wedge (x_1',x_2',x_3')$,其中$wedge$是向量积。我们记$mathbf{x}=(x_1(t),x_2(t),x_3(t))$,于是对偶曲线应该是$[x^*(t),y^*(t),z^*(t)]$, 其中$(x^*,y^*,z^*)=mathbf{x}wedge mathbf{x'}$. 要证明对偶,下面的计算就变得关键

    $$egin{array}{rl}         (mathbf{x}wedge mathbf{x}')wedge (mathbf{x}wedge mathbf{x}')'             & =   (mathbf{x}wedge mathbf{x}')wedge underbrace{(mathbf{x}'wedge mathbf{x}')}_{=0} +(mathbf{x}wedge mathbf{x}')wedge (mathbf{x}wedge mathbf{x}'')         \&               = left<mathbf{x}wedge mathbf{x}',mathbf{x}'' ight>mathbf{x}-  underbrace{left<mathbf{x}wedge mathbf{x}',mathbf{x} ight>}_{=0}mathbf{x}''     \&          = [mathbf{x},mathbf{x}',mathbf{x}''] mathbf{x} end{array}$$

    和$mathbf{x}$是共线的,所以说明二次对偶和原本的曲线相同。

    感谢刘奔和我交流讨论。

      

  • 相关阅读:
    趣图:程序员告诉你为什么充钱后速度更快
    金三银四铜五铁六,面试得做好这个准备
    Java中如何模拟真正的同时并发请求?
    趣图:程序员最头疼的原因
    Java并发面试题
    linux内存分配与回收
    7.3 Set集合
    7.2 Java 11新增的Collection和Iterator接口
    7.1 Java集合概念
    6.5 正则表达式
  • 原文地址:https://www.cnblogs.com/XiongRuiMath/p/11308159.html
Copyright © 2011-2022 走看看