找回密码
 快速注册
搜索
楼主: TSC999

借助 mathematica 在复平面上用解析几何方法作几何题示例(4)

[复制链接]

119

主题

446

回帖

3179

积分

积分
3179

显示全部楼层

 楼主| TSC999 发表于 2023-11-6 12:08
本帖最后由 TSC999 于 2023-11-8 12:51 编辑 例 38:
如图, AB是圆O的对径点,圆O上C, D的切线交于点E,连接AD, BC交于M,延长EM交AB于点N。
求证 : ① EN \[UpTee] AB; ② EC = EM = ED; ③ CNDE 共圆。
老题目图.png
程序代码:
  1. Clear["Global`*"];(*令O为坐标原点,以E、F的坐标为变量*)
  2. \!\(\*OverscriptBox[\(o\), \(_\)]\) = o = 0; \!\(\*OverscriptBox[\(a\), \(_\)]\) = a = -1; \!\(\*OverscriptBox[\(b\), \(_\)]\) = b = 1;
  3. \!\(\*OverscriptBox[\(c\), \(_\)]\) = 1/c; \!\(\*OverscriptBox[\(d\), \(_\)]\) = 1/d; e = (2 c d)/(c + d);
  4. \!\(\*OverscriptBox[\(e\), \(_\)]\) = 2/(c + d);(*圆心为单位圆*)
  5. k[a_, b_] := (a - b)/(\!\(\*OverscriptBox[\(a\), \(_\)]\) - \!\(\*OverscriptBox[\(b\), \(_\)]\)); (*复斜率定义*)
  6. (*过A1点、复斜率等于k1的直线,与过A2点、复斜率等于k2的直线的交点:*)
  7. Jd[k1_, a1_, k2_, a2_] := -((k2 (a1 - k1 \!\(\*OverscriptBox[\(a1\), \(_\)]\)) - k1 (a2 - k2 \!\(\*OverscriptBox[\(a2\), \(_\)]\)))/(k1 - k2));\!\(\*OverscriptBox[\(Jd\), \(_\)]\)[k1_, a1_, k2_, a2_] := -((a1 - k1 \!\(\*OverscriptBox[\(a1\), \(_\)]\) - (a2 - k2 \!\(\*OverscriptBox[\(a2\), \(_\)]\)))/(k1 - k2));
  8. m = Simplify@Jd[k[d, a], a, k[b, c], b]; \!\(\*OverscriptBox[\(m\), \(_\)]\) = Simplify@\!\(\*OverscriptBox[\(Jd\), \(_\)]\)[k[d, a], a, k[b, c], b]; Print["m = ", m];
  9. n = Simplify@Jd[1, a, k[m, e], e]; \!\(\*OverscriptBox[\(n\), \(_\)]\) = Simplify@\!\(\*OverscriptBox[\(Jd\), \(_\)]\)[1, a, k[m, e], e]; Print["n = ", n];
  10. Print["kEM = -kAB 成立否? ", Simplify[k[e, m] == -k[a, b]]];
  11. Print["由于 kEM = -kAB 成立,所以 EN\[UpTee]AB "];
  12. Print["\!\(\*SuperscriptBox[\(EC\), \(2\)]\) = \!\(\*SuperscriptBox[\(EM\), \(2\)]\) = \!\(\*SuperscriptBox[\(ED\), \
  13. \(2\)]\) 成立否? ", FullSimplify[(e - c) (\!\(\*OverscriptBox[\(e\), \(_\)]\) - \!\(\*OverscriptBox[\(c\), \(_\)]\)) == (e - m) (\!\(\*OverscriptBox[\(e\), \(_\)]\) - \!\(\*OverscriptBox[\(m\), \(_\)]\)) == (e - d) (\!\(\*OverscriptBox[\(e\), \(_\)]\) - \!\(\*OverscriptBox[\(d\), \(_\)]\))]];
  14. Print["由于 \!\(\*SuperscriptBox[\(EC\), \(2\)]\) = \!\(\*SuperscriptBox[\(EM\), \(2\)]\) = \!\(\*SuperscriptBox[\(ED\), \
  15. \(2\)]\),所以 EC = EM = ED "];
  16. Print["kCD\[Times]kEN = ", Simplify[k[c, d] k[e, n]]];
  17. Print["kCN\[Times]kED = ", Simplify[k[c, n] k[e, d]]];
  18. Print["由于kCD\[Times]kEN=kCN\[Times]kED,所以 CNDE 共圆 "];
复制代码

程序运行结果:
老题目运行结果.png

119

主题

446

回帖

3179

积分

积分
3179

显示全部楼层

 楼主| TSC999 发表于 2023-11-8 12:59
