数学中国

 找回密码
 注册
搜索
热搜: 活动 交友 discuz
查看: 1234|回复: 3

从【数学研发】网站淘来的三点共线几何题

[复制链接]
发表于 2023-2-6 12:32 | 显示全部楼层 |阅读模式
本帖最后由 天山草 于 2023-2-6 12:37 编辑

下面这个平面几何题是从【数学研发】网站淘来的,原题网址为

https://bbs.emath.ac.cn/forum.ph ... amp;extra=#pid94391



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
 楼主| 发表于 2023-2-6 12:47 | 显示全部楼层
本帖最后由 天山草 于 2023-2-6 12:53 编辑

这个一个多条直线相交的问题,除纯几何方法外(据说可以用笛沙格定理做),我认为用 denglongshan 的解析方法做是最简单易懂的。因为这个方法不需要多少费脑子的思考,只须按步就班套公式求出各点的复坐标表达式即可。最终判断 A、B、Q 是否共线,只须用软件计算通过 B 点的直线 AB 和 BQ 的复斜率是否一样就行了。
下面是用 mathematica 写的程序:



程序运行结果:



程序代码:


  1. Clear["Global`*"];
  2. \!\(\*OverscriptBox[\(a\), \(_\)]\) = a = 0;  \!\(\*OverscriptBox[\(b\), \(_\)]\) = b = 1; (* 令 s、t 分别是 AX、AY 的复斜率。u、v、w 分别是 CB、DB、EB 的复斜率。*)
  3. (* 调用以下自定义函数求 C、D、E、F、G、H 点的坐标:*)
  4. k[a_, b_] := (a - b)/(\!\(\*OverscriptBox[\(a\), \(_\)]\) - \!\(\*OverscriptBox[\(b\), \(_\)]\));(*复斜率定义*)
  5. Jd[k1_, a1_, k2_, a2_] := -((k2 (a1 - k1 \!\(\*OverscriptBox[\(a1\), \(_\)]\)) - k1 (a2 - k2 \!\(\*OverscriptBox[\(a2\), \(_\)]\)))/(k1 - k2));
  6. \!\(\*OverscriptBox[\(Jd\), \(_\)]\)[k1_, a1_, k2_, a2_] := -((a1 - k1 \!\(\*OverscriptBox[\(a1\), \(_\)]\) - (a2 - k2 \!\(\*OverscriptBox[\(a2\), \(_\)]\)))/(k1 - k2));
  7. (*复斜率等于k1且经过A1点的直线,与复斜率等于k2且经过A2点的直线,两直线的交点*)
  8. c = Jd[s, a, u, b]; \!\(\*OverscriptBox[\(c\), \(_\)]\) = \!\(\*OverscriptBox[\(Jd\), \(_\)]\)[s, a, u, b];
  9. d = Jd[s, a, v, b]; \!\(\*OverscriptBox[\(d\), \(_\)]\) = \!\(\*OverscriptBox[\(Jd\), \(_\)]\)[s, a, v, b];
  10. e = Jd[s, a, w, b]; \!\(\*OverscriptBox[\(e\), \(_\)]\) = \!\(\*OverscriptBox[\(Jd\), \(_\)]\)[s, a, w, b];
  11. h = Jd[t, a, u, b]; \!\(\*OverscriptBox[\(h\), \(_\)]\) = \!\(\*OverscriptBox[\(Jd\), \(_\)]\)[t, a, u, b];
  12. g = Jd[t, a, v, b]; \!\(\*OverscriptBox[\(g\), \(_\)]\) = \!\(\*OverscriptBox[\(Jd\), \(_\)]\)[t, a, v, b];
  13. f = Jd[t, a, w, b]; \!\(\*OverscriptBox[\(f\), \(_\)]\) = \!\(\*OverscriptBox[\(Jd\), \(_\)]\)[t, a, w, b];
  14. m = Jd[k[d, h], d, k[e, g], e]; \!\(\*OverscriptBox[\(m\), \(_\)]\) = \!\(\*OverscriptBox[\(Jd\), \(_\)]\)[k[d, h], d, k[e, g], e];
  15. n = Jd[k[c, h], c, k[e, g], e];  \!\(\*OverscriptBox[\(n\), \(_\)]\) = \!\(\*OverscriptBox[\(Jd\), \(_\)]\)[k[c, h], c, k[e, g], e];
  16. p = Jd[s, c, k[f, m], f]; \!\(\*OverscriptBox[\(p\), \(_\)]\) = \!\(\*OverscriptBox[\(Jd\), \(_\)]\)[s, c, k[f, m], f];
  17. q =  Jd[k[g, p], g, k[f, n], f]; \!\(\*OverscriptBox[\(q\), \(_\)]\) = \!\(\*OverscriptBox[\(Jd\), \(_\)]\)[k[g, p], g, k[f, n], f];
  18. Simplify[{C -> c, D -> d, "E" -> e}]
  19. Simplify[{H -> h, G -> g, F -> f}]
  20. Simplify[{M -> m, N -> n, Q -> q}]
  21. Simplify[k[a, b] == k[b, q]](*如果通过同一个点 B 的线段 AB 和 BQ 的复斜率相等,则 A、B、Q 三点共线*)
复制代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-2-6 14:14 | 显示全部楼层
本帖最后由 天山草 于 2023-2-7 10:19 编辑

denglongshan 对复平面上直线的【复斜率】概念在平面解析几何中的应用进行了多年研究,推导出了两条直线的交点公式,两条直线间的夹角等公式。如果对复平面上的直线复斜率概念不了解,也可以使用通常的直线斜率来做题。

