椭圆的矩阵表示法

椭圆的矩阵表示法

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 ) \begin{pmatrix} x \\ y \end{pmatrix} (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 \begin{pmatrix} x & y \end{pmatrix} \begin{pmatrix} \frac{1}{a^2} & 0 \\ 0 & \frac{1}{b^2} \end{pmatrix} \begin{pmatrix} x \\ y \end{pmatrix} = 1 (xy)(a2100b21)(xy)=1在这里,矩阵 ( 1 a 2 0 0 1 b 2 ) \begin{pmatrix} \frac{1}{a^2} & 0 \\ 0 & \frac{1}{b^2} \end{pmatrix} (a2100b21) 就是 Σ − 1 \Sigma^{-1} Σ1,而常数 c = 1 c = 1 c=1
因此,标准形式的椭圆方程可以被视为线性代数表示法的一种特例,其中:
Σ − 1 = ( 1 a 2 0 0 1 b 2 ) \Sigma^{-1} = \begin{pmatrix} \frac{1}{a^2} & 0 \\ 0 & \frac{1}{b^2} \end{pmatrix} Σ1=(a2100b21)
这也意味着:
Σ = ( a 2 0 0 b 2 ) \Sigma = \begin{pmatrix} a^2 & 0 \\ 0 & b^2 \end{pmatrix} Σ=(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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/858321.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

三十八篇:架构大师之路:探索软件设计的无限可能

架构大师之路:探索软件设计的无限可能 1. 引言:架构的艺术与科学 在软件工程的广阔天地中,系统架构不仅是设计的骨架,更是灵魂所在。它如同建筑师手中的蓝图,决定了系统的结构、性能、可维护性以及未来的扩展性。本节…

AWS-PatchAsgInstance自动化定时ASG组打补丁

问题 需要给AWS的EC2水平自动扩展组AutoScaling Group(ASG)中的EC2自动定期打补丁。 创建自动化运行IAM角色 找到创建角色入口页面,如下图: 开始创建Systems Manager自动化运行的IAM角色,如下图: 设置…

2023-2024 学年第二学期小学数学六年级期末质量检测模拟(制作:王胤皓)(90分钟)

word效果预览: 一、我会填 1. 1.\hspace{0.5em} 1. 一个多位数,亿位上是次小的素数,千位上是最小的质数的立方,十万位是 10 10 10 和 15 15 15 的最大公约数,万位是最小的合数,十位上的数既不是质数也…

体验了一下AI生产3D模型有感

我的实验路子是想试试能不能帮我建一下实物模型 SO 我选择了一个成都环球中心的网图 但是生成的结果掺不忍睹,但是看demo来看,似乎如果你能给出一张干净的提示图片,他还是能做出一些东西的 这里我延申的思考是这个物体他如果没看过背面&…

C#hook代码如下

using Celeste; using HarmonyLib; using System; using System.Collections.Generic; using System.IO; using System.Text; using static System.Net.WebRequestMethods;namespace ClassLibrary1 {public class Class1{public static int EntryPoint(string arg){//加载hook …

大型企业网络DHCP服务器配置安装实践@FreeBSD

企业需求 需要为企业里的机器配置一台DHCP服务器。因为光猫提供DHCP服务的能力很差,多机器dhcp多机器NAT拓扑方式机器一多就卡顿。使用一台路由器来进行子网络的dhcp和NAT服务,分担光猫负载,但是还有一部分机器需要放到光猫网络,…

torchinfo这个包中的summary真的很好用

1.安装直接使用 pip 进行安装即可: pip install torchinfo 2.导入该模块 from torchinfo import summary 3.使用模块 summary(model)#这里的model是你自己的model,可以添加参数进去 4.效果图: 第一个图片是直接打印model吗,…

SpringBoot+ENC实现密钥加密及使用原理

😊 作者: 一恍过去 💖 主页: https://blog.csdn.net/zhuocailing3390 🎊 社区: Java技术栈交流 🎉 主题: SpringBootENC实现密钥加密及使用原理 ⏱️ 创作时间: 202…

Biconsumer和Function的区别

在Java中&#xff0c;Function和BiConsumer都是函数式接口&#xff0c;它们是Java 8引入的新特性&#xff0c;旨在支持函数式编程风格和Lambda表达式的使用。这些接口位于java.util.function包下。 Function<T, R> Function<T, R>接口表示一个接受一个类型为T的输…

K8s部署高可用Jenkins

小伙伴们大家好呀&#xff01;断更了近一个月&#xff0c;XiXi去学习了一下K8s和Jenkins的相关技术。学习内容有些庞杂&#xff0c;近一个月的时间里我只学会了一些皮毛&#xff0c;更多的内容还需要后面不断学习&#xff0c;不断积累。最主要的是云主机真得很贵&#xff0c;为…

Go 编码建议——安全篇

文章目录 1.内存管理1.切片长度校验2.指针判空3.整数安全 1.内存管理 1.切片长度校验 在对 slice 进行操作时&#xff0c;必须判断长度是否合法&#xff0c;防止程序 panic。 // bad: slice bounds out of range func foo(slice []int){fmt.Println(slice[:10]) }// good: c…

注意 llamaIndex 中 Chroma 的坑!

llamaIndex 做索引是默认存在内存中&#xff0c;由于索引需要通过网络调用 API&#xff0c;而且索引是比较耗时的操作&#xff0c;为了避免每次都进行索引&#xff0c;使用向量数据库进行 Embedding 存储以提高效率。首先将 Document 解析成 Node&#xff0c;索引时调用 Embedd…

一、系统学习微服务遇到的问题集合

1、启动了nacos服务&#xff0c;没有在注册列表 应该是版本问题 Alibaba-nacos版本 nacos-文档 Spring Cloud Alibaba-中文 Spring-Cloud-Alibaba-英文 Spring-Cloud-Gateway 写的很好的一篇文章 在Spring initial上面配置 start.aliyun.com 重新下载 < 2、 No Feign…

力扣SQL50 求关注者的数量 分组计数

Problem: 1729. 求关注者的数量 Code select user_id, count(1) followers_count from Followers group by user_id order by user_id;

运算放大器(运放)低通滤波反相放大器电路和积分器电路

低通滤波反相放大器电路 运放积分器电路请访问下行链接 运算放大器(运放)积分器电路 设计目标 输入ViMin输入ViMax输出VoMin输出VoMaxBW&#xff1a;fp电源Vee电源Vcc–0.1V0.1V–2V2V2kHz–2.5V2.5V 设计说明 这款可调式低通反相放大器电路可将信号电平放大 26dB 或 20V/…

全面理解-Flutter(万字长文,深度解析)

1、Web 性能差&#xff0c;跟原生 App 存在肉眼可见的差距&#xff1b; 2、React Native 跟 Web 相比&#xff0c;支持的能力非常有限&#xff0c;特定长场景问题&#xff0c;需要三端团队一个一个处理&#xff1b; 3、Web 浏览器的安卓碎片化严重&#xff08;感谢 X5&#x…

ScheduledExecutor使用之——重复创建停止周期性任务

一、背景 在Java中&#xff0c;ScheduledExecutorService是一个用于处理需要定时或周期性执行的任务的强大工具。如果你想要重复地创建和停止周期性任务&#xff0c;你可以使用ScheduledExecutorService的scheduleAtFixedRate或scheduleWithFixedDelay方法&#xff0c;并且结合…

【Android面试八股文】在 Android 的 View 分发机制中有哪些反向制约的方法?

文章目录 一、在 Android 的 View 分发机制中有哪些反向制约的方法?1.1 `requestDisallowInterceptTouchEvent` 方法1.1.1 源码分析1.2 事件回调方法中干预父 View 的行为1.2.1 示例代码1.3 总结一、在 Android 的 View 分发机制中有哪些反向制约的方法? 在 Android 的 View…

【C++算法】——高精度(加,减,乘,除)

前言 高精度算法就是为了去解决一些比较大的数&#xff0c;这些数大到long long都存不下。&#xff0c;这里的主要思想就是用字符串来存。 下面的内容有很多用到c的容器&#xff0c;不明白的可以先去学习stl。 一 高精度加法 首先第一步就是去模拟我们自己写的加法&#xff…