例 39:
在 Rt△ABC中,∠C = 90 度,外接圆的切线CD交AB于D。E关于AB的对称点是C,CF⊥AE,G是CF中点。
延长AG交圆于H。证明:AD是△CDH外接圆的切线。
相切题图.png
程序代码:
  1. Clear["Global`*"];
  2. \!\(\*OverscriptBox[\(o\), \(_\)]\) = o = 0; \!\(\*OverscriptBox[\(a\), \(_\)]\) = a = -1; \!\(\*OverscriptBox[\(b\), \(_\)]\) = b = 1; kAC = u; kBC = -u;
  3. k[a_, b_] := (a - b)/(\!\(\*OverscriptBox[\(a\), \(_\)]\) - \!\(\*OverscriptBox[\(b\), \(_\)]\)); (*复斜率定义*)
  4. (*过A1点、复斜率等于k1的直线,与过A2点、复斜率等于k2的直线的交点:*)
  5. Jd[k1_, a1_, k2_, a2_] := -((k2 (a1 - k1 \!\(\*OverscriptBox[\(a1\), \(_\)]\)) - k1 (a2 - k2 \!\(\*OverscriptBox[\(a2\), \(_\)]\)))/(k1 - k2));\!\(\*OverscriptBox[\(Jd\), \(_\)]\)[k1_, a1_, k2_, a2_] := -((a1 - k1 \!\(\*OverscriptBox[\(a1\), \(_\)]\) - (a2 - k2 \!\(\*OverscriptBox[\(a2\), \(_\)]\)))/(k1 - k2));
  6. c = Simplify@Jd[kAC, a, kBC, b]; \!\(\*OverscriptBox[\(c\), \(_\)]\) = Simplify@\!\(\*OverscriptBox[\(Jd\), \(_\)]\)[kAC, a, kBC, b];
  7. e = \!\(\*OverscriptBox[\(c\), \(_\)]\); \!\(\*OverscriptBox[\(e\), \(_\)]\) = c;f = Simplify@Jd[k[a, e], a, -k[a, e], c];
  8. \!\(\*OverscriptBox[\(f\), \(_\)]\) = Simplify@\!\(\*OverscriptBox[\(Jd\), \(_\)]\)[k[a, e], a, -k[a, e], c];
  9. g = (c + f)/2; \!\(\*OverscriptBox[\(g\), \(_\)]\) = (\!\(\*OverscriptBox[\(c\), \(_\)]\) + \!\(\*OverscriptBox[\(f\), \(_\)]\))/2;
  10. W1 = {h, \!\(\*OverscriptBox[\(h\), \(_\)]\)} /. Simplify@Solve[{(o - h) (\!\(\*OverscriptBox[\(o\), \(_\)]\) - \!\(\*OverscriptBox[\(h\), \(_\)]\)) == 1, k[a, g] == k[a, h]}, {h, \!\(\*OverscriptBox[\(h\), \(_\)]\)}] // Flatten;
  11. h = Part[W1, 1]; \!\(\*OverscriptBox[\(h\), \(_\)]\) = Part[W1, 2];
  12. d = Simplify@Jd[k[a, b], a, -k[o, c], c]; \!\(\*OverscriptBox[\(d\), \(_\)]\) = Simplify@\!\(\*OverscriptBox[\(Jd\), \(_\)]\)[k[a, b], a, -k[o, c], c];
  13. WX[a_, b_, c_] := (a \!\(\*OverscriptBox[\(a\), \(_\)]\) (c - b) + b \!\(\*OverscriptBox[\(b\), \(_\)]\) (a - c) + c \!\(\*OverscriptBox[\(c\), \(_\)]\) (b - a) )/(\!\(\*OverscriptBox[\(a\), \(_\)]\) (c - b) + \!\(\*OverscriptBox[\(b\), \(_\)]\) (a - c) + \!\(\*OverscriptBox[\(c\), \(_\)]\) (b - a));(*三角形 ABC 的外心坐标:*)   
  14. \!\(\*OverscriptBox[\(WX\), \(_\)]\)[a_, b_, c_] := (\!\(\*OverscriptBox[\(a\), \(_\)]\) \!\(\*OverscriptBox[\(b\), \(_\)]\) (a - b) + \!\(\*OverscriptBox[\(b\), \(_\)]\) \!\(\*OverscriptBox[\(c\), \(_\)]\) (b - c) + \!\(\*OverscriptBox[\(c\), \(_\)]\) \!\(\*OverscriptBox[\(a\), \(_\)]\) (c - a))/(\!\(\*OverscriptBox[\(a\), \(_\)]\) (c - b) + \!\(\*OverscriptBox[\(b\), \(_\)]\) (a - c) + \!\(\*OverscriptBox[\(c\), \(_\)]\) (b - a));
  15. o1 = Simplify@WX[c, h, d]; \!\(\*OverscriptBox[\(o1\), \(_\)]\) = Simplify@\!\(\*OverscriptBox[\(WX\), \(_\)]\)[c, h, d];
  16. Print["O1D\[UpTee]AD 成立否? ", Simplify[k[d, o1] == -k[a, d]]];
  17. Print["由于 O1D\[UpTee]BD 成立,所以 AD是\[EmptyUpTriangle]CDH外接圆的切线。"];
复制代码

程序运行结果:
相切题运行结果.png

119

主题

446

回帖

3179

积分

积分
3179

显示全部楼层

 楼主| TSC999 发表于 2023-11-11 11:35
例 40:
坎迪定理图.png
程序代码:
  1. Clear["Global`*"];(*令 ABCDEF 都在单位圆上且 AB 平行于实轴,用 \[Lambda] = AM/MB 和 \
  2. A、B、D、F 点的坐标为变量 *)
  3. \!\(\*OverscriptBox[\(o\), \(_\)]\) = o = 0; \!\(\*OverscriptBox[\(a\), \(_\)]\) = 1/a; \!\(\*OverscriptBox[\(b\), \(_\)]\) = 1/b;
  4. \!\(\*OverscriptBox[\(d\), \(_\)]\) = 1/d;  \!\(\*OverscriptBox[\(f\), \(_\)]\) = 1/f;
  5. m = \[Lambda] b + (1 - \[Lambda]) a; \!\(\*OverscriptBox[\(m\), \(_\)]\) = \[Lambda] \!\(\*OverscriptBox[\(b\), \(_\)]\) + (1 - \[Lambda]) \!\(\*OverscriptBox[\(a\), \(_\)]\); (*\[Lambda]=AM/MB*)Print["M = ", m];
  6. k[a_, b_] := (a - b)/(\!\(\*OverscriptBox[\(a\), \(_\)]\) - \!\(\*OverscriptBox[\(b\), \(_\)]\)); (*复斜率定义*)
  7. (*FC是圆O上一条弦,M是弦上一点,则:*)
  8. c = o + (\!\(\*OverscriptBox[\(o\), \(_\)]\) - \!\(\*OverscriptBox[\(f\), \(_\)]\)) k[f, m];
  9. \!\(\*OverscriptBox[\(c\), \(_\)]\) = \!\(\*OverscriptBox[\(o\), \(_\)]\) + (o - f)/k[f, m]; Print["C = ",  Simplify[c]];
  10. (*DE是圆O上一条弦,M是弦上一点,则:*)
  11. e = o + (\!\(\*OverscriptBox[\(o\), \(_\)]\) - \!\(\*OverscriptBox[\(d\), \(_\)]\)) k[d, m]; \!\(\*OverscriptBox[\(e\), \(_\)]\) =
  12. \!\(\*OverscriptBox[\(o\), \(_\)]\) + (o - d)/k[d, m]; Print["E = ",  Simplify[e]];
  13. Jd[a_, b_, c_, d_] := (a b (c + d) - c d (a + b))/(a b - c d);
  14. \!\(\*OverscriptBox[\(Jd\), \(_\)]\)[a_, b_, c_, d_] := ( a + b - c - d)/(a b - c d); (*单位圆上AB弦与CD弦的交点*)
  15. p = Simplify@Jd[a, b, c, d]; \!\(\*OverscriptBox[\(p\), \(_\)]\) = Simplify@\!\(\*OverscriptBox[\(Jd\), \(_\)]\)[a, b, c, d];
  16. q = Simplify@Jd[a, b, e, f]; \!\(\*OverscriptBox[\(q\), \(_\)]\) = Simplify@\!\(\*OverscriptBox[\(Jd\), \(_\)]\)[a, b, e, f];
  17. Print["P = ", p]; Print["Q = ", q];
  18. (* 设AB与实轴平行,则AM的长度等于M的实部减去A的实部,BM、PM、QM的长度表达式类似 *)
  19. AM = Simplify[(m + \!\(\*OverscriptBox[\(m\), \(_\)]\))/2 - (a + \!\(\*OverscriptBox[\(a\), \(_\)]\))/2]; BM = Simplify[(b + \!\(\*OverscriptBox[\(b\), \(_\)]\))/2 - (m + \!\(\*OverscriptBox[\(m\), \(_\)]\))/2];
  20. PM = Simplify[(m + \!\(\*OverscriptBox[\(m\), \(_\)]\))/2 - (p + \!\(\*OverscriptBox[\(p\), \(_\)]\))/2]; QM = Simplify[(q + \!\(\*OverscriptBox[\(q\), \(_\)]\))/2 - (m + \!\(\*OverscriptBox[\(m\), \(_\)]\))/2];
  21. Print["AM = ", AM]; Print["BM = ", BM];
  22. Print["PM = ", PM]; Print["QM = ", QM];
  23. Print["\!\(\*FractionBox[\(1\), \(AM\)]\)-\!\(\*FractionBox[\(1\), \(BM\)]\) = \!\(\*FractionBox[\(1\), \
  24. \(PM\)]\)-\!\(\*FractionBox[\(1\), \(QM\)]\) 成立否?",
  25.   Simplify[1/AM - 1/BM == 1/PM - 1/QM]];
