数学中国

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

D、E于AB、AC上,BD=CE,CD交BE于F,G是BC的中点,∠A平分线交FG于H,求证:FG=GH

[复制链接]
发表于 2023-3-31 11:32 | 显示全部楼层 |阅读模式
本帖最后由 uk702 于 2023-3-31 11:52 编辑

如图,D、E分别在△ABC的边AB、AC上,BD=CE,BE与CD相交于F,G是BC的中点,∠A的角平分线和FG相交于H,求证:FG=GH。

这是一道经典的题目,颇有点难度,如若用复数几何进行处理,求 D、E 两个点的表示法。

本帖子中包含更多资源

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

x
 楼主| 发表于 2023-3-31 15:54 | 显示全部楼层
如此这般倒也可行。

不妨设 B = (0, 0),C = (1,0),而 AH 与 BC 相交于 J,且记 BJ = u,0 < u < 1,于是 JC = 1-u。

若 BD/BA = λ,由角平线定理,有 AB/AC = BJ/JC = u/(1-u),由 BD = CE,算得 CE/CA =  λu/(1-u) 。

下面是代码:

  1. ClearAll["Global`*"];

  2. (* 约定:用小写字母 a 表示点 A 的复坐标,而 a' 表示 a 的共轭复数,其余类同 *)
  3. (* 不妨设 b = 0, c = 1,AH 交 BC 于 J,记 |BJ| = u *)
  4. b' = b = 0; c' = c = 1; j' = j = u;

  5. (* 过 A、B 两点的复斜率定义 *)
  6. k[a_, b_] := (a - b)/(a' - b');
  7. k'[a_, b_] := 1/k[a, b];

  8. (* 点 A 满足 kaj/kab = kac/kaj,假设其商为 v,由此解得 A *)
  9. sol = Solve[{k[a, j] / k[a, b] == v, k[a, c]/k[a, j] == v}, {a, a'}];
  10. {a, a'} = {a, a'} /. Last[sol];

  11. (* 假设 |BD|/|AB|=λ,则 d = λ a *)
  12. d = λ a; d' = λ a';

  13. (* 由角平分线定理,知 |AB|/|AC| = |AJ|/|JB| = u/(1-u) *)
  14. (* 根据已知,|BD|=|CE|,∴ |CE|/|AC| = |BD|/|AC| = |BD|/(|AB|/(u/(1-u))) = λ u / (1-u) *)
  15. (* 故 c - e = λ u / (1-u) (c - a),即 e = c - λ u / (1-u) (c - a) *)
  16. e = c - λ u / (1-u) (c - a); e' = c' - λ u / (1-u) (c' - a');

  17. (* 复斜率 k1 且 过点 A1 与复斜率 k2 且过点 A2 的直线交点 *)
  18. Jd'[k1_, a1_, k2_, a2_] := -((a1 - k1 a1' - (a2 - k2 a2'))/(k1 - k2));
  19. Jd[k1_, a1_, k2_, a2_] := -((k2 (a1 - k1 a1') - k1 (a2 - k2 a2'))/(k1 - k2))

  20. (* G  为 BC 的中点,F 为 CD  与 BE 的交点 *)
  21. g' = g = (b + c)/2;
  22. f = Simplify@Jd[k[b, e], b, k[c, d], c]; f' = Jd'[k[b, e], b, k[c, d], c];
  23. h = Simplify@Jd[k[f, g], f, k[a, j], a]; h' = Jd'[k[f, g], f, k[a, j], a];

  24. (* 验证 G 是 FH 的中点 *)
  25. result = Simplify[(f+h)/2];

  26. Print[{g, result, "G = (F+H)/2 is " (g == result)}]
复制代码


输出:
\[
\left\{\frac{1}{2},\frac{1}{2},\text{G = (F+H)/2 is } \text{True}\right\}
\]

点评

D和E不一定在边上  发表于 2023-4-1 22:12
建议把各点复坐标输出  发表于 2023-4-1 22:05
回复 支持 反对

使用道具 举报

发表于 2023-4-1 09:04 | 显示全部楼层
本帖最后由 天山草 于 2023-4-1 09:14 编辑
  1. Clear["Global`*"]; (*令B点坐标为(0,0),C点坐标为(1,0),AB、AC的复斜率各为u^2和1/v^2*)
  2. \!\(\*OverscriptBox[\(b\), \(_\)]\) = b = 0; \!\(\*OverscriptBox[\(c\), \(_\)]\) = c = 1; a = (u^2 (v^2 - 1))/( u^2 v^2 - 1);
  3. \!\(\*OverscriptBox[\(a\), \(_\)]\) = (v^2 - 1)/(u^2 v^2 - 1); \!\(\*OverscriptBox[\(g\), \(_\)]\) = g = 1/2;
  4. (*三角形ABC内心坐标:*) i = (u (v - 1))/(u v - 1); \!\(\*OverscriptBox[\(i\), \(_\)]\) = (v - 1)/(u v - 1);
  5. d = \[Lambda] a;(*假设|BD|/|BA|=\[Lambda]*)\!\(\*OverscriptBox[\(d\), \(_\)]\) = \[Lambda] \!\(\*OverscriptBox[\(a\), \(_\)]\);
  6. e = Simplify[\[Mu] a + (1 - \[Mu]) c];(*假设|CE|/|CA|=\[Mu]*)\!\(\*OverscriptBox[\(e\), \(_\)]\) = Simplify[\[Mu] \!\(\*OverscriptBox[\(a\), \(_\)]\) + (1 - \[Mu]) \!\(\*OverscriptBox[\(c\), \(_\)]\)];
  7. Simplify@Solve[{(b - d) (\!\(\*OverscriptBox[\(b\), \(_\)]\) - \!\(\*OverscriptBox[\(d\), \(_\)]\)) == (c - e) (\!\(\*OverscriptBox[\(c\), \(_\)]\) - \!\(\*OverscriptBox[\(e\), \(_\)]\))}, {\[Mu]}];
  8. \[Mu] = (\[Lambda] u (v - 1) (v + 1))/((u^2 - 1) v); (*人工去掉根式后的结果*)
  9. e = Simplify[\[Mu] a + (1 - \[Mu]) c]; \!\(\*OverscriptBox[\(e\), \(_\)]\) = Simplify[\[Mu] \!\(\*OverscriptBox[\(a\), \(_\)]\) + (1 - \[Mu]) \!\(\*OverscriptBox[\(c\), \(_\)]\)];
  10. (*过A1点、复斜率等于k1的直线,与过A2点、复斜率等于k2的直线的交点*)
  11. Jd[k1_, a1_, k2_, a2_] := -((k2 (a1 - k1 \!\(\*OverscriptBox[\(a1\), \(_\)]\)) - k1 (a2 - k2 \!\(\*OverscriptBox[\(a2\), \(_\)]\)))/(k1 - k2));
  12. \!\(\*OverscriptBox[\(Jd\), \(_\)]\)[k1_, a1_, k2_, a2_] := -((a1 - k1 \!\(\*OverscriptBox[\(a1\), \(_\)]\) - (a2 - k2 \!\(\*OverscriptBox[\(a2\), \(_\)]\)))/(k1 - k2));
  13. k[a_, b_] := (a - b)/(\!\(\*OverscriptBox[\(a\), \(_\)]\) - \!\(\*OverscriptBox[\(b\), \(_\)]\));(*复斜率定义*)
  14. f = Simplify@Jd[k[b, e], b, k[c, d], c]; \!\(\*OverscriptBox[\(f\), \(_\)]\) = Simplify@\!\(\*OverscriptBox[\(Jd\), \(_\)]\)[k[b, e], b, k[c, d], c];
  15. h = Simplify@Jd[k[a, i], a, k[f, g], g]; \!\(\*OverscriptBox[\(h\), \(_\)]\) = Simplify@\!\(\*OverscriptBox[\(Jd\), \(_\)]\)[k[a, i], a, k[f, g], g];
  16. Simplify[Abs[f - g] == Abs[h - g]](*测试HG=HG是否成立*)
复制代码


也可以先设  \(e=μ a+(1-μ) c\),再由已知条件 \(BD=CE\) 求出 \(μ\) 与  \(λ\) 的关系。这样可利用已知的典型构图和其中的公式,不用人工思考如何去求 \(E\) 点的坐标。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-4-1 09:08 | 显示全部楼层

赞!这个解法更直接了当些。
回复 支持 反对

使用道具 举报

发表于 2023-4-1 21:59 | 显示全部楼层

本帖子中包含更多资源

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

x

点评

这个程序运行不稳定。把第一行后两个式子代入到第二行,写到第三行中,第二行仍保留。这样似乎好了。uk702 用的 mathematica 版本高一些吧? 你试试不增加第三行行不行?  发表于 2023-4-2 12:22
新奇 && 巧妙 && 脑力澎湃  发表于 2023-4-1 22:12

评分

参与人数 1威望 +10 收起 理由
uk702 + 10 很给力!

查看全部评分

回复 支持 反对

使用道具 举报

发表于 2023-4-1 22:37 | 显示全部楼层
本帖最后由 denglongshan 于 2023-4-1 23:04 编辑

若AB=CD,E和F分别是AC和BD的中点,则EF与AC和BD的直线夹角都相等,构图与主贴类似。

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

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

5# 楼的程序运行不稳定,第一次运行时肯定出错。按下面图增加一行(有红色注释的那一行),同时上面那一行也仍保留(按说这一行已经失效了),则运行正确。此时去掉增加的那一行,运行仍正确。关闭程序,重新启动运行,在没有增加行的情况下仍出错。增加这一行之后,保存,重新启动程序,则正确。但是运行程序前把增加行的上面一行删除(按说这一行没有用了,应该可以删掉的),仍会出错。
不知何故?参见 5# 楼后面的点评。

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

发表于 2023-4-2 21:11 | 显示全部楼层

本帖子中包含更多资源

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

x

点评

精彩!  发表于 2023-4-2 21:14
回复 支持 反对

使用道具 举报

发表于 2023-4-3 12:41 | 显示全部楼层
对 8# 楼程序第一行的公式来源说明如下:

本帖子中包含更多资源

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

x

点评

谢谢老朋友  发表于 2023-4-3 20:02
回复 支持 反对

使用道具 举报

发表于 2023-4-7 20:50 | 显示全部楼层
  1. Clear["Global`*"]
  2. (*构图:假设B,D,C是自由点,用向量商关系表示线段相等,由BD与EC相交求出A*)

  3. \!\(\*OverscriptBox["b", "_"]\) = b = 0;
  4. \!\(\*OverscriptBox["c", "_"]\) = c = 1; e = d v + 1;
  5. \!\(\*OverscriptBox["e", "_"]\) =
  6. \!\(\*OverscriptBox["d", "_"]\)/v + c;(*假设e^i\[Angle]BAC=
  7. \!\(\*OverscriptBox["CE", "\[RightVector]"]\)/
  8. \!\(\*OverscriptBox["BD", "\[RightVector]"]\)=v*)
  9. g = (b + c)/2;
  10. \!\(\*OverscriptBox["g", "_"]\) = (
  11. \!\(\*OverscriptBox["b", "_"]\) +
  12. \!\(\*OverscriptBox["c", "_"]\))/2;
  13. KAB[a_, b_] := (a - b)/(
  14. \!\(\*OverscriptBox["a", "_"]\) -
  15. \!\(\*OverscriptBox["b", "_"]\));
  16. \!\(\*OverscriptBox["KAB", "_"]\)[a_, b_] := 1/KAB[a, b];(*复斜率定义*)

  17. \!\(\*OverscriptBox["Jd", "_"]\)[k1_, a1_, k2_, a2_] := -((a1 - k1
  18. \!\(\*OverscriptBox["a1", "_"]\) - (a2 - k2
  19. \!\(\*OverscriptBox["a2", "_"]\)))/(
  20.    k1 - k2));(*复斜率等于k1,过点A1与复斜率等于k2,过点A2的直线交点*)
  21. Jd[k1_, a1_, k2_, a2_] := -((k2 (a1 - k1
  22. \!\(\*OverscriptBox["a1", "_"]\)) - k1 (a2 - k2
  23. \!\(\*OverscriptBox["a2", "_"]\)))/(k1 - k2));
  24. FourPoint[a_, b_, c_, d_] := ((
  25. \!\(\*OverscriptBox["c", "_"]\) d - c
  26. \!\(\*OverscriptBox["d", "_"]\)) (a - b) - (
  27. \!\(\*OverscriptBox["a", "_"]\) b - a
  28. \!\(\*OverscriptBox["b", "_"]\)) (c - d))/((a - b) (
  29. \!\(\*OverscriptBox["c", "_"]\) -
  30. \!\(\*OverscriptBox["d", "_"]\)) - (
  31. \!\(\*OverscriptBox["a", "_"]\) -
  32. \!\(\*OverscriptBox["b", "_"]\)) (c - d));(*过两点A和B、C和D的交点*)

  33. \!\(\*OverscriptBox["FourPoint", "_"]\)[a_, b_, c_, d_] := -(((c
  34. \!\(\*OverscriptBox["d", "_"]\) -
  35. \!\(\*OverscriptBox["c", "_"]\) d) (
  36. \!\(\*OverscriptBox["a", "_"]\) -
  37. \!\(\*OverscriptBox["b", "_"]\)) - ( a
  38. \!\(\*OverscriptBox["b", "_"]\) -
  39. \!\(\*OverscriptBox["a", "_"]\) b) (
  40. \!\(\*OverscriptBox["c", "_"]\) -
  41. \!\(\*OverscriptBox["d", "_"]\)))/((a - b) (
  42. \!\(\*OverscriptBox["c", "_"]\) -
  43. \!\(\*OverscriptBox["d", "_"]\)) - (
  44. \!\(\*OverscriptBox["a", "_"]\) -
  45. \!\(\*OverscriptBox["b", "_"]\)) (c - d)));
  46. a = FourPoint[b, d, c, e];
  47. \!\(\*OverscriptBox["a", "_"]\) =
  48. \!\(\*OverscriptBox["FourPoint", "_"]\)[b, d, c, e];
  49. f = FourPoint[c, d, b, e];
  50. \!\(\*OverscriptBox["f", "_"]\) =
  51. \!\(\*OverscriptBox["FourPoint", "_"]\)[c, d, b, e];
  52. h = Jd[KAB[b, d] v, a, KAB[f, g], g];
  53. \!\(\*OverscriptBox["h", "_"]\) =
  54. \!\(\*OverscriptBox["Jd", "_"]\)[KAB[b, d] v, a, KAB[f, g], g];
  55. Simplify[{a, f, g, h, , h + f == 2 g}]
  56. Simplify[{
  57. \!\(\*OverscriptBox["a", "_"]\),
  58. \!\(\*OverscriptBox["f", "_"]\),
  59. \!\(\*OverscriptBox["g", "_"]\),
  60. \!\(\*OverscriptBox["h", "_"]\), ,
  61. \!\(\*OverscriptBox["h", "_"]\) +
  62. \!\(\*OverscriptBox["f", "_"]\) == 2
  63. \!\(\*OverscriptBox["g", "_"]\)}]
复制代码
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-24 05:20 , Processed in 0.090783 second(s), 17 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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