• 椭圆的矩阵表示法


    椭圆的矩阵表示法

    flyfish

    1. 标准几何表示法

    标准几何表示法是通过椭圆的几何定义来表示的:
    x 2 a 2 + y 2 b 2 = 1 \frac{x^2}{a^2} + \frac{y^2}{b^2} = 1 a2x2+b2y2=1其中, a a a 是椭圆的长半轴长度, b b b 是椭圆的短半轴长度。
    在这里插入图片描述

    2. 线性代数表示法

    线性代数表示法是通过椭圆的二次型表示的:
    x T Σ − 1 x = c \mathbf{x}^T \Sigma^{-1} \mathbf{x} = c xTΣ1x=c其中, x \mathbf{x} x 是点的向量表示 ( x y )

    (xy)" role="presentation">(xy)
    (xy) Σ \Sigma Σ 是一个正定矩阵(协方差矩阵的逆), c c c 是一个常数。

    推导两者之间的关系

    我们通过具体推导来看这两者之间的关系:

    假设我们有一个标准形式的椭圆方程:
    x 2 a 2 + y 2 b 2 = 1 \frac{x^2}{a^2} + \frac{y^2}{b^2} = 1 a2x2+b2y2=1
    可以将其改写为矩阵形式:
    ( x y ) ( 1 a 2 0 0 1 b 2 ) ( x y ) = 1

    (xy)" role="presentation">(xy)
    (1a2001b2)" role="presentation">(1a2001b2)
    (xy)" role="presentation">(xy)
    = 1 (xy)(a2100b21)(xy)=1在这里,矩阵 ( 1 a 2 0 0 1 b 2 )
    (1a2001b2)" role="presentation">(1a2001b2)
    (a2100b21)
    就是 Σ − 1 \Sigma^{-1} Σ1,而常数 c = 1 c = 1 c=1
    因此,标准形式的椭圆方程可以被视为线性代数表示法的一种特例,其中:
    Σ − 1 = ( 1 a 2 0 0 1 b 2 ) \Sigma^{-1} =
    (1a2001b2)" role="presentation">(1a2001b2)
    Σ1=(a2100b21)

    这也意味着:
    Σ = ( a 2 0 0 b 2 ) \Sigma =
    (a200b2)" role="presentation">(a200b2)
    Σ=(a200b2)

    更一般的情况

    如果椭圆不是标准形式的(例如旋转过或者平移过的椭圆),其线性代数表示法中的矩阵 Σ \Sigma Σ 将不是对角矩阵,而是一个包含非零的非对角元素的矩阵。

    1. 椭圆的几何定义

    设椭圆的两个焦点分别为 F 1 ( − c , 0 ) F_1(-c, 0) F1(c,0) F 2 ( c , 0 ) F_2(c, 0) F2(c,0),椭圆上的任意一点 P ( x , y ) P(x, y) P(x,y) 满足以下条件:
    P F 1 + P F 2 = 2 a PF_1 + PF_2 = 2a PF1+PF2=2a
    其中, 2 a 2a 2a 是椭圆的长轴长度, a a a 是长半轴的长度。

    2. 代入距离公式

    根据距离公式,可以得到 P P P F 1 F_1 F1 F 2 F_2 F2 的距离分别为:
    P F 1 = ( x + c ) 2 + y 2 PF_1 = \sqrt{(x + c)^2 + y^2} PF1=(x+c)2+y2
    P F 2 = ( x − c ) 2 + y 2 PF_2 = \sqrt{(x - c)^2 + y^2} PF2=(xc)2+y2 根据椭圆的定义,有:
    ( x + c ) 2 + y 2 + ( x − c ) 2 + y 2 = 2 a \sqrt{(x + c)^2 + y^2} + \sqrt{(x - c)^2 + y^2} = 2a (x+c)2+y2 +(xc)2+y2 =2a

    3. 消除根号

    为了简化这个方程,我们首先将方程两边平方:
    ( ( x + c ) 2 + y 2 + ( x − c ) 2 + y 2 ) 2 = ( 2 a ) 2 \left( \sqrt{(x + c)^2 + y^2} + \sqrt{(x - c)^2 + y^2} \right)^2 = (2a)^2 ((x+c)2+y2 +(xc)2+y2 )2=(2a)2展开左边:
    ( x + c ) 2 + y 2 + ( x − c ) 2 + y 2 + 2 ( ( x + c ) 2 + y 2 ) ( ( x − c ) 2 + y 2 ) = 4 a 2 (x + c)^2 + y^2 + (x - c)^2 + y^2 + 2 \sqrt{((x + c)^2 + y^2)((x - c)^2 + y^2)} = 4a^2 (x+c)2+y2+(xc)2+y2+2((x+c)2+y2)((xc)2+y2) =4a2

    4. 凑平方差

    我们先简化左边的前两项:
    ( x + c ) 2 + y 2 + ( x − c ) 2 + y 2 = x 2 + 2 x c + c 2 + y 2 + x 2 − 2 x c + c 2 + y 2 (x + c)^2 + y^2 + (x - c)^2 + y^2 = x^2 + 2xc + c^2 + y^2 + x^2 - 2xc + c^2 + y^2 (x+c)2+y2+(xc)2+y2=x2+2xc+c2+y2+x22xc+c2+y2
    = 2 x 2 + 2 y 2 + 2 c 2 = 2x^2 + 2y^2 + 2c^2 =2x2+2y2+2c2代入上面的方程得到:
    2 x 2 + 2 y 2 + 2 c 2 + 2 ( ( x + c ) 2 + y 2 ) ( ( x − c ) 2 + y 2 ) = 4 a 2 2x^2 + 2y^2 + 2c^2 + 2 \sqrt{((x + c)^2 + y^2)((x - c)^2 + y^2)} = 4a^2 2x2+2y2+2c2+2((x+c)2+y2)((xc)2+y2) =4a2移项得到:
    2 ( ( x + c ) 2 + y 2 ) ( ( x − c ) 2 + y 2 ) = 4 a 2 − 2 x 2 − 2 y 2 − 2 c 2 2 \sqrt{((x + c)^2 + y^2)((x - c)^2 + y^2)} = 4a^2 - 2x^2 - 2y^2 - 2c^2 2((x+c)2+y2)((xc)2+y2) =4a22x22y22c2
    ( ( x + c ) 2 + y 2 ) ( ( x − c ) 2 + y 2 ) = 2 a 2 − x 2 − y 2 − c 2 \sqrt{((x + c)^2 + y^2)((x - c)^2 + y^2)} = 2a^2 - x^2 - y^2 - c^2 ((x+c)2+y2)((xc)2+y2) =2a2x2y2c2

    5. 消去根号

    为了继续消去根号,我们再次平方两边:
    ( ( ( x + c ) 2 + y 2 ) ( ( x − c ) 2 + y 2 ) ) 2 = ( 2 a 2 − x 2 − y 2 − c 2 ) 2 \left( \sqrt{((x + c)^2 + y^2)((x - c)^2 + y^2)} \right)^2 = (2a^2 - x^2 - y^2 - c^2)^2 (((x+c)2+y2)((xc)2+y2) )2=(2a2x2y2c2)2展开左边:
    ( ( x + c ) 2 + y 2 ) ( ( x − c ) 2 + y 2 ) = ( 2 a 2 − x 2 − y 2 − c 2 ) 2 ((x + c)^2 + y^2)((x - c)^2 + y^2) = (2a^2 - x^2 - y^2 - c^2)^2 ((x+c)2+y2)((xc)2+y2)=(2a2x2y2c2)2

    6. 简化方程

    左边的展开:
    ( x 2 + 2 x c + c 2 + y 2 ) ( x 2 − 2 x c + c 2 + y 2 ) (x^2 + 2xc + c^2 + y^2)(x^2 - 2xc + c^2 + y^2) (x2+2xc+c2+y2)(x22xc+c2+y2)
    = ( x 2 + y 2 + c 2 ) 2 − ( 2 x c ) 2 = (x^2 + y^2 + c^2)^2 - (2xc)^2 =(x2+y2+c2)2(2xc)2
    = ( x 2 + y 2 + c 2 ) 2 − 4 x 2 c 2 = (x^2 + y^2 + c^2)^2 - 4x^2c^2 =(x2+y2+c2)24x2c2右边的展开:
    ( 2 a 2 − x 2 − y 2 − c 2 ) 2 (2a^2 - x^2 - y^2 - c^2)^2 (2a2x2y2c2)2
    = 4 a 4 − 4 a 2 ( x 2 + y 2 + c 2 ) + ( x 2 + y 2 + c 2 ) 2 = 4a^4 - 4a^2(x^2 + y^2 + c^2) + (x^2 + y^2 + c^2)^2 =4a44a2(x2+y2+c2)+(x2+y2+c2)2令左边和右边相等:
    ( x 2 + y 2 + c 2 ) 2 − 4 x 2 c 2 = 4 a 4 − 4 a 2 ( x 2 + y 2 + c 2 ) + ( x 2 + y 2 + c 2 ) 2 (x^2 + y^2 + c^2)^2 - 4x^2c^2 = 4a^4 - 4a^2(x^2 + y^2 + c^2) + (x^2 + y^2 + c^2)^2 (x2+y2+c2)24x2c2=4a44a2(x2+y2+c2)+(x2+y2+c2)2相消掉相同项后:
    − 4 x 2 c 2 = 4 a 4 − 4 a 2 ( x 2 + y 2 + c 2 ) - 4x^2c^2 = 4a^4 - 4a^2(x^2 + y^2 + c^2) 4x2c2=4a44a2(x2+y2+c2)
    x 2 c 2 = a 2 ( x 2 + y 2 + c 2 ) − a 4 x^2c^2 = a^2(x^2 + y^2 + c^2) - a^4 x2c2=a2(x2+y2+c2)a4由于 c 2 = a 2 − b 2 c^2 = a^2 - b^2 c2=a2b2,我们将其代入上式中:
    x 2 ( a 2 − b 2 ) = a 2 ( x 2 + y 2 + ( a 2 − b 2 ) ) − a 4 x^2(a^2 - b^2) = a^2(x^2 + y^2 + (a^2 - b^2)) - a^4 x2(a2b2)=a2(x2+y2+(a2b2))a4
    x 2 a 2 − x 2 b 2 = a 2 x 2 + a 2 y 2 + a 4 − a 2 b 2 − a 4 x^2a^2 - x^2b^2 = a^2x^2 + a^2y^2 + a^4 - a^2b^2 - a^4 x2a2x2b2=a2x2+a2y2+a4a2b2a4
    x 2 a 2 − x 2 b 2 = a 2 x 2 + a 2 y 2 − a 2 b 2 x^2a^2 - x^2b^2 = a^2x^2 + a^2y^2 - a^2b^2 x2a2x2b2=a2x2+a2y2a2b2整理后得到:
    − x 2 b 2 = a 2 y 2 − a 2 b 2 -x^2b^2 = a^2y^2 - a^2b^2 x2b2=a2y2a2b2
    x 2 b 2 = a 2 b 2 − a 2 y 2 x^2b^2 = a^2b^2 - a^2y^2 x2b2=a2b2a2y2
    x 2 a 2 + y 2 b 2 = 1 \frac{x^2}{a^2} + \frac{y^2}{b^2} = 1 a2x2+b2y2=1

    最终的标准椭圆方程

    x 2 a 2 + y 2 b 2 = 1 \frac{x^2}{a^2} + \frac{y^2}{b^2} = 1 a2x2+b2y2=1

  • 相关阅读:
    ThreadLocal源码第二讲(ThreadLocalMap)
    Matlab:对函数调用结果进行索引
    乘法逆元的模板代码
    理解C#里面的集合有哪些?怎么用,什么是安全集合?
    MySQL进阶—从零到入土
    电源管理芯片代理商:电源管理芯片的领域和封装
    leetcode:1562. 查找大小为 M 的最新分组【模拟 + 端点记录 + 范围合并】
    【Java进阶】字符串和常见集合
    最新版Git安装指南使用指南
    node批量删除七牛云上的文件
  • 原文地址:https://blog.csdn.net/flyfish1986/article/details/139832696