复制代码

程序运行结果:
坎迪定理程序运行结果.png

119

主题

446

回帖

3179

积分

积分
3179

显示全部楼层

 楼主| TSC999 发表于 2023-11-11 13:55
例 41:
△ABC是等腰直角三角形,D∈BC 且 BD=BC/3,以D为圆心以DB为半径作圆D,E∈圆D,连接 AE、CE,以CE为斜边在其一侧作等腰直角三角形CEF,连接 AF。当 B、E、F 三点共线时,证明 AECF 是平行四边形。
证明是平行四边形题.png
  1. Clear["Global`*"];(*设 DE 的复斜率为 u^2*)
  2. \!\(\*OverscriptBox[\(d\), \(_\)]\) = d = 0; \!\(\*OverscriptBox[\(b\), \(_\)]\) = b = -1; \!\(\*OverscriptBox[\(c\), \(_\)]\) = c = 2; a = 0.5 + 1.5 I; \!\(\*OverscriptBox[\(a\), \(_\)]\) = 0.5 - 1.5 I;
  3. k[a_, b_] := (a - b)/(\!\(\*OverscriptBox[\(a\), \(_\)]\) - \!\(\*OverscriptBox[\(b\), \(_\)]\)); (*复斜率定义*)
  4. Solve[{(d - e) (\!\(\*OverscriptBox[\(d\), \(_\)]\) - \!\(\*OverscriptBox[\(e\), \(_\)]\)) == 1, k[d, e] == u^2}, {e, \!\(\*OverscriptBox[\(e\), \(_\)]\)}]; e = u; \!\(\*OverscriptBox[\(e\), \(_\)]\) = 1/u;
  5. Solve[{k[b, e] == k[b, f], -k[b, f] == k[c, f]}, {f, \!\(\*OverscriptBox[\(f\), \(_\)]\)}]; f = 1/2 (3 u + 1); \!\(\*OverscriptBox[\(f\), \(_\)]\) = (u + 3)/(2 u);
  6. Solve[{(f - e) (\!\(\*OverscriptBox[\(f\), \(_\)]\) - \!\(\*OverscriptBox[\(e\), \(_\)]\)) == (f - c) (\!\(\*OverscriptBox[\(f\), \(_\)]\) -
  7. \!\(\*OverscriptBox[\(c\), \(_\)]\))}, {u}]; u = 4/5 + (3 I)/5;e = u; \!\(\*OverscriptBox[\(e\), \(_\)]\) = 1/u; f = 1/2 (3 u + 1);
  8. \!\(\*OverscriptBox[\(f\), \(_\)]\) = (u + 3)/(2 u);
  9. Print["复斜率 kAE = kFC 成立否? ", Simplify[k[a, e] == k[f, c]]];
  10. Print["复斜率 kAF = kEC 成立否? ", Simplify[k[a, f] == k[e, c]]];
  11. Print["由于四边形 AECF 两对边的复斜率相等,所以这个四边形为平行四边形。"];
复制代码

运行结果:
证明是平行四边形结果.png

119

主题

446

回帖

3179

积分

积分
3179

显示全部楼层

 楼主| TSC999 发表于 2023-11-13 10:29
