lisp取两直线交点画圆_圆锥曲线第八节:直线与椭圆的相交

目录:质点:想整理一篇关于高中的圆锥曲线的文章

上一节我们讨论了非退化的二次曲线,现在我们讨论退化的二次曲线。

退化二次曲线是不可逆的对称二阶张量(也就是它的号差中有0),因此它也就不能构成度规。然而它是十分重要的。这是因为在很多情况下,我们遇到的两条直线(或者两个点)总是“成对出现”,“不能拆开”,只好把它们放在一起,用退化二次曲线表示。

对于不可逆的

,记号
也就没有任何意义。因此,退化二次曲线有两种,一种是
,另一种形如
,分别称之为
退化二次点集和退化二次线束。不可逆二阶张量的号差中,0可能有1~3个,但我们主要讨论0、+1、-1各一个的情况。对于这种情况,
具有性质:
存在一个非零点矢s,使得
,并且使得这一等式成立的所有点矢均与s共线
。请注意,
不仅仅意味着
,而意味着对任意矢量a,均有

很明显,S点在曲线

上。如果还有一个点A在曲线上,则
。直线SA上的所有点均可写为
的形式,而
,因此整条直线都在曲线
上。回想双曲线的方程,它们具有
的形式。当k=0时,双曲线退化成了两条直线。这正是退化二次点集的状态。

因此我们得到:退化二次点集是两条直线构造出来的。反过来,只要有两条直线就能构造退化二次点集。我们希望写出一个公式,通过两个线矢构造一个退化二次点集,使得二次点集上的点均位于这两条直线上。

想一想,如果我们只有两个线矢

,我们要构造出一个
对称二阶张量,我们能怎么做?十分自然的构造是,令
这正是我们想要的构造
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Lisp是一种编程语言,可以用来求解条线的交点。在Lisp中,我们可以使用一些数学函数和算法来计算交点。 首先,我们需要定义条线的方程或者参数形式。假设我们有条线的方程形式如下: 线1: y = m1*x + b1 线2: y = m2*x + b2 其中,m1和m2分别为线1和线2的斜率,b1和b2分别为线1和线2的截距。 然后,我们可以通过解方程组的方式来求解交点。假设交点的坐标为(x, y),我们可以得到以下方程: m1*x + b1 = m2*x + b2 => m1*x - m2*x = b2 - b1 => (m1 - m2)*x = b2 - b1 => x = (b2 - b1)/(m1 - m2) 有了x的值,我们可以将其代入线1或线2的方程中,得到对应的y值。例如,代入线1的方程中可以得到: y = m1*x + b1 最后,我们得到条线的交点坐标为(x, y)。 在Lisp中,我们可以定义一个函数来实现上述计算过程。以下是一个简单的示例代码: ``` (defun find-intersection-point (m1 b1 m2 b2) (let ((x (/ (- b2 b1) (- m1 m2)))) (values x (+ (* m1 x) b1)))) (let ((m1 2) (b1 3) (m2 -1) (b2 5)) (format t "The intersection point is (~2f, ~2f)~%" (find-intersection-point m1 b1 m2 b2))) ``` 上述代码中,我们首先定义了一个名为`find-intersection-point`的函数,该函数接受四个参数m1、b1、m2和b2,表示条线的斜率和截距。函数内部使用了`let`表达式来计算x的值,然后使用`values`返回一个包含x和y的多值。最后,我们使用`format`函数将交点坐标打印出来。 注意,上述代码只是一个简单示例,实际应用中可能需要考虑更多的情况,例如特殊情况的处理和错误处理等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值