若复平面上有两个点 A、B,它们的复数坐标为 a 和 b,可以推出 AB 线的斜率

\(K=\frac{\overline{a}-a-\overline{b}+b}{a+\overline{a}-\overline{b}-b}i\)

式中 \(\overline{a}\) 是 \(a\) 的共轭复数, \(\overline{b}\) 是 \(b\) 的共轭复数。

通过 A1 点、斜率为 K1 的直线若与通过 A2 点、斜率为 K2 的直线相交,可以推出交点坐标为:





按上述公式解题,令 A 点在坐标系原点, B 点在 (1,0),再令 s、t  分别是 AX、AY 的斜率,

u、v、w 分别是 CB、DB、EB 的斜率。可写出下列程序:



程序运行结果:



程序代码:

  1. Clear["Global`*"];
  2. \!\(\*OverscriptBox[\(a\), \(_\)]\) = a = 0;
  3. \!\(\*OverscriptBox[\(b\), \(_\)]\) = b = 1; (* 令 s、t 分别是 AX、AY 的斜率。u、v、w 分别是 CB、DB、EB 的斜率。*)
  4. (* 调用以下自定义函数求 C、D、E、F、G、H 点的坐标:*)
  5. K[a_, b_] := ( \!\(\*OverscriptBox[\(a\), \(_\)]\) - a + b - \!\(\*OverscriptBox[\(b\), \(_\)]\))/(a + \!\(\*OverscriptBox[\(a\), \(_\)]\) -
  6. \!\(\*OverscriptBox[\(b\), \(_\)]\) - b) I;(*斜率定义*)
  7. Jd[K1_, a1_, K2_, a2_] := (I (-\!\(\*OverscriptBox[\(a2\), \(_\)]\) (K1 - I) (K2 - I) +  K1 ((a1 - a2) K2 - I (a1 + a2)) + I a1 K2 + a1 + I a2 K2 - a2) + \!\(\*OverscriptBox[\(a1\), \(_\)]\) (1 + I K1) (K2 - I))/(  2 (K1 - K2));
  8. \!\(\*OverscriptBox[\(Jd\), \(_\)]\)[K1_, a1_, K2_, a2_] := ((K1 + I) (\!\(\*OverscriptBox[\(a2\), \(_\)]\) (1 + I K2) + (a1 - a2) (1 -         I K2)) +\!\(\*OverscriptBox[\(a1\), \(_\)]\) (K1 - I) (1 - I K2))/(  2 (K1 - K2));
  9. (* 斜率等于k1且经过A1点的直线与斜率等于k2且经过A2点的直线的交点*)
  10. c = Jd[s, a, u, b];
  11. \!\(\*OverscriptBox[\(c\), \(_\)]\) = \!\(\*OverscriptBox[\(Jd\), \(_\)]\)[s, a, u, b]; d = Jd[s, a, v, b];
  12. \!\(\*OverscriptBox[\(d\), \(_\)]\) = \!\(\*OverscriptBox[\(Jd\), \(_\)]\)[s, a, v, b]; e = Jd[s, a, w, b];
  13. \!\(\*OverscriptBox[\(e\), \(_\)]\) = \!\(\*OverscriptBox[\(Jd\), \(_\)]\)[s, a, w, b];
  14. h = Jd[t, a, u, b]; \!\(\*OverscriptBox[\(h\), \(_\)]\) = \!\(\*OverscriptBox[\(Jd\), \(_\)]\)[t, a, u, b]; g = Jd[t, a, v, b];
  15. \!\(\*OverscriptBox[\(g\), \(_\)]\) = \!\(\*OverscriptBox[\(Jd\), \(_\)]\)[t, a, v, b]; f = Jd[t, a, w, b];
  16. \!\(\*OverscriptBox[\(f\), \(_\)]\) = \!\(\*OverscriptBox[\(Jd\), \(_\)]\)[t, a, w, b];
  17. m = Jd[K[d, h], d, K[e, g], e]; \!\(\*OverscriptBox[\(m\), \(_\)]\) = \!\(\*OverscriptBox[\(Jd\), \(_\)]\)[K[d, h], d, K[e, g], e];
  18. n = Jd[K[c, h], c, K[e, g], e]; \!\(\*OverscriptBox[\(n\), \(_\)]\) = \!\(\*OverscriptBox[\(Jd\), \(_\)]\)[K[c, h], c, K[e, g], e];
  19. p = Jd[s, c, K[f, m], f]; \!\(\*OverscriptBox[\(p\), \(_\)]\) = \!\(\*OverscriptBox[\(Jd\), \(_\)]\)[s, c, K[f, m], f]; q =  Jd[K[g, p], g, K[f, n], f];
  20. \!\(\*OverscriptBox[\(q\), \(_\)]\) = \!\(\*OverscriptBox[\(Jd\), \(_\)]\)[K[g, p], g, K[f, n], f];
  21. Simplify[{C -> c, D -> d, "E" -> e}]
  22. Simplify[{H -> h, G -> g, F -> f}]
  23. Simplify[{M -> m, N -> n, Q -> q}]
  24. Simplify[K[a, b]]
  25. Simplify[K[b, q]]
  26. Simplify[K[a, b] == K[b, q]](*如果通过同一个点 B 的线段 AB 和 BQ 的斜率相等,则 A、B、Q 三点共线*)
复制代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

发表于 2023-2-7 09:11 | 显示全部楼层
收藏学习,谢谢天山草
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|数学中国 ( 京ICP备05040119号 )

GMT+8, 2024-3-29 19:21 , Processed in 0.078125 second(s), 16 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表