例 42:
如图,圆O 为△ABC 的外接圆,BM⊥AC,CN⊥AB,E=BM ∩ AC,F=CN ∩ AB,D 为 BC 中点,P=DE ∩ CM,Q=DF ∩ BN,G∈BC 满足 QGDP 四点共圆,J=OB ∩ QG,K=OC ∩ PG,X=JK ∩ AC,Y=JK ∩ AB,L=PX ∩ QY,证明 A、O、L 三点共线。
AOL题.png
  1. Clear["Global`*"]; (*令△ABC的外接圆为单位圆O,BC边平行于实轴,AB、AC的复斜率分别为 u^2、v^2 *)
  2. \!\(\*OverscriptBox[\(o\), \(_\)]\) = o = 0; a = I u v;   \!\(\*OverscriptBox[\(a\), \(_\)]\) = 1/(I u v); b = (I u)/v;  
  3. \!\(\*OverscriptBox[\(b\), \(_\)]\) = v/(I u);  c = (I v)/u;  \!\(\*OverscriptBox[\(c\), \(_\)]\) = u/(I v);
  4. d = (b + c)/2; \!\(\*OverscriptBox[\(d\), \(_\)]\) = (\!\(\*OverscriptBox[\(b\), \(_\)]\) + \!\(\*OverscriptBox[\(c\), \(_\)]\))/2;
  5. Foot[p_, a_, b_] := p/2 + ( \!\(\*OverscriptBox[\(a\), \(_\)]\) b - a \!\(\*OverscriptBox[\(b\), \(_\)]\) + \!\(\*OverscriptBox[\(p\), \(_\)]\) (a - b))/(2 (\!\(\*OverscriptBox[\(a\), \(_\)]\) - \!\(\*OverscriptBox[\(b\), \(_\)]\)));  (* 从P点向AB直线引垂线,垂足的复坐标 *)
  6. \!\(\*OverscriptBox[\(Foot\), \(_\)]\)[p_, a_, b_] := \!\(\*OverscriptBox[\(p\), \(_\)]\)/2 + (a \!\(\*OverscriptBox[\(b\), \(_\)]\) - \!\(\*OverscriptBox[\(a\), \(_\)]\) b + p (\!\(\*OverscriptBox[\(a\), \(_\)]\) - \!\(\*OverscriptBox[\(b\), \(_\)]\)))/(2 (a - b));  
  7. e = Simplify@Foot[b, a, c]; \!\(\*OverscriptBox[\(e\), \(_\)]\) = Simplify@\!\(\*OverscriptBox[\(Foot\), \(_\)]\)[b, a, c];
  8. f = Simplify@Foot[c, a, b]; \!\(\*OverscriptBox[\(f\), \(_\)]\) = Simplify@\!\(\*OverscriptBox[\(Foot\), \(_\)]\)[c, a, b];
  9. k[a_, b_] := (a - b)/(\!\(\*OverscriptBox[\(a\), \(_\)]\) - \!\(\*OverscriptBox[\(b\), \(_\)]\)); (*复斜率定义*)
  10. W1 = {m, \!\(\*OverscriptBox[\(m\), \(_\)]\)} /. Simplify@Solve[{(o - m) (\!\(\*OverscriptBox[\(o\), \(_\)]\) - \!\(\*OverscriptBox[\(m\), \(_\)]\)) == 1, k[b, e] == k[b, m]}, {m, \!\(\*OverscriptBox[\(m\), \(_\)]\)}] // Flatten;
  11. m = Part[W1, 1]; \!\(\*OverscriptBox[\(m\), \(_\)]\) = Part[W1, 2];
  12. W2 = {n, \!\(\*OverscriptBox[\(n\), \(_\)]\)} /. Simplify@Solve[{(o - n) (\!\(\*OverscriptBox[\(o\), \(_\)]\) - \!\(\*OverscriptBox[\(n\), \(_\)]\)) == 1, k[c, f] == k[c, n]}, {n, \!\(\*OverscriptBox[\(n\), \(_\)]\)}] // Flatten;
  13. n = Part[W2, 1]; \!\(\*OverscriptBox[\(n\), \(_\)]\) = Part[W2, 2];
  14. (*过A1点、复斜率等于k1的直线,与过A2点、复斜率等于k2的直线的交点:*)
  15. Jd[k1_, a1_, k2_, a2_] := -((k2 (a1 - k1 \!\(\*OverscriptBox[\(a1\), \(_\)]\)) - k1 (a2 - k2 \!\(\*OverscriptBox[\(a2\), \(_\)]\)))/(k1 - k2));\!\(\*OverscriptBox[\(Jd\), \(_\)]\)[k1_, a1_, k2_, a2_] := -((a1 - k1 \!\(\*OverscriptBox[\(a1\), \(_\)]\) - (a2 - k2 \!\(\*OverscriptBox[\(a2\), \(_\)]\)))/(k1 - k2));
  16. p = Simplify@Jd[k[d, e], d, k[c, m], c]; \!\(\*OverscriptBox[\(p\), \(_\)]\) = Simplify@\!\(\*OverscriptBox[\(Jd\), \(_\)]\)[k[d, e], d, k[c, m], c];q = Simplify@Jd[k[d, f], d, k[b, n], b]; \!\(\*OverscriptBox[\(q\), \(_\)]\) = Simplify@\!\(\*OverscriptBox[\(Jd\), \(_\)]\)[k[d, f], d, k[b, n], b];
  17. WX[a_, b_, c_] := (a \!\(\*OverscriptBox[\(a\), \(_\)]\) (c - b) + b \!\(\*OverscriptBox[\(b\), \(_\)]\) (a - c) + c \!\(\*OverscriptBox[\(c\), \(_\)]\) (b - a) )/(\!\(\*OverscriptBox[\(a\), \(_\)]\) (c - b) + \!\(\*OverscriptBox[\(b\), \(_\)]\) (a - c) +
  18. \!\(\*OverscriptBox[\(c\), \(_\)]\) (b - a));(*三角形 ABC 的外心坐标:*)   
  19. \!\(\*OverscriptBox[\(WX\), \(_\)]\)[a_, b_, c_] := (\!\(\*OverscriptBox[\(a\), \(_\)]\) \!\(\*OverscriptBox[\(b\), \(_\)]\) (a - b) +
  20. \!\(\*OverscriptBox[\(b\), \(_\)]\) \!\(\*OverscriptBox[\(c\), \(_\)]\) (b - c) + \!\(\*OverscriptBox[\(c\), \(_\)]\)
  21. \!\(\*OverscriptBox[\(a\), \(_\)]\) (c - a))/(\!\(\*OverscriptBox[\(a\), \(_\)]\) (c - b) + \!\(\*OverscriptBox[\(b\), \(_\)]\) (a - c) +
  22. \!\(\*OverscriptBox[\(c\), \(_\)]\) (b - a));
  23. o1 = Simplify@WX[p, q, d]; \!\(\*OverscriptBox[\(o1\), \(_\)]\) = Simplify@\!\(\*OverscriptBox[\(WX\), \(_\)]\)[p, q, d];
  24. W3 = {g, \!\(\*OverscriptBox[\(g\), \(_\)]\)} /. Simplify@Solve[{(o1 - g) (\!\(\*OverscriptBox[\(o1\), \(_\)]\) - \!\(\*OverscriptBox[\(g\), \(_\)]\)) == (o1 - d) (\!\(\*OverscriptBox[\(o1\), \(_\)]\) - \!\(\*OverscriptBox[\(d\), \(_\)]\)), k[b, g] == k[b, c], g != d}, {g,
  25. \!\(\*OverscriptBox[\(g\), \(_\)]\)}] // Flatten;g = Part[W3, 1]; \!\(\*OverscriptBox[\(g\), \(_\)]\) = Part[W3, 2];
  26. j = Simplify@Jd[k[o, b], o, k[g, q], g]; \!\(\*OverscriptBox[\(j\), \(_\)]\) = Simplify@\!\(\*OverscriptBox[\(Jd\), \(_\)]\)[k[o, b], o, k[g, q], g];K = Simplify@Jd[k[o, c], o, k[g, p], g]; \!\(\*OverscriptBox[\(K\), \(_\)]\) = Simplify@\!\(\*OverscriptBox[\(Jd\), \(_\)]\)[k[o, c], o, k[g, p], g];
  27. x = Simplify@Jd[k[j, K], j, k[a, c], c]; \!\(\*OverscriptBox[\(x\), \(_\)]\) = Simplify@\!\(\*OverscriptBox[\(Jd\), \(_\)]\)[k[j, K], j, k[a, c], c];
  28. y = Simplify@Jd[k[j, K], j, k[a, b], b]; \!\(\*OverscriptBox[\(y\), \(_\)]\) = Simplify@\!\(\*OverscriptBox[\(Jd\), \(_\)]\)[k[j, K], j, k[a, b], b];
  29. L = Simplify@Jd[k[p, x], p, k[q, y], q]; \!\(\*OverscriptBox[\(L\), \(_\)]\) = Simplify@\!\(\*OverscriptBox[\(Jd\), \(_\)]\)[k[p, x], p, k[q, y], q];
  30. Print["AO的复斜率 kAO = ", Simplify[k[a, o]]];
  31. Print["AL的复斜率 kAL = ", Simplify[k[a, L]]];
  32. Print["由于 kAO = kAL,所以 AOL 三点共线。"];
