- 注册时间
- 2007-12-27
- 最后登录
- 1970-1-1
- 威望
- 星
- 金币
- 枚
- 贡献
- 分
- 经验
- 点
- 鲜花
- 朵
- 魅力
- 点
- 上传
- 次
- 下载
- 次
- 积分
- 40124
- 在线时间
- 小时
|
发表于 2024-10-30 08:39:41
|
显示全部楼层
假设一条圆锥曲线中心在原点,可以旋转以后方程变化为 $ax^2+by^2+c=0$
假设其上有三个点$D(x_1,y_1),E(x_2,y_2),F(x_3,y_3)$,那么过这三点切线方程分别为$ax_i x+by_i y+c=0$.
使用Pari/gp计算三切线两两交点A,B,C的射影坐标,可以使用
- (08:32) gp > getline(A,B)={local(M); M=matrix(2,3);M[1,]=A;M[2,]=B;matker(M)~[1,]}
- %36 = (A,B)->local(M);M=matrix(2,3);M[1,]=A;M[2,]=B;matker(M)~[1,]
- (08:32) gp > L1=[a*x1,b*y1,c]
- %37 = [x1*a, y1*b, c]
- (08:33) gp > L2=[a*x2,b*y2,c]
- %38 = [x2*a, y2*b, c]
- (08:33) gp > L3=[a*x3,b*y3,c]
- %39 = [x3*a, y3*b, c]
- (08:33) gp > PA=getline(L1,L2)
- %40 = [((-y2 + y1)/((y2*x1 - y1*x2)*a))*c, ((-x1 + x2)/(y2*b*x1 - y1*b*x2))*c, 1]
- (08:33) gp > PB=getline(L2,L3)
- %41 = [((y2 - y3)/((y3*x2 - x3*y2)*a))*c, ((-x2 + x3)/(y3*b*x2 - x3*y2*b))*c, 1]
- (08:33) gp > PC=getline(L3,L1)
- %42 = [((y1 - y3)/((y3*x1 - x3*y1)*a))*c, ((-x1 + x3)/(y3*b*x1 - x3*y1*b))*c, 1]
- (08:35) gp > PA[3]=h
- %49 = h
- (08:40) gp > PB[3]=h
- %50 = h
- (08:40) gp > PC[3]=h
- %51 = h
- (08:41) gp > PA
- %52 = [((-y2 + y1)/((y2*x1 - y1*x2)*a))*c, ((-x1 + x2)/(y2*b*x1 - y1*b*x2))*c, h]
- (08:41) gp > PB
- %53 = [((y2 - y3)/((y3*x2 - x3*y2)*a))*c, ((-x2 + x3)/(y3*b*x2 - x3*y2*b))*c, h]
- (08:41) gp > PC
- %54 = [((y1 - y3)/((y3*x1 - x3*y1)*a))*c, ((-x1 + x3)/(y3*b*x1 - x3*y1*b))*c, h]
- (08:41) gp > getline(PA,[x3,y3,1])
- %55 = [((-x1 + x2)*a*c + (-h*y3*y2*b*x1 + h*y3*y1*b*x2)*a)/(((x3*x1 - x3*x2)*a + (-y3*y2 + y3*y1)*b)*c), ((y2 - y1)*b*c + (h*x3*y2*b*x1 - h*x3*y1*b*x2)*a)/(((x3*x1 - x3*x2)*a + (-y3*y2 + y3*y1)*b)*c), 1]
- (08:41) gp > getline(PB,[x1,y1,1])
- %56 = [((x2 - x3)*a*c + (h*y3*y1*b*x2 - h*x3*y1*y2*b)*a)/(((-x2 + x3)*x1*a + (-y1*y2 + y3*y1)*b)*c), ((y2 - y3)*b*c + (-h*y3*b*x2 + h*x3*y2*b)*x1*a)/(((-x2 + x3)*x1*a + (-y1*y2 + y3*y1)*b)*c), 1]
- (08:41) gp > getline(PC,[x2,y2,1])
- %57 = [((-x1 + x3)*a*c + (-h*y3*y2*b*x1 + h*x3*y1*y2*b)*a)/(((x2*x1 - x3*x2)*a + (y1 - y3)*y2*b)*c), ((-y1 + y3)*b*c + (h*y3*b*x2*x1 - h*x3*y1*b*x2)*a)/(((x2*x1 - x3*x2)*a + (y1 - y3)*y2*b)*c), 1]
- (08:41) gp > getline(%55,%56)
- %58 = [(((((-y2 + y1)*x2 + (-x3*y1 + y3*x3))*x1 + (x3*y2 - y3*x3)*x2)*a + ((-y1 + y3)*y2^2 + (y1^2 - y3^2)*y2 + (-y3*y1^2 + y3^2*y1))*b)*c^2 + (((-h*x3*y2 + h*y3*x3)*x2*x1^2 + ((h*x3*y1 - h*y3*x3)*x2^2 + (h*x3^2*y2 - h*x3^2*y1)*x2)*x1)*a^2 + (((-h*y3^2*y2 + h*y3^2*y1)*b*x2 + (-h*x3*y1 + h*y3*x3)*y2^2*b)*x1 + (h*x3*y1^2*y2 - h*y3*x3*y1^2)*b*x2)*a)*c)/(((-y2 + y3)*x1 + ((y1 - y3)*x2 + (x3*y2 - x3*y1)))*a*c^2 + (((h*y3*x2 - h*x3*y2)*x1^2 + (-h*y3*x2^2 + h*x3^2*y2)*x1 + (h*x3*y1*x2^2 - h*x3^2*y1*x2))*a^2 + ((-h*y3*y2^2 + h*y3^2*y2)*b*x1 + ((h*y3*y1^2 - h*y3^2*y1)*b*x2 + (h*x3*y1*y2^2 - h*x3*y1^2*y2)*b))*a)*c + ((h^2*y3^2*y2*b*x2 - h^2*y3*x3*y2^2*b)*x1^2 + (-h^2*y3^2*y1*b*x2^2 + h^2*x3^2*y1*y2^2*b)*x1 + (h^2*y3*x3*y1^2*b*x2^2 - h^2*x3^2*y1^2*y2*b*x2))*a^2), ((((-x2 + x3)*x1^2 + (x2^2 - x3^2)*x1 + (-x3*x2^2 + x3^2*x2))*a + ((-y1*y2 + y3*y1)*b*x1 + ((y1 - y3)*y2*b*x2 + (y3*x3*y2 - y3*x3*y1)*b)))*c^2 + (((-h*y3*y2*b*x2 + h*y3*x3*y2*b)*x1^2 + (h*y3*y1*b*x2^2 - h*x3^2*y1*y2*b)*x1 + (-h*y3*x3*y1*b*x2^2 + h*x3^2*y1*y2*b*x2))*a + ((-h*y3*y1*y2^2 + h*y3^2*y1*y2)*b^2*x1 + ((h*y3*y1^2 - h*y3^2*y1)*y2*b^2*x2 + (h*y3*x3*y1*y2^2 - h*y3*x3*y1^2*y2)*b^2)))*c)/(((-y2 + y3)*b*x1 + ((y1 - y3)*b*x2 + (x3*y2 - x3*y1)*b))*c^2 + (((h*y3*b*x2 - h*x3*y2*b)*x1^2 + (-h*y3*b*x2^2 + h*x3^2*y2*b)*x1 + (h*x3*y1*b*x2^2 - h*x3^2*y1*b*x2))*a + ((-h*y3*y2^2 + h*y3^2*y2)*b^2*x1 + ((h*y3*y1^2 - h*y3^2*y1)*b^2*x2 + (h*x3*y1*y2^2 - h*x3*y1^2*y2)*b^2)))*c + ((h^2*y3^2*y2*b^2*x2 - h^2*y3*x3*y2^2*b^2)*x1^2 + (-h^2*y3^2*y1*b^2*x2^2 + h^2*x3^2*y1*y2^2*b^2)*x1 + (h^2*y3*x3*y1^2*b^2*x2^2 - h^2*x3^2*y1^2*y2*b^2*x2))*a), 1]
- (08:42) gp > getline(%56,%57)
- %59 = [(((((y2 - y1)*x2 + (x3*y1 - y3*x3))*x1 + (-x3*y2 + y3*x3)*x2)*a + ((y1 - y3)*y2^2 + (-y1^2 + y3^2)*y2 + (y3*y1^2 - y3^2*y1))*b)*c^2 + (((h*x3*y2 - h*y3*x3)*x2*x1^2 + ((-h*x3*y1 + h*y3*x3)*x2^2 + (-h*x3^2*y2 + h*x3^2*y1)*x2)*x1)*a^2 + (((h*y3^2*y2 - h*y3^2*y1)*b*x2 + (h*x3*y1 - h*y3*x3)*y2^2*b)*x1 + (-h*x3*y1^2*y2 + h*y3*x3*y1^2)*b*x2)*a)*c)/(((y2 - y3)*x1 + ((-y1 + y3)*x2 + (-x3*y2 + x3*y1)))*a*c^2 + (((-h*y3*x2 + h*x3*y2)*x1^2 + (h*y3*x2^2 - h*x3^2*y2)*x1 + (-h*x3*y1*x2^2 + h*x3^2*y1*x2))*a^2 + ((h*y3*y2^2 - h*y3^2*y2)*b*x1 + ((-h*y3*y1^2 + h*y3^2*y1)*b*x2 + (-h*x3*y1*y2^2 + h*x3*y1^2*y2)*b))*a)*c + ((-h^2*y3^2*y2*b*x2 + h^2*y3*x3*y2^2*b)*x1^2 + (h^2*y3^2*y1*b*x2^2 - h^2*x3^2*y1*y2^2*b)*x1 + (-h^2*y3*x3*y1^2*b*x2^2 + h^2*x3^2*y1^2*y2*b*x2))*a^2), ((((x2 - x3)*x1^2 + (-x2^2 + x3^2)*x1 + (x3*x2^2 - x3^2*x2))*a + ((y1*y2 - y3*y1)*b*x1 + ((-y1 + y3)*y2*b*x2 + (-y3*x3*y2 + y3*x3*y1)*b)))*c^2 + (((h*y3*y2*b*x2 - h*y3*x3*y2*b)*x1^2 + (-h*y3*y1*b*x2^2 + h*x3^2*y1*y2*b)*x1 + (h*y3*x3*y1*b*x2^2 - h*x3^2*y1*y2*b*x2))*a + ((h*y3*y1*y2^2 - h*y3^2*y1*y2)*b^2*x1 + ((-h*y3*y1^2 + h*y3^2*y1)*y2*b^2*x2 + (-h*y3*x3*y1*y2^2 + h*y3*x3*y1^2*y2)*b^2)))*c)/(((y2 - y3)*b*x1 + ((-y1 + y3)*b*x2 + (-x3*y2 + x3*y1)*b))*c^2 + (((-h*y3*b*x2 + h*x3*y2*b)*x1^2 + (h*y3*b*x2^2 - h*x3^2*y2*b)*x1 + (-h*x3*y1*b*x2^2 + h*x3^2*y1*b*x2))*a + ((h*y3*y2^2 - h*y3^2*y2)*b^2*x1 + ((-h*y3*y1^2 + h*y3^2*y1)*b^2*x2 + (-h*x3*y1*y2^2 + h*x3*y1^2*y2)*b^2)))*c + ((-h^2*y3^2*y2*b^2*x2 + h^2*y3*x3*y2^2*b^2)*x1^2 + (h^2*y3^2*y1*b^2*x2^2 - h^2*x3^2*y1*y2^2*b^2)*x1 + (-h^2*y3*x3*y1^2*b^2*x2^2 + h^2*x3^2*y1^2*y2*b^2*x2))*a), 1]
- (08:42) gp > %58-%59
- %60 = [0, 0, 0]
复制代码
由此证明了命题的成立。
这个证明过程也说明了D,E,F可以不在曲线上,这时我们只需要使用极线代替切线即可。 |
|