【原创】《矩阵的史诗级玩法》连载三十:两个椭圆的矩阵求交计算

探讨了两个椭圆求交的数学问题,通过将其中一个椭圆转化为单位圆,使用矩阵变换简化第二个椭圆的方程,实现了计算的简化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

弹指一挥间,连载到了三十篇。能坚持看下来的,估计都是铁粉了。

两个椭圆求交,一个变成单位圆,另一个则一定要做矩阵变形。

根据连载二十八,这两条椭圆方程可表示如下。

如果把其中一条(比如第1条)化为标准圆,那么第二条就要对X,Y执行一个如下的矩阵变换(一路看过来的朋友相信这个套路你们都不会陌生了吧)。

然后把这个式子代入到第2条方程里面,天哪,那可不是一般的复杂。

在连载二十八里,我提到一点:所以如果知道变换的具体参数,那是不会考虑直接拿这个方程来求解的。

所以我们来观察一下整个的变换过程。

为了把上图的蓝色圆变成单位圆,我们可以这样变形。

然后在这个过程中,红椭圆就要执行上述的那个蛋疼的方程代入。

但我们知道,红椭圆自身也可以用单位圆+变换矩阵来表示。所以可以对其进行如下分解。

这个变换里面,蓝椭圆我们完全不用关心,因为蓝椭圆的最终结果确定为单位圆。

连在一起,就是

分解成了这样两步,如果仍然一步步地去跟矩阵相乘,那就跟前面的做法没有任何区别。但是,这个矩阵的连乘过程,大家能想到什么?没错!我们可以先通过结合律先把矩阵乘好,然后再应用到单位圆上!

矩阵连乘手算不比方程矩阵变换轻松多少,不过放到我们的矩阵类里面,那前者就显然优于后者了!

我们来重温这个简化过程:

原始状态:一个复杂矩阵m1*非常复杂的斜椭圆=很难求出的一个结果

简化状态:一个复杂矩阵m1*一个复杂矩阵m2*一个单位圆*=(一个复杂矩阵m1*一个复杂矩阵m2)*一个单位圆=一个矩阵*一个单位圆=很容易求出的一个结果

就这样,我们通过一个史诗级的变换把最复杂的部分转移到了矩阵乘法中,而这一步交由矩阵类即可轻松完成!

如果你们也有同样的感受,那相信会跟我一样,都迫不及待地想通过代码来验证下了。好,事不宜迟,我们把两条方程列出来。一条是单位圆,另一条是加入矩阵的单位圆。

这地方代入稍麻烦,需要带着根号。当然你们也可以尝试用三角函数代替。

所幸的是,这个基于单位圆的根式,已经比前面我们碰到的简单很多很多了,因此展开去根号也很简单。

废话少说,马上在下一篇给出代码!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值