复制代码

运行结果:
AOL题结果.png

119

主题

446

回帖

3179

积分

积分
3179

显示全部楼层

 楼主| TSC999 发表于 2023-11-16 11:20
例 43:
三个圆 O1、O2、O3 两两相切,切点为 D、E、F,∠DEF =π/3,△O1O2O3的内切圆半径为 \(2\sqrt{3}\),
外接圆半径为 6 +\(2\sqrt{3}\),求 O1、O2、O3 各圆半径。
求三圆半径题图.png
  1. Clear["Global`*"];(*令△ABC的内切圆心 I 为单位圆,且BC边与实轴平行*)
  2. \[Lambda] = 2 Sqrt[3]; K = E^(2 I \[Pi]/3); K = (-1/2 + I Sqrt[3]/2);
  3. \!\(\*OverscriptBox[\(i\), \(_\)]\) =  i = 0; o3 = \[Lambda] ((u + v) + I (v u - 1))/(u v + 1);
  4. \!\(\*OverscriptBox[\(o3\), \(_\)]\) = \[Lambda] ((u + v) -  I (v u - 1))/(u v + 1);
  5. o2 = \[Lambda] (u - I); \!\(\*OverscriptBox[\(o2\), \(_\)]\) = \[Lambda] (u + I); o1 = \[Lambda] (v - I);
  6. \!\(\*OverscriptBox[\(o1\), \(_\)]\) = \[Lambda] (v + I);
  7. (*三个切点:*)  d = -\[Lambda] I; \!\(\*OverscriptBox[\(d\), \(_\)]\) = \[Lambda] I; e = \[Lambda] ( I (v - I))/(v + I);
  8. \!\(\*OverscriptBox[\(e\), \(_\)]\) = \[Lambda] (-I (v + I))/(v - I); f = \[Lambda] (I (u - I))/(u + I);
  9. \!\(\*OverscriptBox[\(f\), \(_\)]\) = \[Lambda] (-I (u + I))/(u - I);  (*外接圆半径:*) R = -\[Lambda] ((1 + u^2) (1 + v^2))/(
  10.   4 (1 + u v));
  11. k[a_, b_] := (a - b)/(\!\(\*OverscriptBox[\(a\), \(_\)]\) - \!\(\*OverscriptBox[\(b\), \(_\)]\)); (*复斜率定义*)
  12. W1 = {u, v} /. Simplify@Solve[{R == 6 + 2 Sqrt[3], k[f, e] K == k[d, e]}, {u, v}] //Flatten; u = Part[W1, 3]; v = Part[W1, 4];
  13. o3 = Simplify[\[Lambda] ((u + v) + I (v u - 1))/(u v + 1)];
  14. \!\(\*OverscriptBox[\(o3\), \(_\)]\) = Simplify[\[Lambda] ((u + v) - I (v u - 1))/(u v + 1)];
  15. o2 = Simplify[\[Lambda] (u - I)]; \!\(\*OverscriptBox[\(o2\), \(_\)]\) =  Simplify[\[Lambda] (u + I)]; o1 = Simplify[\[Lambda] (v - I)]; \!\(\*OverscriptBox[\(o1\), \(_\)]\) = Simplify[\[Lambda] (v + I)];
  16. d = -\[Lambda] I; \!\(\*OverscriptBox[\(d\), \(_\)]\) = \[Lambda] I; e = Simplify[\[Lambda] (I (v - I))/(v + I)];
  17. \!\(\*OverscriptBox[\(e\), \(_\)]\) = Simplify[\[Lambda] (-I (v + I))/(v - I)];
  18. f = Simplify[\[Lambda] (I (u - I))/(u + I)]; \!\(\*OverscriptBox[\(f\), \(_\)]\) =  Simplify[\[Lambda] (-I (u + I))/(u - I)];  
  19. Print["O1 = ", o1]; Print["O2 = ", o2]; Print["O3 = ", o3];
  20. Print["D = ", d]; Print["E = ", e]; Print["F = ", f];
  21. Print["r1 = ", FullSimplify[Sqrt[(o1 - d) (\!\(\*OverscriptBox[\(o1\), \(_\)]\) - \!\(\*OverscriptBox[\(d\), \(_\)]\))]], " \[TildeTilde] ",
  22.   N[Re@Sqrt[(o1 - d) (\!\(\*OverscriptBox[\(o1\), \(_\)]\) - \!\(\*OverscriptBox[\(d\), \(_\)]\))]]];
  23. Print["r2 = ", FullSimplify[Sqrt[(o2 - d) (\!\(\*OverscriptBox[\(o2\), \(_\)]\) - \!\(\*OverscriptBox[\(d\), \(_\)]\))]]];
  24. Print["r3 = ", FullSimplify[Sqrt[(o3 - e) (\!\(\*OverscriptBox[\(o3\), \(_\)]\) - \!\(\*OverscriptBox[\(e\), \(_\)]\))]], " \[TildeTilde] ",
  25.   N[Re@Sqrt[(o3 - e) (\!\(\*OverscriptBox[\(o3\), \(_\)]\) - \!\(\*OverscriptBox[\(e\), \(_\)]\))]]];
复制代码

运行结果:
求三圆半径题运行结果.png

119

主题

446

回帖

3179

积分

积分
3179

显示全部楼层

 楼主| TSC999 发表于 2023-11-25 10:27
本帖最后由 TSC999 于 2023-11-28 11:23 编辑 例 44:
证明角CPD等于角CPE解答.png
上述证明中用到了复斜率的一个性质:一个角两边的复斜率之积,等于它的角平分线复斜率的平方。

  1. Clear["Global`*"];(*设O为单位圆,OP与实轴重合,OA的复斜率为u^2,DE的复斜率为v^2*)
  2. \!\(\*OverscriptBox[\(o\), \(_\)]\) = o = 0; kOA = u^2;  kDE = v^2;
  3. k[a_, b_] := (a - b)/(\!\(\*OverscriptBox[\(a\), \(_\)]\) - \!\(\*OverscriptBox[\(b\), \(_\)]\)); (*复斜率定义*)
  4. Solve[{(o - a) (\!\(\*OverscriptBox[\(o\), \(_\)]\) - \!\(\*OverscriptBox[\(a\), \(_\)]\)) == 1, k[o, a] == u^2}, {a, \!\(\*OverscriptBox[\(a\), \(_\)]\)}];
  5. a = u; \!\(\*OverscriptBox[\(a\), \(_\)]\) = 1/u; b = \!\(\*OverscriptBox[\(a\), \(_\)]\);  \!\(\*OverscriptBox[\(b\), \(_\)]\) = a; c = (a + b)/2; \!\(\*OverscriptBox[\(c\), \(_\)]\) = c;
  6. (*过A1点、复斜率等于k1的直线,与过A2点、复斜率等于k2的直线的交点:*)
  7. Jd[k1_, a1_, k2_, a2_] := -((k2 (a1 - k1 \!\(\*OverscriptBox[\(a1\), \(_\)]\)) - k1 (a2 - k2 \!\(\*OverscriptBox[\(a2\), \(_\)]\)))/(k1 - k2));\!\(\*OverscriptBox[\(Jd\), \(_\)]\)[k1_, a1_, k2_, a2_] := -((a1 - k1 \!\(\*OverscriptBox[\(a1\), \(_\)]\) - (a2 - k2 \!\(\*OverscriptBox[\(a2\), \(_\)]\)))/(k1 - k2));
  8. p = Simplify@Jd[-k[o, a], a, 1, o]; \!\(\*OverscriptBox[\(p\), \(_\)]\) = p;
  9. W1 = {z, \!\(\*OverscriptBox[\(z\), \(_\)]\)} /. Simplify@Solve[{(o - z) (\!\(\*OverscriptBox[\(o\), \(_\)]\) - \!\(\*OverscriptBox[\(z\), \(_\)]\)) == 1, k[z, c] == v^2}, {z, \!\(\*OverscriptBox[\(z\), \(_\)]\)}] // Flatten ;
  10. d = Part[W1, 1]; \!\(\*OverscriptBox[\(d\), \(_\)]\) = Part[W1, 2]; e = Part[W1, 3]; \!\(\*OverscriptBox[\(e\), \(_\)]\) = Part[W1, 4];
  11. Print["OP是否为\[Angle]DPE的平分线?",
  12.   Simplify[k[p, d] k[p, e] == k[o, p]^2]];
复制代码

119

主题

446

回帖

3179

积分

积分
3179

显示全部楼层

 楼主| TSC999 发表于 2023-11-28 11:23
本帖最后由 TSC999 于 2023-11-28 11:47 编辑 例 45:
正方形 ABCD 的边长为 6,E 是 AB 的中点,F、G 是 CD 的三等分点。求四边形 PQRS 的面积。
求四边形的面积图.png
求四边形的面积.png
  1. Clear["Global`*"];
  2. \!\(\*OverscriptBox[\(d\), \(_\)]\) = d = 0;  \!\(\*OverscriptBox[\(c\), \(_\)]\) = c = 6; b = 6 + 6 I;
  3. \!\(\*OverscriptBox[\(b\), \(_\)]\) = 6 - 6 I; a = 6 I; \!\(\*OverscriptBox[\(a\), \(_\)]\) = -6 I;
  4. e = 3 + 6 I; \!\(\*OverscriptBox[\(e\), \(_\)]\) = 3 - 6 I; \!\(\*OverscriptBox[\(f\), \(_\)]\) = f = 2;
  5. \!\(\*OverscriptBox[\(g\), \(_\)]\) = g = 4;
  6. k[a_, b_] := (a - b)/(\!\(\*OverscriptBox[\(a\), \(_\)]\) - \!\(\*OverscriptBox[\(b\), \(_\)]\)); (*复斜率定义*)
  7. (*过A1点、复斜率等于k1的直线,与过A2点、复斜率等于k2的直线的交点:*)
  8. Jd[k1_, a1_, k2_, a2_] := -((k2 (a1 - k1 \!\(\*OverscriptBox[\(a1\), \(_\)]\)) - k1 (a2 - k2 \!\(\*OverscriptBox[\(a2\), \(_\)]\)))/(k1 - k2));\!\(\*OverscriptBox[\(Jd\), \(_\)]\)[k1_, a1_, k2_, a2_] := -((a1 - k1 \!\(\*OverscriptBox[\(a1\), \(_\)]\) - (a2 - k2 \!\(\*OverscriptBox[\(a2\), \(_\)]\)))/(k1 - k2));
  9. p = Simplify@Jd[k[d, e], d, k[a, g], a]; \!\(\*OverscriptBox[\(p\), \(_\)]\) = Simplify@\!\(\*OverscriptBox[\(Jd\), \(_\)]\)[k[d, e], d, k[a, g], a];
  10. q = Simplify@Jd[k[d, b], d, k[a, g], a]; \!\(\*OverscriptBox[\(q\), \(_\)]\) = Simplify@\!\(\*OverscriptBox[\(Jd\), \(_\)]\)[k[d, b], d, k[a, g], a];
  11. r = Simplify@Jd[k[d, b], d, k[a, f], a]; \!\(\*OverscriptBox[\(r\), \(_\)]\) = Simplify@\!\(\*OverscriptBox[\(Jd\), \(_\)]\)[k[d, b], d, k[a, f], a];
  12. s = Simplify@Jd[k[d, e], d, k[a, f], a]; \!\(\*OverscriptBox[\(s\), \(_\)]\) = Simplify@\!\(\*OverscriptBox[\(Jd\), \(_\)]\)[k[d, e], d, k[a, f], a];
  13. S[a_, b_, c_, d_] := 1/4 I ((a - c) (\!\(\*OverscriptBox[\(b\), \(_\)]\) - \!\(\*OverscriptBox[\(d\), \(_\)]\)) - (b - d) (\!\(\*OverscriptBox[\(a\), \(_\)]\) - \!\(\*OverscriptBox[\(c\), \(_\)]\)));(*已知凸四边形各顶点坐标,求其有向面积,ABCD逆时针向环绕*)
  14. Print["四边形 PQRS 的面积 \!\(\*SubscriptBox[\(S\), \(PQRS\)]\) = ", -S[p, q, r, s]];
  15. Print["P 点的坐标 = ", p];Print["Q 点的坐标 = ", q];Print["R 点的坐标 = ", r];Print["S 点的坐标 = ", s];
复制代码

119

主题

446

回帖

3179

积分

积分
3179

显示全部楼层

 楼主| TSC999 发表于 2023-12-4 21:25
例 46:
求三角形各内角题图.png
  1. Clear["Global`*"];(*令B为坐标原点,a=-1; c=-\[ImaginaryI]; BF的复斜率为u^2;BF的长度为L; 由\[Angle]EFA=60\[Degree]可求得E点坐标,再由CD=DE和\[Angle]CDE=30\[Degree]可求得D点坐标*)
  2. \!\(\*OverscriptBox[\(b\), \(_\)]\) = b = 0; \!\(\*OverscriptBox[\(a\), \(_\)]\) = a = -1; c = -I; \!\(\*OverscriptBox[\(c\), \(_\)]\) = I;
  3. k[a_, b_] := (a - b)/(\!\(\*OverscriptBox[\(a\), \(_\)]\) - \!\(\*OverscriptBox[\(b\), \(_\)]\)); (*复斜率定义*)
  4. W1 = {f, \!\(\*OverscriptBox[\(f\), \(_\)]\)} /. Simplify@Solve[{(b - f) (\!\(\*OverscriptBox[\(b\), \(_\)]\) - \!\(\*OverscriptBox[\(f\), \(_\)]\)) == L^2, k[b, f] == u^2}, {f, \!\(\*OverscriptBox[\(f\), \(_\)]\)}] // Flatten;
  5. f = Part[W1, 3]; \!\(\*OverscriptBox[\(f\), \(_\)]\) = Part[W1, 4];
  6. W2 = {e, \!\(\*OverscriptBox[\(e\), \(_\)]\)} /. Simplify@Solve[{(f - e) (\!\(\*OverscriptBox[\(f\), \(_\)]\) - \!\(\*OverscriptBox[\(e\), \(_\)]\)) == (a - f) (\!\(\*OverscriptBox[\(a\), \(_\)]\) - \!\(\*OverscriptBox[\(f\), \(_\)]\)), k[f, e] == k[a, f] E^(2 I (60/180 \[Pi]))}, {e, \!\(\*OverscriptBox[\(e\), \(_\)]\)}] // Flatten;
  7. e = Part[W2, 1]; \!\(\*OverscriptBox[\(e\), \(_\)]\) = Part[W2, 2];
  8. (*CE的中点坐标:*)mCE = (c + e)/2; \!\(\*OverscriptBox[\(mCE\), \(_\)]\) = (\!\(\*OverscriptBox[\(c\), \(_\)]\) + \!\(\*OverscriptBox[\(e\), \(_\)]\))/2;
  9. (*过A1点、复斜率等于k1的直线,与过A2点、复斜率等于k2的直线的交点:*)
  10. Jd[k1_, a1_, k2_, a2_] := -((k2 (a1 - k1 \!\(\*OverscriptBox[\(a1\), \(_\)]\)) - k1 (a2 - k2 \!\(\*OverscriptBox[\(a2\), \(_\)]\)))/(k1 - k2));\!\(\*OverscriptBox[\(Jd\), \(_\)]\)[k1_, a1_, k2_, a2_] := -((a1 - k1 \!\(\*OverscriptBox[\(a1\), \(_\)]\) - (a2 - k2 \!\(\*OverscriptBox[\(a2\), \(_\)]\)))/(k1 - k2));
  11. d = Simplify@Jd[-k[c, e], mCE, k[c, e] E^(-2 I (75/180 \[Pi])), c] ;
  12. \!\(\*OverscriptBox[\(d\), \(_\)]\) = Simplify@\!\(\*OverscriptBox[\(Jd\), \(_\)]\)[-k[c, e], mCE, k[c, e] E^(-2 I (75/180 \[Pi])), c] ;
  13. \[Angle][a_, b_, c_] := ArcTan[(I (\!\(\*OverscriptBox[\(a\), \(_\)]\) (c - b) + \!\(\*OverscriptBox[\(b\), \(_\)]\) (a - c) + \!\(\*OverscriptBox[\(c\), \(_\)]\) (b - a)))/(\!\(\*OverscriptBox[\(a\), \(_\)]\) (b - c) + \!\(\*OverscriptBox[\(b\), \(_\)]\) (a - 2 b + c) + \!\(\*OverscriptBox[\(c\), \(_\)]\) (b - a))];(*从AB边逆时针转到BC边的有向角\[Angle]ABC的角度值:*)
  14. Print["\[Angle]FBD = ", FullSimplify[\[Pi] - \[Angle][f, b, d]]];
  15. Print["\[Angle]BFD = ", FullSimplify[\[Angle][b, f, d]]];
  16. Print["\[Angle]BDF = ", FullSimplify[\[Angle][f, d, b]]];
复制代码

运行结果:
求三角形各内角题运行结果.png

119

主题

446

回帖

3179

积分

积分
3179

显示全部楼层

 楼主| TSC999 发表于 2023-12-9 12:42
例 47:
在 △ABC 中,K 是 BC 延长线上一点,过 K 分别作 AB、AC 的平行线 KP、KQ,满足 BK = BP,CK = CQ。
设 △KPQ 的外接圆与 AK 交于 T 点, 证明:① ∠BTC+∠APB = ∠CQA;   ② AP  BT  CQ = AQ  CT  BP。
题图.png
用复斜率解析几何方法做很容易。解题思路是,假定先有 △KPQ,令其外接圆为单位圆,其圆心 O 在坐标原点。QP 边平行于实轴,KQ、KP 的复斜率分别为 u^2、v^2。 M、N 分别为 KP、KQ 的中点。在 ON 上任取一点 C,则 CK = CQ。B = KC ∩ MO。则 BK = BP。作 CA // QK,BA // PK,T = KA ∩ 圆O。如此,各点坐标都可求出。
证明 ① 时,只须证明 ∠CQA 两边的复斜率之比等于∠BTC 两边的复斜率之比乘以∠APB 两边的复斜率之比。
证明 ② 时,只须证明  AP^2  BT^2  CQ^2 = AQ^2  CT^2  BP^2 即可。
程序代码:
  1. Clear["Global`*"];(*令△KPQ的外接圆为单位圆O,QP边平行于实轴,KQ、KP的复斜率分别为 u^2、v^2 *)
  2. \!\(\*OverscriptBox[\(o\), \(_\)]\) = o = 0; k = I u v;   \!\(\*OverscriptBox[\(k\), \(_\)]\) = 1/(I u v); q = (I u)/v;  
  3. \!\(\*OverscriptBox[\(q\), \(_\)]\) = v/(I u);  p = (I v)/u;  \!\(\*OverscriptBox[\(p\), \(_\)]\) = u/(I v);
  4. n = (k + q)/2; \!\(\*OverscriptBox[\(n\), \(_\)]\) = (\!\(\*OverscriptBox[\(k\), \(_\)]\) + \!\(\*OverscriptBox[\(q\), \(_\)]\))/2; m = (k + p)/2; \!\(\*OverscriptBox[\(m\), \(_\)]\) = (\!\(\*OverscriptBox[\(k\), \(_\)]\) + \!\(\*OverscriptBox[\(p\), \(_\)]\))/2;
  5. c = \[Lambda] n; (*\[Lambda]=OC/ON*) \!\(\*OverscriptBox[\(c\), \(_\)]\) = \[Lambda] \!\(\*OverscriptBox[\(n\), \(_\)]\);
  6. K[a_, b_] := (a - b)/(\!\(\*OverscriptBox[\(a\), \(_\)]\) - \!\(\*OverscriptBox[\(b\), \(_\)]\)); (*复斜率定义*)
  7. (*过A1点、复斜率等于k1的直线,与过A2点、复斜率等于k2的直线的交点:*)
  8. Jd[k1_, a1_, k2_, a2_] := -((k2 (a1 - k1 \!\(\*OverscriptBox[\(a1\), \(_\)]\)) - k1 (a2 - k2 \!\(\*OverscriptBox[\(a2\), \(_\)]\)))/(k1 - k2));\!\(\*OverscriptBox[\(Jd\), \(_\)]\)[k1_, a1_, k2_, a2_] := -((a1 - k1 \!\(\*OverscriptBox[\(a1\), \(_\)]\) - (a2 - k2 \!\(\*OverscriptBox[\(a2\), \(_\)]\)))/(k1 - k2));
  9. b = Simplify@Jd[K[c, k], k, K[m, o], o]; \!\(\*OverscriptBox[\(b\), \(_\)]\) = Simplify@\!\(\*OverscriptBox[\(Jd\), \(_\)]\)[K[c, k], k, K[m, o], o];
  10. a = Simplify@Jd[K[q, k], c, K[p, k], b]; \!\(\*OverscriptBox[\(a\), \(_\)]\) = Simplify@\!\(\*OverscriptBox[\(Jd\), \(_\)]\)[K[q, k], c, K[p, k], b];
  11. W1 = {t, \!\(\*OverscriptBox[\(t\), \(_\)]\)} /. Simplify@Solve[{(o - t) (\!\(\*OverscriptBox[\(o\), \(_\)]\) - \!\(\*OverscriptBox[\(t\), \(_\)]\)) == 1, K[k, a] == K[k, t]}, {t, \!\(\*OverscriptBox[\(t\), \(_\)]\)}] // Flatten;
  12. t = Part[W1, 1]; \!\(\*OverscriptBox[\(t\), \(_\)]\) = Part[W1, 2];
  13. Simplify[K[q, a]/K[q, c] == K[t, b]/K[t, c] K[p, a]/K[p, b]]
  14. AP2 = Simplify[(a - p) (\!\(\*OverscriptBox[\(a\), \(_\)]\) - \!\(\*OverscriptBox[\(p\), \(_\)]\))]; BT2 = Simplify[(b - t) (\!\(\*OverscriptBox[\(b\), \(_\)]\) - \!\(\*OverscriptBox[\(t\), \(_\)]\))]; CQ2 = Simplify[(c - q) (\!\(\*OverscriptBox[\(c\), \(_\)]\) - \!\(\*OverscriptBox[\(q\), \(_\)]\))];
  15. AQ2 = Simplify[(a - q) (\!\(\*OverscriptBox[\(a\), \(_\)]\) - \!\(\*OverscriptBox[\(q\), \(_\)]\))]; CT2 = Simplify[(c - t) (\!\(\*OverscriptBox[\(c\), \(_\)]\) - \!\(\*OverscriptBox[\(t\), \(_\)]\))]; BP2 = Simplify[(b - p) (\!\(\*OverscriptBox[\(b\), \(_\)]\) -
  16. \!\(\*OverscriptBox[\(p\), \(_\)]\))];
  17. Simplify[AP2 BT2 CQ2 == AQ2 CT2 BP2]
复制代码

运行结果:
True
True

手机版|悠闲数学娱乐论坛(第3版)

GMT+8, 2025-3-4 12:20

Powered by Discuz!

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