找回密码
 快速注册
搜索
查看: 232|回复: 20

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

[复制链接]

119

主题

446

回帖

3179

积分

积分
3179

显示全部楼层

TSC999 发表于 2023-5-2 11:50 |阅读模式
本帖最后由 TSC999 于 2023-5-2 11:59 编辑 例 21:
证明 EFN 共线题.png
程序及运行结果:
证明 EFN 共线题程序及结果 1.png
程序代码:
  1. Clear["Global`*"];
  2. (*令\[CapitalDelta]ABC的外接圆为单位圆O,BC边平行于实轴,AB、AC的复斜率分别为 u^2、v^2*)
  3. \!\(\*OverscriptBox[\(o\), \(_\)]\) = o = 0; a = I u v;   \!\(\*OverscriptBox[\(a\), \(_\)]\) = 1/(I u v); b = (I u)/v;  
  4. \!\(\*OverscriptBox[\(b\), \(_\)]\) = v/(I u); c = (I v)/u;  \!\(\*OverscriptBox[\(c\), \(_\)]\) = u/(I v);
  5. d = (I (u^2 + u v + v^2 - 1))/(u v + 1); \!\(\*OverscriptBox[\(d\), \(_\)]\) = ( I (u^2 (v^2 - 1) - u v - v^2))/(u v (u v + 1));  
  6. e = -I; \!\(\*OverscriptBox[\(e\), \(_\)]\) = I;
  7. (*以上是此构图下的已知公式,直接引用,不再推导*)
  8. k[a_, b_] := (a - b)/(\!\(\*OverscriptBox[\(a\), \(_\)]\) - \!\(\*OverscriptBox[\(b\), \(_\)]\));(*定义复斜率*)
  9. (*过A1点、复斜率等于k1的直线,与过A2点、复斜率等于k2的直线的交点*)
  10. Jd[k1_, a1_, k2_, a2_] := -((k2 (a1 - k1 \!\(\*OverscriptBox[\(a1\), \(_\)]\)) - k1 (a2 - k2 \!\(\*OverscriptBox[\(a2\), \(_\)]\)))/(k1 - k2));
  11. \!\(\*OverscriptBox[\(Jd\), \(_\)]\)[k1_, a1_, k2_, a2_] := -((a1 - k1 \!\(\*OverscriptBox[\(a1\), \(_\)]\) - (a2 - k2 \!\(\*OverscriptBox[\(a2\), \(_\)]\)))/(k1 - k2));
  12. W = {f} /. Simplify@Solve[{(o - f) (\!\(\*OverscriptBox[\(o\), \(_\)]\) - 1/f) == 1, (d - f)/(\!\(\*OverscriptBox[\(d\), \(_\)]\) - 1/f) == -k[a, c]}, {f}] // Flatten;
  13. f = Part[W, 1]; \!\(\*OverscriptBox[\(f\), \(_\)]\) = 1/f; f1 = Part[W, 2]; \!\(\*OverscriptBox[\(f1\), \(_\)]\) = 1/f1;(*另一个解f1=Part[W,2]在BE弧上*)
  14. n = Simplify@Jd[-k[b, f], a, 1, b];
  15. \!\(\*OverscriptBox[\(n\), \(_\)]\) = Simplify@\!\(\*OverscriptBox[\(Jd\), \(_\)]\)[-k[b, f], a, 1, b];
  16. n1 = Simplify@Jd[-k[b, f1], a, 1, b];
  17. \!\(\*OverscriptBox[\(n1\), \(_\)]\) = Simplify@\!\(\*OverscriptBox[\(Jd\), \(_\)]\)[-k[b, f1], a, 1, b];
  18. Print["下面分别证明ENF共线和EN1F1共线:"]
  19. kEN = FullSimplify[k[e, n]]; Print["kEN = ", kEN];
  20. kFN = FullSimplify[k[f, n]]; Print["kFN = ", kFN];
  21. Print["因为EN的复斜率等于FN的复斜率,所以ENF共线。"]
  22. kEN1 = FullSimplify[k[e, n1]]; Print["kEN1 = ", kEN1];
  23. kF1N1 = FullSimplify[k[f1, n1]]; Print["kF1N1 = ", kF1N1];
  24. Print["因为EN1的复斜率等于F1N1的复斜率,所以EN1F1共线。"]
复制代码

119

主题

446

回帖

3179

积分

积分
3179

显示全部楼层

 楼主| TSC999 发表于 2023-5-3 12:31
例 22
证明 FD 平分 BG 题程序及运行结果.png
  1. Clear["Global`*"];(*构图法:B为原点,内切圆半径为 1,BC边与横轴重合。D、C 点坐标为两个变量*)
  2. (*对于等腰三角形有 c = 2d,令 d = t 为变量,由 AB>BC 可知 Sqrt[3]>t>1 *)
  3. \!\(\*OverscriptBox[\(b\), \(_\)]\) = b = 0; \!\(\*OverscriptBox[\(d\), \(_\)]\) = d = t;
  4. \!\(\*OverscriptBox[\(c\), \(_\)]\) =  c = 2 t; a = (-2 I t^2 - (t^2 - 1) t)/(1 - t^2);
  5. \!\(\*OverscriptBox[\(a\), \(_\)]\) = (-t (t^2 - 1) + 2 I t^2)/( 1 - t^2);
  6. f = (t (t + I))/(t - I);  \!\(\*OverscriptBox[\(f\), \(_\)]\) = (t (t - I))/(t + I);
  7. (*以上是此构图下的已知公式,直接引用,不再推导*)
  8. W = {e, \!\(\*OverscriptBox[\(e\), \(_\)]\)} /. FullSimplify@Solve[{(b - e) (\!\(\*OverscriptBox[\(b\), \(_\)]\) -
  9. \!\(\*OverscriptBox[\(e\), \(_\)]\)) == c^2, (a - c)/(\!\(\*OverscriptBox[\(a\), \(_\)]\) - \!\(\*OverscriptBox[\(c\), \(_\)]\)) == (a - e)/(\!\(\*OverscriptBox[\(a\), \(_\)]\) - \!\(\*OverscriptBox[\(e\), \(_\)]\)), e != c}, {e, \!\(\*OverscriptBox[\(e\), \(_\)]\)}] // Flatten;
  10. e = Part[W, 1]; \!\(\*OverscriptBox[\(e\), \(_\)]\) = Part[W, 2];
  11. AB = Simplify[Sqrt[(a - b) (\!\(\*OverscriptBox[\(a\), \(_\)]\) - \!\(\*OverscriptBox[\(b\), \(_\)]\))], Sqrt[3] > t > 1];
  12. BE = 2 t; AE = Simplify[Sqrt[(a - e) (\!\(\*OverscriptBox[\(a\), \(_\)]\) - \!\(\*OverscriptBox[\(e\), \(_\)]\))], Sqrt[3] > t > 1];
  13. Print["AB = ", AB, ",  BE = ", BE, ",  AE = ", AE]; g = Simplify[(e AB + a BE + b AE)/(AB + BE + AE)];
  14. \!\(\*OverscriptBox[\(g\), \(_\)]\) = Simplify[(\!\(\*OverscriptBox[\(e\), \(_\)]\) AB + \!\(\*OverscriptBox[\(a\), \(_\)]\) BE +
  15. \!\(\*OverscriptBox[\(b\), \(_\)]\) AE)/(AB + BE + AE)];
  16. (*直线 AB 与 CD 的交点*)
  17. Jd1[a_, b_, c_, d_] := ((\!\(\*OverscriptBox[\(c\), \(_\)]\) d - c \!\(\*OverscriptBox[\(d\), \(_\)]\)) (a - b) - (\!\(\*OverscriptBox[\(a\), \(_\)]\) b - a \!\(\*OverscriptBox[\(b\), \(_\)]\)) (c - d))/((a - b) (\!\(\*OverscriptBox[\(c\), \(_\)]\) - \!\(\*OverscriptBox[\(d\), \(_\)]\)) - (\!\(\*OverscriptBox[\(a\), \(_\)]\) - \!\(\*OverscriptBox[\(b\), \(_\)]\)) (c - d));
  18. \!\(\*OverscriptBox[\(Jd1\), \(_\)]\)[a_, b_, c_, d_] := -(((c \!\(\*OverscriptBox[\(d\), \(_\)]\) - \!\(\*OverscriptBox[\(c\), \(_\)]\) d) (\!\(\*OverscriptBox[\(a\), \(_\)]\) - \!\(\*OverscriptBox[\(b\), \(_\)]\)) - ( a \!\(\*OverscriptBox[\(b\), \(_\)]\) - \!\(\*OverscriptBox[\(a\), \(_\)]\) b) (\!\(\*OverscriptBox[\(c\), \(_\)]\) - \!\(\*OverscriptBox[\(d\), \(_\)]\)))/((a - b) (\!\(\*OverscriptBox[\(c\), \(_\)]\) - \!\(\*OverscriptBox[\(d\), \(_\)]\)) - (\!\(\*OverscriptBox[\(a\), \(_\)]\) - \!\(\*OverscriptBox[\(b\), \(_\)]\)) (c - d)));
  19. m = Simplify@Jd1[f, d, b, g]; \!\(\*OverscriptBox[\(m\), \(_\)]\) = Simplify@\!\(\*OverscriptBox[\(Jd1\), \(_\)]\)[f, d, b, g];
  20. Print["A = ", a, ",  E = ", e, ",  F = ", f, ",  G = ", g, ",  M = ",   m];
  21. MB = Simplify[Sqrt[(m - b) (\!\(\*OverscriptBox[\(m\), \(_\)]\) - \!\(\*OverscriptBox[\(b\), \(_\)]\))]]; MG = Simplify[Sqrt[(m - g) (
  22. \!\(\*OverscriptBox[\(m\), \(_\)]\) - \!\(\*OverscriptBox[\(g\), \(_\)]\))]];
  23. Print["MB = ", MB]; Print["MG = ", MG];Print["由于 MB = MG,所以 FD 平分 BG。"];
复制代码

119

主题

446

回帖

3179

积分

积分
3179

显示全部楼层

 楼主| TSC999 发表于 2023-5-3 20:35
例 23:
对于下面两个图,分别证明三线共点:
对于两图证明三线共点.png
程序:
对于两图证明三线共点程序.png
运行结果:
对于两图证明三线共点程序运行结果.png
程序代码:
  1. Clear["Global`*"];(* 设三角形ABC的 \[Angle]B=\[Theta], \[Angle]C=\[CurlyPhi] *)
  2. \!\(\*OverscriptBox[\(b\), \(_\)]\) = b = 0; \!\(\*OverscriptBox[\(c\), \(_\)]\) = c = 1;
  3. kAB = E^( 2 I \[Theta]); kAC = E^(2 I (\[Pi] - \[CurlyPhi]));(*复斜率定义*)
  4. kBD = E^(2 I \[Alpha]); kCD = E^(2 I (\[Pi] - \[Beta])); kAB = E^( 2 I \[Theta]); kBF = E^(2 I (\[Theta] - \[Alpha]));
  5. kAF = E^(2 I (\[Theta] + \[Gamma])); kAC = E^( 2 I (\[Pi] - \[CurlyPhi]));
  6. kCE = E^( 2 I (\[Pi] - \[CurlyPhi] + \[Beta])); kAE = E^(2 I (\[Pi] - \[CurlyPhi] - \[Gamma]));
  7. (*过A1点、复斜率等于k1的直线,与过A2点、复斜率等于k2的直线的交点*)
  8. Jd[k1_, a1_, k2_, a2_] := -((k2 (a1 - k1 \!\(\*OverscriptBox[\(a1\), \(_\)]\)) - k1 (a2 - k2 \!\(\*OverscriptBox[\(a2\), \(_\)]\)))/(k1 - k2));
  9. \!\(\*OverscriptBox[\(Jd\), \(_\)]\)[k1_, a1_, k2_, a2_] := -((a1 - k1 \!\(\*OverscriptBox[\(a1\), \(_\)]\) - (a2 - k2 \!\(\*OverscriptBox[\(a2\), \(_\)]\)))/(k1 - k2));
  10. a = Simplify@Jd[kAB, b, kAC, c]; \!\(\*OverscriptBox[\(a\), \(_\)]\) = Simplify@\!\(\*OverscriptBox[\(Jd\), \(_\)]\)[kAB, b, kAC, c];
  11. d = Simplify@Jd[kBD, b, kCD, c]; \!\(\*OverscriptBox[\(d\), \(_\)]\) = Simplify@\!\(\*OverscriptBox[\(Jd\), \(_\)]\)[kBD, b, kCD, c];
  12. e = Simplify@Jd[kAE, a, kCE, c]; \!\(\*OverscriptBox[\(e\), \(_\)]\) = Simplify@\!\(\*OverscriptBox[\(Jd\), \(_\)]\)[kAE, a, kCE, c];
  13. f = Simplify@Jd[kAF, a, kBF, b]; \!\(\*OverscriptBox[\(f\), \(_\)]\) = Simplify@\!\(\*OverscriptBox[\(Jd\), \(_\)]\)[kAF, a, kBF, b];
  14. Print["A = ", a, ",  D = ", d]; Print["E = ", e, ",  F = ", f];
  15. k[a_, b_] := (a - b)/(\!\(\*OverscriptBox[\(a\), \(_\)]\) - \!\(\*OverscriptBox[\(b\), \(_\)]\));(*复斜率*)
  16. (*直线 AB 与 CD 的交点*)
  17. Jd1[a_, b_, c_, d_] := ((\!\(\*OverscriptBox[\(c\), \(_\)]\) d - c \!\(\*OverscriptBox[\(d\), \(_\)]\)) (a - b) - (\!\(\*OverscriptBox[\(a\), \(_\)]\) b - a \!\(\*OverscriptBox[\(b\), \(_\)]\)) (c - d))/((a - b) (\!\(\*OverscriptBox[\(c\), \(_\)]\) - \!\(\*OverscriptBox[\(d\), \(_\)]\)) - (\!\(\*OverscriptBox[\(a\), \(_\)]\) - \!\(\*OverscriptBox[\(b\), \(_\)]\)) (c - d));
  18. \!\(\*OverscriptBox[\(Jd1\), \(_\)]\)[a_, b_, c_, d_] := -(((c \!\(\*OverscriptBox[\(d\), \(_\)]\) - \!\(\*OverscriptBox[\(c\), \(_\)]\) d) (\!\(\*OverscriptBox[\(a\), \(_\)]\) - \!\(\*OverscriptBox[\(b\), \(_\)]\)) - ( a \!\(\*OverscriptBox[\(b\), \(_\)]\) - \!\(\*OverscriptBox[\(a\), \(_\)]\) b) (\!\(\*OverscriptBox[\(c\), \(_\)]\) - \!\(\*OverscriptBox[\(d\), \(_\)]\)))/((a - b) (\!\(\*OverscriptBox[\(c\), \(_\)]\) - \!\(\*OverscriptBox[\(d\), \(_\)]\)) - (\!\(\*OverscriptBox[\(a\), \(_\)]\) - \!\(\*OverscriptBox[\(b\), \(_\)]\)) (c - d)));
  19. g1 = FullSimplify@Jd1[b, e, c, f]; g2 = FullSimplify@Jd1[b, e, a, d];
  20. Print["左图中 BE 与 CF 的交点 G1 = ", g1];Print["左图中 BE 与 AD 的交点 G2 = ", g2];
  21. Print["测试 BE 与 CF 的交点是否与 BE 与 AD 的交点重合:"]
  22. Simplify[g1 == g2]
  23. d1 = Simplify@Jd1[b, f, c, e]; \!\(\*OverscriptBox[\(d1\), \(_\)]\) = Simplify@\!\(\*OverscriptBox[\(Jd1\), \(_\)]\)[b, f, c, e];
  24. e1 = Simplify@Jd1[a, f, c, d]; \!\(\*OverscriptBox[\(e1\), \(_\)]\) = Simplify@\!\(\*OverscriptBox[\(Jd1\), \(_\)]\)[a, f, c, d];
  25. f1 = Simplify@Jd1[a, e, b, d]; \!\(\*OverscriptBox[\(f1\), \(_\)]\) = Simplify@\!\(\*OverscriptBox[\(Jd1\), \(_\)]\)[a, e, b, d];
  26. g1 = FullSimplify@Jd1[d, d1, e, e1]; g2 = FullSimplify@Jd1[d, d1, f, f1];
  27. Print["右图中 DD1 与 EE1 的交点 G1 = ", g1];Print["右图中 DD1 与 FF1 的交点 G2 = ", g2];
  28. Print["测试 DD1 与 EE1 的交点是否与 DD1 与 FF1 的交点重合:"]
  29. Simplify[g1 == g2]
复制代码


注:此题对于深入了解复斜率的定义很有用处。

点评

大赞!不知有没有纯几何的证法。  发表于 2023-11-25 11:57

119

主题

446

回帖

3179

积分

积分
3179

显示全部楼层

 楼主| TSC999 发表于 2023-5-3 23:15
例 24:
证明是平行四边形的题程序及结果.png
程序代码:
  1. Clear["Global`*"];(* 设三角形ABC的 \[Angle]B=\[Theta], \[Angle]C的补角=\[Pi]/4+\[Theta] *)
  2. \!\(\*OverscriptBox[\(b\), \(_\)]\) = b = 0; \!\(\*OverscriptBox[\(c\), \(_\)]\) = c = 1;
  3. kAB = E^(2 I \[Theta]); kAC = E^(2 I (\[Pi]/4 + \[Theta]));(*复斜率定义*)
  4. (*过A1点、复斜率等于k1的直线,与过A2点、复斜率等于k2的直线的交点*)
  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. a = Simplify@Jd[kAB, b, kAC, c]; \!\(\*OverscriptBox[\(a\), \(_\)]\) = Simplify@\!\(\*OverscriptBox[\(Jd\), \(_\)]\)[kAB, b, kAC, c];
  8. Foot[p_, x_, y_] := ( \!\(\*OverscriptBox[\(x\), \(_\)]\) y - x \!\(\*OverscriptBox[\(y\), \(_\)]\) + (x - y) \!\(\*OverscriptBox[\(p\), \(_\)]\) + (\!\(\*OverscriptBox[\(x\), \(_\)]\) - \!\(\*OverscriptBox[\(y\), \(_\)]\)) p)/(2 (\!\(\*OverscriptBox[\(x\), \(_\)]\) -
  9. \!\(\*OverscriptBox[\(y\), \(_\)]\)));  (* 从P点向XY直线引垂线,垂足的复坐标 *)
  10. \!\(\*OverscriptBox[\(Foot\), \(_\)]\)[p_, x_, y_] := (x \!\(\*OverscriptBox[\(y\), \(_\)]\) - \!\(\*OverscriptBox[\(x\), \(_\)]\) y + (
  11. \!\(\*OverscriptBox[\(x\), \(_\)]\) - \!\(\*OverscriptBox[\(y\), \(_\)]\)) p + (x - y) \!\(\*OverscriptBox[\(p\), \(_\)]\))/(2 (x - y));  
  12. e = Simplify@Foot[b, a, c]; \!\(\*OverscriptBox[\(e\), \(_\)]\) = Simplify@\!\(\*OverscriptBox[\(Foot\), \(_\)]\)[b, a, c];
  13. f = Simplify@Foot[c, a, b]; \!\(\*OverscriptBox[\(f\), \(_\)]\) = Simplify@\!\(\*OverscriptBox[\(Foot\), \(_\)]\)[c, a, b];
  14. (*直线 AB 与 CD 的交点*)
  15. Jd1[a_, b_, c_, d_] := ((\!\(\*OverscriptBox[\(c\), \(_\)]\) d - c \!\(\*OverscriptBox[\(d\), \(_\)]\)) (a - b) - (\!\(\*OverscriptBox[\(a\), \(_\)]\) b - a \!\(\*OverscriptBox[\(b\), \(_\)]\)) (c - d))/((a - b) (\!\(\*OverscriptBox[\(c\), \(_\)]\) - \!\(\*OverscriptBox[\(d\), \(_\)]\)) - (\!\(\*OverscriptBox[\(a\), \(_\)]\) - \!\(\*OverscriptBox[\(b\), \(_\)]\)) (c - d));
  16. \!\(\*OverscriptBox[\(Jd1\), \(_\)]\)[a_, b_, c_, d_] := -(((c \!\(\*OverscriptBox[\(d\), \(_\)]\) - \!\(\*OverscriptBox[\(c\), \(_\)]\) d) (\!\(\*OverscriptBox[\(a\), \(_\)]\) - \!\(\*OverscriptBox[\(b\), \(_\)]\)) - ( a \!\(\*OverscriptBox[\(b\), \(_\)]\) - \!\(\*OverscriptBox[\(a\), \(_\)]\) b) (\!\(\*OverscriptBox[\(c\), \(_\)]\) - \!\(\*OverscriptBox[\(d\), \(_\)]\)))/((a - b) (\!\(\*OverscriptBox[\(c\), \(_\)]\) - \!\(\*OverscriptBox[\(d\), \(_\)]\)) - (\!\(\*OverscriptBox[\(a\), \(_\)]\) - \!\(\*OverscriptBox[\(b\), \(_\)]\)) (c - d)));
  17. h = Simplify@Jd1[b, e, c, f]; \!\(\*OverscriptBox[\(h\), \(_\)]\) = Simplify@\!\(\*OverscriptBox[\(Jd1\), \(_\)]\)[b, e, c, f];
  18. mBC = (b + c)/2; \!\(\*OverscriptBox[\(mBC\), \(_\)]\) = (\!\(\*OverscriptBox[\(b\), \(_\)]\) + \!\(\*OverscriptBox[\(c\), \(_\)]\))/2; mAB = (a + b)/2; \!\(\*OverscriptBox[\(mAB\), \(_\)]\) = (\!\(\*OverscriptBox[\(a\), \(_\)]\) + \!\(\*OverscriptBox[\(b\), \(_\)]\))/2;
  19. k[a_, b_] := (a - b)/(\!\(\*OverscriptBox[\(a\), \(_\)]\) - \!\(\*OverscriptBox[\(b\), \(_\)]\));(*复斜率另一种定义*)
  20. o = Simplify@Jd[-1, mBC, -k[a, b], mAB]; \!\(\*OverscriptBox[\(o\), \(_\)]\) = Simplify@\!\(\*OverscriptBox[\(Jd\), \(_\)]\)[-1, mBC, -k[a, b], mAB];
  21. Print["O = ", o, ",  F = ", f, ",  H = ", h, ",  E = ", e];
  22. kOF = Simplify[k[o, f]]; kEH = Simplify[k[e, h]]; kOE = Simplify[k[o, e]]; kFH = Simplify[k[f, h]];
  23. Print["OF 的复斜率 = ", kOF, ",  EH 的复斜率 = ", kEH]; Print["OE 的复斜率 = ", kOE, ",  FH 的复斜率 = ", kFH];
  24. Print["因为 OF、EH 的复斜率相等,OE、FH 的复斜率相等,所以OF//EH,OE//FH,故 OFHE 是平行四边形"];
复制代码

119

主题

446

回帖

3179

积分

积分
3179

显示全部楼层

 楼主| TSC999 发表于 2023-5-19 22:27
本帖最后由 TSC999 于 2023-5-19 22:37 编辑 例 25:
2019 题.png
2019 题解.png
程序代码:
  1. Clear["Global`*"];(*构图和设点:以内切圆为单位圆,内心在坐标原点处。其余设置见上右图*)
  2. \!\(\*OverscriptBox[\(i\), \(_\)]\) = i = 0;  b = u - I;
  3. \!\(\*OverscriptBox[\(b\), \(_\)]\) = u + I; c = v - I;
  4. \!\(\*OverscriptBox[\(c\), \(_\)]\) = v + I;  a = ((u + v) + I (v u - 1))/(u v + 1);
  5. \!\(\*OverscriptBox[\(a\), \(_\)]\) = ((u + v) - I (v u - 1))/( u v + 1); d = -I;
  6. \!\(\*OverscriptBox[\(d\), \(_\)]\) = I; e = (I (v - I))/(v + I); \!\(\*OverscriptBox[\(e\), \(_\)]\) = (-I (v + I))/(v - I);
  7. f = ( I (u - I))/(u + I); \!\(\*OverscriptBox[\(f\), \(_\)]\) = (-I (u + I))/(u - I);
  8. (*以上公式是此构图下的已知公式,直接引用,不再推导*)
  9. k[a_, b_] := (a - b)/(\!\(\*OverscriptBox[\(a\), \(_\)]\) - \!\(\*OverscriptBox[\(b\), \(_\)]\)); (*复斜率定义*)
  10. W1 = {r, \!\(\*OverscriptBox[\(r\), \(_\)]\)} /. Simplify@Solve[{(i - r) (\!\(\*OverscriptBox[\(i\), \(_\)]\) - \!\(\*OverscriptBox[\(r\), \(_\)]\)) == 1, k[d, r] == -k[e, f]}, {r, \!\(\*OverscriptBox[\(r\), \(_\)]\)}] // Flatten ;
  11. r = Part[W1, 1]; \!\(\*OverscriptBox[\(r\), \(_\)]\) = Part[W1, 2]; Print["R = ", r];
  12. W2 = {p, \!\(\*OverscriptBox[\(p\), \(_\)]\)} /. Simplify@Solve[{(i - p) (\!\(\*OverscriptBox[\(i\), \(_\)]\) - \!\(\*OverscriptBox[\(p\), \(_\)]\)) == 1, k[a, r] == k[a, p], p != r}, {p, \!\(\*OverscriptBox[\(p\), \(_\)]\)}] // Flatten ;
  13. p = Part[W2, 1]; \!\(\*OverscriptBox[\(p\), \(_\)]\) = Part[W2, 2]; Print["P = ", p];
  14. Yuan[z_, a1_, a2_, a3_] :=Simplify[( (z - a3) (a1 - a2))/( (z - a2) (a1 - a3)) - ( (\!\(\*OverscriptBox[\(z\), \(_\)]\) -
  15. \!\(\*OverscriptBox[\(a3\), \(_\)]\)) (\!\(\*OverscriptBox[\(a1\), \(_\)]\) - \!\(\*OverscriptBox[\(a2\), \(_\)]\)))/( (\!\(\*OverscriptBox[\(z\), \(_\)]\) - \!\(\*OverscriptBox[\(a2\), \(_\)]\)) (\!\(\*OverscriptBox[\(a1\), \(_\)]\) -
  16. \!\(\*OverscriptBox[\(a3\), \(_\)]\)))];   (* 此表达式 = 0 即是经过三点 AA、BB、CC 的圆方程,要求的未知点坐标是 ZZ *)
  17. W3 = {q, \!\(\*OverscriptBox[\(q\), \(_\)]\)} /. Simplify@ Solve[{Yuan[q, c, p, e] == 0, Yuan[q, b, p, f] == 0, q != p}, {q,
  18. \!\(\*OverscriptBox[\(q\), \(_\)]\)}] // Flatten ;
  19. q = Part[W3, 1]; \!\(\*OverscriptBox[\(q\), \(_\)]\) = Part[W3, 2]; Print["Q = ", q];
  20. W4 = {n, \!\(\*OverscriptBox[\(n\), \(_\)]\)} /. Simplify@Solve[{k[d, i] == k[d, n], k[p, q] == k[p, n]}, {n, \!\(\*OverscriptBox[\(n\), \(_\)]\)}] // Flatten ;
  21. n = Part[W4, 1]; \!\(\*OverscriptBox[\(n\), \(_\)]\) = Part[W4, 2]; Print["N = ", n];
  22. Print["测试 AN 垂直于 AI 是否成立,结果是:", Simplify[k[a, n] == -k[a, i]]]
复制代码

119

主题

446

回帖

3179

积分

积分
3179

显示全部楼层

 楼主| TSC999 发表于 2023-5-23 17:35
例 26:
证明∠BAS等于∠CAP.png
解答:
证明∠BAS等于∠CAP解答.png
  1. Clear["Global`*"];(*构图法:B置于坐标原点,C=1; 复斜率 kAB=u^2; kAC=1/v^2;*)
  2. (*此构图下的\[EmptyUpTriangle]ABC顶点坐标:*)
  3. \!\(\*OverscriptBox[\(b\), \(_\)]\) = b = 0; \!\(\*OverscriptBox[\(c\), \(_\)]\) = c = 1; a = (u^2 (v^2 - 1))/( u^2 v^2 - 1);
  4. \!\(\*OverscriptBox[\(a\), \(_\)]\) = (v^2 - 1)/(u^2 v^2 - 1);(*\[EmptyUpTriangle]ABC的垂心坐标:*)  h = (u^2 + 1)/(1 - u^2 v^2);  
  5. \!\(\*OverscriptBox[\(h\), \(_\)]\) = ((u^2 + 1) v^2)/(u^2 v^2 - 1);
  6. (*以上为此构图法时的某些坐标公式,直接引用,不再推导 *)
  7. (*设 P 点的坐标为:*)   p = w + t I; \!\(\*OverscriptBox[\(p\), \(_\)]\) = w - t I;
  8. k[a_, b_] := (a - b)/(\!\(\*OverscriptBox[\(a\), \(_\)]\) - \!\(\*OverscriptBox[\(b\), \(_\)]\)); (*复斜率定义*)
  9. tan\[Angle][a_, b_, c_] :=  I (k[b, a] - k[b, c])/( k[b, a] + k[b, c]); (*从AB边逆时针转到BC边的有向角\[Angle]ABC的正切*)
  10. tan\[Angle]HPC = Simplify@tan\[Angle][h, p, c]; tan\[Angle]HBC = Simplify@tan\[Angle][h, b, c];
  11. tan\[Angle]BPH = Simplify@tan\[Angle][b, p, h]; tan\[Angle]BCH = Simplify@tan\[Angle][b, c, h];
  12. (*由正切的三倍角关系 tan3\[Theta]=(3tan\[Theta]-tan^3\[Theta])/(1-3tan^2\\[Theta])列方程,以求得 P 点的确切坐标:*)
  13. W1 = {w, t} /. Simplify@Solve[{tan\[Angle]HPC == (3 tan\[Angle]HBC - tan\[Angle]HBC^3)/(1 - 3 tan\[Angle]HBC^2),
  14.        tan\[Angle]BPH == (3 tan\[Angle]BCH - tan\[Angle]BCH^3)/(1 - 3 tan\[Angle]BCH^2)}, {w, t}] // Flatten ;
  15. w = Part[W1, 1]; t = Part[W1, 2];
  16. p = Simplify[w + t I]; \!\(\*OverscriptBox[\(p\), \(_\)]\) = Simplify[w - t I]; Print["P = ", p];
  17. Jx[p_, a_, b_] := (\!\(\*OverscriptBox[\(a\), \(_\)]\) b - a \!\(\*OverscriptBox[\(b\), \(_\)]\) + \!\(\*OverscriptBox[\(p\), \(_\)]\) (a - b))/(\!\(\*OverscriptBox[\(a\), \(_\)]\) - \!\(\*OverscriptBox[\(b\), \(_\)]\));(*P点的镜线,镜线过已知点 A、B*)
  18. \!\(\*OverscriptBox[\(Jx\), \(_\)]\)[p_, a_, b_] := (a \!\(\*OverscriptBox[\(b\), \(_\)]\) - \!\(\*OverscriptBox[\(a\), \(_\)]\) b + p (
  19. \!\(\*OverscriptBox[\(a\), \(_\)]\) - \!\(\*OverscriptBox[\(b\), \(_\)]\)))/(a - b);
  20. x = Simplify@Jx[p, b, h]; \!\(\*OverscriptBox[\(x\), \(_\)]\) = Simplify@\!\(\*OverscriptBox[\(Jx\), \(_\)]\)[p, b, h];
  21. Print["X = ", x];
  22. y = Simplify@Jx[p, c, h]; \!\(\*OverscriptBox[\(y\), \(_\)]\) = Simplify@\!\(\*OverscriptBox[\(Jx\), \(_\)]\)[p, c, h]; Print["Y = ", y];
  23. (*三角形 A1B1C1 的外心坐标:*)
  24.    WX[a1_, b1_, c1_] := (a1 \!\(\*OverscriptBox[\(a1\), \(_\)]\) (c1 - b1) + b1 \!\(\*OverscriptBox[\(b1\), \(_\)]\) (a1 - c1) + c1
  25. \!\(\*OverscriptBox[\(c1\), \(_\)]\) (b1 - a1) )/(\!\(\*OverscriptBox[\(a1\), \(_\)]\) (c1 - b1) + \!\(\*OverscriptBox[\(b1\), \(_\)]\) (a1 - c1) + \!\(\*OverscriptBox[\(c1\), \(_\)]\) (b1 - a1));   
  26. \!\(\*OverscriptBox[\(WX\), \(_\)]\)[a1_, b1_, c1_] := -((a1 \!\(\*OverscriptBox[\(a1\), \(_\)]\) (\!\(\*OverscriptBox[\(c1\), \(_\)]\) - \!\(\*OverscriptBox[\(b1\), \(_\)]\)) + b1 \!\(\*OverscriptBox[\(b1\), \(_\)]\) (\!\(\*OverscriptBox[\(a1\), \(_\)]\) -
  27. \!\(\*OverscriptBox[\(c1\), \(_\)]\)) + c1 \!\(\*OverscriptBox[\(c1\), \(_\)]\) (\!\(\*OverscriptBox[\(b1\), \(_\)]\) -
  28. \!\(\*OverscriptBox[\(a1\), \(_\)]\)))/(\!\(\*OverscriptBox[\(a1\), \(_\)]\) (c1 - b1) + \!\(\*OverscriptBox[\(b1\), \(_\)]\) (a1 - c1) +
  29. \!\(\*OverscriptBox[\(c1\), \(_\)]\) (b1 - a1)));
  30. s = Simplify@ WX[a, x, y]; \!\(\*OverscriptBox[\(s\), \(_\)]\) = Simplify@ \!\(\*OverscriptBox[\(WX\), \(_\)]\)[a, x, y]; Print["S = ", s];
  31. expI2\[Angle][a_, b_, c_] := k[b, c]/k[a, b];(* \\[Angle]ABC的指数函数\[ExponentialE]^(2\[ImaginaryI]\[Angle]ABC)=kBC/kAB *)
  32. f\[Angle]BAS = Simplify[expI2\[Angle][b, a, s]]; Print["\!\(\*SuperscriptBox[\(\[ExponentialE]\), \(2  \
  33. \[ImaginaryI]\[Angle]BAS\)]\) = ", f\[Angle]BAS];
  34. f\[Angle]PAC = Simplify[expI2\[Angle][p, a, c]]; Print["\!\(\*SuperscriptBox[\(\[ExponentialE]\), \(2  \
  35. \[ImaginaryI]\[Angle]PAC\)]\) = ", f\[Angle]PAC];
  36. Print["由于 \!\(\*SuperscriptBox[\(\[ExponentialE]\), \(2\[ImaginaryI]\[Angle]BAS\)]\) = \
  37. \!\(\*SuperscriptBox[\(\[ExponentialE]\), \(2\[ImaginaryI]\[Angle]PAC\)]\),所以 \[Angle]BAS = \[Angle]PAC "];
复制代码

119

主题

446

回帖

3179

积分

积分
3179

显示全部楼层

 楼主| TSC999 发表于 2023-5-23 20:20
本帖最后由 TSC999 于 2023-5-23 20:28 编辑 例 27:
证明 APIB 共圆.png
解答:
证明 APIB 共圆解答.png
此题看似平常,其实不然。因为在求解 M、N 的坐标时,其表达式中含有一个根式。如果不处理,继续计算 P 点的坐标时就运行不下去了,计算机将一直运行而永远不出结果。
为解决这个问题,一般需要进行【有理化】处理。对于此题,有理化可能很困难。
今天想到了一个简单的解决办法,且称之为【半有理化】方案。就是把  M、N 表达式中的那个根式先用一个临时变量 t 代替,这样一来, M、N 表达式就变成了有理式,用它能算出 P 点的坐标。之后,再把 t 的值回代入 P 的表达式中。试了一下,对于此题,这个办法获得完全成功!
程序代码:
  1. Clear["Global`*"];(*构图法:B置于坐标原点,C=1; 复斜率 kAB=u^2; kAC=1/v^2;*)
  2. (*此构图下的△ABC顶点坐标:*)
  3. \!\(\*OverscriptBox[\(b\), \(_\)]\) = b = 0; \!\(\*OverscriptBox[\(c\), \(_\)]\) = c = 1; a = (u^2 (v^2 - 1))/( u^2 v^2 - 1);
  4. \!\(\*OverscriptBox[\(a\), \(_\)]\) = (v^2 - 1)/(u^2 v^2 - 1);
  5. (*\[EmptyUpTriangle]ABC的内心坐标:*)  i = (u (v - 1))/(u v - 1); \!\(\*OverscriptBox[\(i\), \(_\)]\) = (v - 1)/( u v - 1);(*\[EmptyUpTriangle]ABC的外心坐标:*)  o = (u^2 v^2)/(u^2 v^2 - 1); \!\(\*OverscriptBox[\(o\), \(_\)]\) = 1/(1 - u^2 v^2);
  6. (*切点 D、E、F 的坐标:*)  d = ((u + 1) (v - 1))/(2 u v - 2);  \!\(\*OverscriptBox[\(d\), \(_\)]\) = d; e = ((v - 1) (2 u v + u -
  7.     1))/(2 v (u v - 1));                              
  8. \!\(\*OverscriptBox[\(e\), \(_\)]\) = ((v - 1) ((u - 1) v - 2))/( 2 - 2 u v);  f = (u (u + 1) (v - 1))/(2 u v - 2);  
  9. \!\(\*OverscriptBox[\(f\), \(_\)]\) = ((u + 1) (v - 1))/(2 u (u v - 1));
  10. (*以上为此构图法时的某些坐标公式,直接引用,不再推导 *)
  11. K[a_, b_] := (a - b)/(\!\(\*OverscriptBox[\(a\), \(_\)]\) - \!\(\*OverscriptBox[\(b\), \(_\)]\)); (*复斜率定义*)
  12. (*求 K 点坐标:*)
  13. W1 = {k, \!\(\*OverscriptBox[\(k\), \(_\)]\)} /. Simplify@Solve[{(i - d) (\!\(\*OverscriptBox[\(i\), \(_\)]\) - \!\(\*OverscriptBox[\(d\), \(_\)]\)) == (i - k) (\!\(\*OverscriptBox[\(i\), \(_\)]\) - \!\(\*OverscriptBox[\(k\), \(_\)]\)), K[d, k] == -1}, {k, \!\(\*OverscriptBox[\(k\), \(_\)]\)}] // Flatten ;
  14. k = Part[W1, 1]; \!\(\*OverscriptBox[\(k\), \(_\)]\) = Part[W1, 2];
  15. (*求 M 和 N 点坐标:*)
  16. Simplify@Solve[{(o - b) (\!\(\*OverscriptBox[\(o\), \(_\)]\) - \!\(\*OverscriptBox[\(b\), \(_\)]\)) == (o - z) (\!\(\*OverscriptBox[\(o\), \(_\)]\) - \!\(\*OverscriptBox[\(z\), \(_\)]\)), K[d, f] == K[d, z]}, {z, \!\(\*OverscriptBox[\(z\), \(_\)]\)}];
  17. t1 = \[Sqrt]((u v - 1)^2 (u^6 (v - 1)^2 v^2 - 2 u^5 v (v^2 - 1) + u^4 (2 v^4 - v^2 + 2 v + 1) + 8 u^3 v^2 +
  18.        u^2 (v^4 + 2 v^3 - v^2 + 2) + 2 u v (v^2 - 1) + (v - 1)^2));
  19. (*由于 M 和 N 点坐标表达式中都有上述根式 t1,为使计算能够继续下去,先把 t1 用临时变量 t 代替:*)
  20. m = 1/(4 (u v - 1)^2 (u v + 1)) (u^4 (v - 1) v^2 + 2 u^3 v^2 (2 v - 1) + u^2 (v^3 - 3 v^2 + v + 1) + t - 2 u v - v + 1);
  21. \!\(\*OverscriptBox[\(m\), \(_\)]\) = -(1/(4 u (u v - 1)^2 (u v + 1))) (u^4 (-(v - 1)) v^2 + 2 u^3 v^2 -
  22.      u^2 (v^3 + v^2 - 3 v + 1) + t + 2 u (v - 2) + v - 1);
  23. n = 1/(4 (u v - 1)^2 (u v + 1)) (u^4 (v - 1) v^2 + 2 u^3 v^2 (2 v - 1) + u^2 (v^3 - 3 v^2 + v + 1) - t - 2 u v -  v + 1);
  24. \!\(\*OverscriptBox[\(n\), \(_\)]\) = 1/(4 u (u v - 1)^2 (u v + 1)) (u^4 (v - 1) v^2 - 2 u^3 v^2 + u^2 (v^3 + v^2 - 3 v + 1) + t - 2 u (v - 2) - v + 1);
  25. Yuan[z_, a1_, a2_, a3_] := Simplify[( (z - a3) (a1 - a2))/( (z - a2) (a1 - a3)) - ( (\!\(\*OverscriptBox[\(z\), \(_\)]\) -
  26. \!\(\*OverscriptBox[\(a3\), \(_\)]\)) (\!\(\*OverscriptBox[\(a1\), \(_\)]\) - \!\(\*OverscriptBox[\(a2\), \(_\)]\)))/( (\!\(\*OverscriptBox[\(z\), \(_\)]\) - \!\(\*OverscriptBox[\(a2\), \(_\)]\)) (\!\(\*OverscriptBox[\(a1\), \(_\)]\) -
  27. \!\(\*OverscriptBox[\(a3\), \(_\)]\)))];(* 此表达式 = 0 即是经过三点 A1、A2、A3 的圆方程,要求的未知点坐标是 Z *)
  28. W3 = {p, \!\(\*OverscriptBox[\(p\), \(_\)]\)} /. Simplify@Solve[{Yuan[p, m, n, e] == 0, K[f, k] == K[f, p]}, {p,
  29. \!\(\*OverscriptBox[\(p\), \(_\)]\)}] // Flatten;
  30. p = Part[W3, 3]; \!\(\*OverscriptBox[\(p\), \(_\)]\) = Part[W3, 4];
  31. p = Simplify[Part[W3, 3] /. {t -> t1}];(*算出 p 后,将 p 表达式中的 t 用根式 t1 回代*)
  32. \!\(\*OverscriptBox[\(p\), \(_\)]\) =  Simplify[Part[W3, 4] /. {t -> t1}];
  33. f\[Angle]BAI = FullSimplify[K[a, i]/K[a, b]]; Print["\!\(\*SuperscriptBox[\(\[ExponentialE]\), \(2 \[ImaginaryI]\[Angle]BAI\)]\) = ", \
  34. f\[Angle]BAI];(*计算\[ExponentialE]^(2\[ImaginaryI]\[Angle]BAI)*)
  35. f\[Angle]BPI = FullSimplify[K[p, i]/K[p, b]]; Print["\!\(\*SuperscriptBox[\(\[ExponentialE]\), \(2  \[ImaginaryI]\[Angle]BPI\)]\) = ", \
  36. f\[Angle]BPI];(*计算\[ExponentialE]^(2\[ImaginaryI]\[Angle]BPI)*)
  37. Print["由于 \!\(\*SuperscriptBox[\(\[ExponentialE]\), \(2  \[ImaginaryI]\[Angle]BAI\)]\) = \
  38. \!\(\*SuperscriptBox[\(\[ExponentialE]\), \(2  \\[ImaginaryI]\[Angle]BPI\)]\),所以 \[Angle]BAI = \[Angle]BPI,故 APIB \
  39. 四点共圆。 "];
复制代码

119

主题

446

回帖

3179

积分

积分
3179

显示全部楼层

 楼主| TSC999 发表于 2023-6-11 10:10
例 28:
证明 AP 平分 HG.png
  1. Clear["Global`*"]; (*设B在坐标原点,C在1点, kAB=u^2,kAC=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); (*外接圆圆心:*)o = (u^2 v^2)/(u^2 v^2 - 1);
  4. \!\(\*OverscriptBox[\(o\), \(_\)]\) = 1/(1 - u^2 v^2);
  5. (*外接圆半径:*) R = ( I u v)/(u^2 v^2 - 1);
  6. (*外接圆圆心的实部:*)ReO = Simplify[(o + \!\(\*OverscriptBox[\(o\), \(_\)]\))/2];(*外接圆圆心的虚部:*)
  7. ImO =  Simplify[(o - \!\(\*OverscriptBox[\(o\), \(_\)]\))/(2 I)];
  8. d = Simplify[1/2 + (ImO + R) I]; \!\(\*OverscriptBox[\(d\), \(_\)]\) = Simplify[1/2 - (ImO + R) I];
  9. Print["D = ", d];
  10. k[a_, b_] := (a - b)/(\!\(\*OverscriptBox[\(a\), \(_\)]\) - \!\(\*OverscriptBox[\(b\), \(_\)]\)); (*复斜率定义*)
  11. W1 = {e, \!\(\*OverscriptBox[\(e\), \(_\)]\)} /. Simplify@Solve[{k[d, e] == k[d, a], k[o, c] == -k[e, c]}, {e,
  12. \!\(\*OverscriptBox[\(e\), \(_\)]\)}] // Flatten ;
  13. e = Part[W1, 1]; \!\(\*OverscriptBox[\(e\), \(_\)]\) = Part[W1, 2]; Print["E = ", e];
  14. W2 = {f, \!\(\*OverscriptBox[\(f\), \(_\)]\)} /. Simplify@Solve[{k[d, f] == k[d, a], k[o, b] == -k[f, b]}, {f,
  15. \!\(\*OverscriptBox[\(f\), \(_\)]\)}] // Flatten ;
  16. f = Part[W2, 1];
  17. \!\(\*OverscriptBox[\(f\), \(_\)]\) = Part[W2, 2]; Print["F = ", f];
  18. (*直线 AB 与 CD 的交点*)
  19. Jd1[a_, b_, c_, d_] := ((\!\(\*OverscriptBox[\(c\), \(_\)]\) d - c \!\(\*OverscriptBox[\(d\), \(_\)]\)) (a - b) - (
  20. \!\(\*OverscriptBox[\(a\), \(_\)]\) b - a
  21. \!\(\*OverscriptBox[\(b\), \(_\)]\)) (c - d))/((a - b) (\!\(\*OverscriptBox[\(c\), \(_\)]\) - \!\(\*OverscriptBox[\(d\), \(_\)]\)) - (
  22. \!\(\*OverscriptBox[\(a\), \(_\)]\) - \!\(\*OverscriptBox[\(b\), \(_\)]\)) (c - d));
  23. \!\(\*OverscriptBox[\(Jd1\), \(_\)]\)[a_, b_, c_, d_] := -(((c \!\(\*OverscriptBox[\(d\), \(_\)]\) - \!\(\*OverscriptBox[\(c\), \(_\)]\) d) (\!\(\*OverscriptBox[\(a\), \(_\)]\) - \!\(\*OverscriptBox[\(b\), \(_\)]\)) - ( a \!\(\*OverscriptBox[\(b\), \(_\)]\) -
  24. \!\(\*OverscriptBox[\(a\), \(_\)]\) b) (\!\(\*OverscriptBox[\(c\), \(_\)]\) - \!\(\*OverscriptBox[\(d\), \(_\)]\)))/((a - b) (
  25. \!\(\*OverscriptBox[\(c\), \(_\)]\) - \!\(\*OverscriptBox[\(d\), \(_\)]\)) - (\!\(\*OverscriptBox[\(a\), \(_\)]\) -
  26. \!\(\*OverscriptBox[\(b\), \(_\)]\)) (c - d)));
  27. h = Simplify@Jd1[a, b, f, c]; \!\(\*OverscriptBox[\(h\), \(_\)]\) = Simplify@\!\(\*OverscriptBox[\(Jd1\), \(_\)]\)[a, b, f, c];
  28. g = Simplify@Jd1[a, c, b, e]; \!\(\*OverscriptBox[\(g\), \(_\)]\) = Simplify@\!\(\*OverscriptBox[\(Jd1\), \(_\)]\)[a, c, b, e];
  29. p = Simplify@Jd1[f, c, b, e]; \!\(\*OverscriptBox[\(p\), \(_\)]\) = Simplify@\!\(\*OverscriptBox[\(Jd1\), \(_\)]\)[f, c, b, e];
  30. q = Simplify@Jd1[a, p, h, g]; \!\(\*OverscriptBox[\(q\), \(_\)]\) = Simplify@\!\(\*OverscriptBox[\(Jd1\), \(_\)]\)[a, p, h, g];
  31. Print["H = ", h]; Print["G = ", g]; Print["P = ", p]; Print["Q = ", q];
  32. Print["HQ = ", Simplify[Sqrt[(h - q) (\!\(\*OverscriptBox[\(h\), \(_\)]\) - \!\(\*OverscriptBox[\(q\), \(_\)]\))]]];
  33. Print["GQ = ", Simplify[Sqrt[(g - q) (\!\(\*OverscriptBox[\(g\), \(_\)]\) - \!\(\*OverscriptBox[\(q\), \(_\)]\))]]];
  34. Print["因为上面二式相等,所以 HQ = GQ,即 AP 平分 HG。"];
复制代码

119

主题

446

回帖

3179

积分

积分
3179

显示全部楼层

 楼主| TSC999 发表于 2023-6-17 19:26
例 29:
马克劳林定理题.png
解答:
马克劳林定理题解答.png
  1. Clear["Global`*"];(*令ABCD的外接圆为单位圆,圆心在坐标原点*)
  2. \!\(\*OverscriptBox[\(a\), \(_\)]\) = 1/a; \!\(\*OverscriptBox[\(b\), \(_\)]\) = 1/b;
  3. \!\(\*OverscriptBox[\(c\), \(_\)]\) = 1/c; \!\(\*OverscriptBox[\(d\), \(_\)]\) = 1/d;
  4. (* AE、BE、CF、DF 的复斜率:*)
  5. kAE = -a^2; kBE = -b^2; kCF = -c^2; kDF = -d^2;
  6. (*直线 AB 与 CD 的交点:*)
  7. Jd1[a_, b_, c_, d_] := ((\!\(\*OverscriptBox[\(c\), \(_\)]\) d - c \!\(\*OverscriptBox[\(d\), \(_\)]\)) (a - b) - (\!\(\*OverscriptBox[\(a\), \(_\)]\) b - a \!\(\*OverscriptBox[\(b\), \(_\)]\)) (c - d))/((a - b) (\!\(\*OverscriptBox[\(c\), \(_\)]\) - \!\(\*OverscriptBox[\(d\), \(_\)]\)) - (\!\(\*OverscriptBox[\(a\), \(_\)]\) - \!\(\*OverscriptBox[\(b\), \(_\)]\)) (c - d));
  8. \!\(\*OverscriptBox[\(Jd1\), \(_\)]\)[a_, b_, c_, d_] := -(((c \!\(\*OverscriptBox[\(d\), \(_\)]\) - \!\(\*OverscriptBox[\(c\), \(_\)]\) d) (\!\(\*OverscriptBox[\(a\), \(_\)]\) - \!\(\*OverscriptBox[\(b\), \(_\)]\)) - ( a \!\(\*OverscriptBox[\(b\), \(_\)]\) - \!\(\*OverscriptBox[\(a\), \(_\)]\) b) (\!\(\*OverscriptBox[\(c\), \(_\)]\) - \!\(\*OverscriptBox[\(d\), \(_\)]\)))/((a - b) (\!\(\*OverscriptBox[\(c\), \(_\)]\) - \!\(\*OverscriptBox[\(d\), \(_\)]\)) - (\!\(\*OverscriptBox[\(a\), \(_\)]\) - \!\(\*OverscriptBox[\(b\), \(_\)]\)) (c - d)));
  9. (*过A1点、复斜率等于k1的直线,与过A2点、复斜率等于k2的直线的交点:*)
  10. Jd[k1_, a1_, k2_, a2_] := -((k2 (a1 - k1 \!\(\*OverscriptBox[\(a1\), \(_\)]\)) - k1 (a2 - k2 \!\(\*OverscriptBox[\(a2\), \(_\)]\)))/(k1 - k2));
  11. \!\(\*OverscriptBox[\(Jd\), \(_\)]\)[k1_, a1_, k2_, a2_] := -((a1 - k1 \!\(\*OverscriptBox[\(a1\), \(_\)]\) - (a2 - k2 \!\(\*OverscriptBox[\(a2\), \(_\)]\)))/(k1 - k2));
  12. e = Simplify@Jd[kAE, a, kBE, b]; \!\(\*OverscriptBox[\(e\), \(_\)]\) = Simplify@\!\(\*OverscriptBox[\(Jd\), \(_\)]\)[kAE, a, kBE, b];
  13. f = Simplify@Jd[kCF, c, kDF, d]; \!\(\*OverscriptBox[\(f\), \(_\)]\) = Simplify@\!\(\*OverscriptBox[\(Jd\), \(_\)]\)[kCF, c, kDF, d];
  14. p = Simplify@Jd1[a, c, b, d]; \!\(\*OverscriptBox[\(p\), \(_\)]\) = Simplify@\!\(\*OverscriptBox[\(Jd1\), \(_\)]\)[a, c, b, d];
  15. q = Simplify@Jd1[a, d, b, c]; \!\(\*OverscriptBox[\(q\), \(_\)]\) = Simplify@\!\(\*OverscriptBox[\(Jd1\), \(_\)]\)[a, d, b, c];
  16. k[a_, b_] := (a - b)/(\!\(\*OverscriptBox[\(a\), \(_\)]\) - \!\(\*OverscriptBox[\(b\), \(_\)]\)); (*复斜率定义*)
  17. Print["EP的复斜率 kEP = ", Simplify[k[e, p]]];
  18. Print["EF的复斜率 kEF = ", Simplify[k[e, f]]];
  19. Print["EQ的复斜率 kEQ = ", Simplify[k[e, q]]];
  20. Print["由于 kEP = kEF = kEQ,所以 EFPQ 四点共线。 "];
复制代码

119

主题

446

回帖

3179

积分

积分
3179

显示全部楼层

 楼主| TSC999 发表于 2023-6-18 06:47
本帖最后由 TSC999 于 2023-6-19 06:44 编辑 例 30:
证明三垂足共线题与解答.png
程序代码:
  1. Clear["Global`*"];(*令A为坐标原点,B为1点, *)
  2. \!\(\*OverscriptBox[\(a\), \(_\)]\) = a = 0; \!\(\*OverscriptBox[\(b\), \(_\)]\) = b = 1;
  3. (*令 AD、AC、BD、DC 的复斜率:*)kAD = u; kAC = u^2; kBD = v; kDC = w(*w是临时变量,最终会消去*);
  4. (*过A1点、复斜率等于k1的直线,与过A2点、复斜率等于k2的直线的交点:*)
  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. (*D点坐标:*)d = Simplify@Jd[kAD, a, kBD, b]; \!\(\*OverscriptBox[\(d\), \(_\)]\) = Simplify@\!\(\*OverscriptBox[\(Jd\), \(_\)]\)[kAD, a, kBD, b];Print["D = ", d];
  8. (*C点坐标:*)c = Simplify@Jd[kAC, a, kDC, d]; \!\(\*OverscriptBox[\(c\), \(_\)]\) = Simplify@\!\(\*OverscriptBox[\(Jd\), \(_\)]\)[kAC, a, kDC, d];
  9. (*求 w:*)
  10. Simplify@Solve[{(d - b) (\!\(\*OverscriptBox[\(d\), \(_\)]\) - \!\(\*OverscriptBox[\(b\), \(_\)]\)) == (d - c) (\!\(\*OverscriptBox[\(d\), \(_\)]\) - \!\(\*OverscriptBox[\(c\), \(_\)]\))}, {w}]; w = u^2 v; kDC = w;
  11. (*不含w的C点坐标:*)
  12. c = Simplify@Jd[kAC, a, kDC, d]; \!\(\*OverscriptBox[\(c\), \(_\)]\) = Simplify@\!\(\*OverscriptBox[\(Jd\), \(_\)]\)[kAC, a, kDC, d];
  13. Print["C = ", c];
  14. (*四个点确定的两条直线的交点:*)
  15. Jd1[a_, b_, c_, d_] := ((\!\(\*OverscriptBox[\(c\), \(_\)]\) d - c \!\(\*OverscriptBox[\(d\), \(_\)]\)) (a - b) - (\!\(\*OverscriptBox[\(a\), \(_\)]\) b - a \!\(\*OverscriptBox[\(b\), \(_\)]\)) (c - d))/((a - b) (\!\(\*OverscriptBox[\(c\), \(_\)]\) - \!\(\*OverscriptBox[\(d\), \(_\)]\)) - (\!\(\*OverscriptBox[\(a\), \(_\)]\) - \!\(\*OverscriptBox[\(b\), \(_\)]\)) (c - d));
  16. \!\(\*OverscriptBox[\(Jd1\), \(_\)]\)[a_, b_, c_, d_] := ((c \!\(\*OverscriptBox[\(d\), \(_\)]\) - \!\(\*OverscriptBox[\(c\), \(_\)]\) d) (\!\(\*OverscriptBox[\(a\), \(_\)]\) - \!\(\*OverscriptBox[\(b\), \(_\)]\)) - (a \!\(\*OverscriptBox[\(b\), \(_\)]\) - \!\(\*OverscriptBox[\(a\), \(_\)]\) b) (\!\(\*OverscriptBox[\(c\), \(_\)]\) - \!\(\*OverscriptBox[\(d\), \(_\)]\)))/((\!\(\*OverscriptBox[\(a\), \(_\)]\) - \!\(\*OverscriptBox[\(b\), \(_\)]\)) (c - d) - (a - b) (\!\(\*OverscriptBox[\(c\), \(_\)]\) - \!\(\*OverscriptBox[\(d\), \(_\)]\)));
  17. (*F点坐标:*)f = Simplify@Jd1[a, d, b, c]; \!\(\*OverscriptBox[\(f\), \(_\)]\) = Simplify@\!\(\*OverscriptBox[\(Jd1\), \(_\)]\)[a, d, b, c];Print["F = ", f];
  18. (*E点坐标:*)e = (a + f)/2; \!\(\*OverscriptBox[\(e\), \(_\)]\) = (\!\(\*OverscriptBox[\(a\), \(_\)]\) + \!\(\*OverscriptBox[\(f\), \(_\)]\))/2; Print["E = ", e];
  19. Foot[p_, x_, y_] := ( \!\(\*OverscriptBox[\(x\), \(_\)]\) y - x \!\(\*OverscriptBox[\(y\), \(_\)]\) + (x - y) \!\(\*OverscriptBox[\(p\), \(_\)]\) + (\!\(\*OverscriptBox[\(x\), \(_\)]\) - \!\(\*OverscriptBox[\(y\), \(_\)]\)) p)/(2 (\!\(\*OverscriptBox[\(x\), \(_\)]\) - \!\(\*OverscriptBox[\(y\), \(_\)]\)));  (* 从P点向XY直线引垂线,垂足的复坐标 *)
  20. \!\(\*OverscriptBox[\(Foot\), \(_\)]\)[p_, x_, y_] := (x \!\(\*OverscriptBox[\(y\), \(_\)]\) - \!\(\*OverscriptBox[\(x\), \(_\)]\) y + (\!\(\*OverscriptBox[\(x\), \(_\)]\) - \!\(\*OverscriptBox[\(y\), \(_\)]\)) p + (x - y) \!\(\*OverscriptBox[\(p\), \(_\)]\))/(2 (x - y));  
  21. (*G点坐标:*)g = Simplify@Foot[d, e, b]; \!\(\*OverscriptBox[\(g\), \(_\)]\) = Simplify@\!\(\*OverscriptBox[\(Foot\), \(_\)]\)[d, e, b]; Print["G = ", g];
  22. (*H点坐标:*)h = Simplify@Foot[a, b, c]; \!\(\*OverscriptBox[\(h\), \(_\)]\) = Simplify@\!\(\*OverscriptBox[\(Foot\), \(_\)]\)[a, b, c]; Print["H = ", h];
  23. (*I点坐标:*)i = Simplify@Foot[e, d, c]; \!\(\*OverscriptBox[\(i\), \(_\)]\) = Simplify@\!\(\*OverscriptBox[\(Foot\), \(_\)]\)[e, d, c]; Print["I = ", i];
  24. k[a_, b_] := (a - b)/(\!\(\*OverscriptBox[\(a\), \(_\)]\) - \!\(\*OverscriptBox[\(b\), \(_\)]\)); (*复斜率定义*)
  25. Print["GH的复斜率 kGH = ", Simplify[k[g, h]]];
  26. Print["GH的复斜率 kGI = ", Simplify[k[g, i]]];
  27. Print["由于 kGH = kGI,所以 G、H、I 三点共线。 "];
复制代码

119

主题

446

回帖

3179

积分

积分
3179

显示全部楼层

 楼主| TSC999 发表于 2023-7-26 09:40
本帖最后由 TSC999 于 2023-7-27 18:52 编辑 例 11A:
两角差相等题及解答.png

对于程序最后判断角度差是否相等的公式,证明如下:
图中 kAC 表示 AC 线段的复斜率,余类推。
根据复斜率的定义,有:
证明.png

程序代码:
  1. Clear["Global`*"];(*令\[EmptyUpTriangle]ABC的外接圆为单位圆,圆心O为坐标原点,且BC边平行于实轴,AB、AC的复斜率分别为 u^2、v^2 *)
  2. \!\(\*OverscriptBox[\(o\), \(_\)]\) = o = 0; a = I u v; \!\(\*OverscriptBox[\(a\), \(_\)]\) = 1/a; b = I u/v;
  3. \!\(\*OverscriptBox[\(b\), \(_\)]\) = 1/b; c = I v/u; \!\(\*OverscriptBox[\(c\), \(_\)]\) = 1/c;
  4. i = I (u + v - 1); \!\(\*OverscriptBox[\(i\), \(_\)]\) = -I (1/u + 1/v - 1);
  5. d = (I (u^2 (v + 1) + u (v^2 - 1) + (v - 1) v))/(2 u v); \!\(\*OverscriptBox[\(d\), \(_\)]\) = ( I (u^2 (v - 1) + u (v^2 - 1) - v (v + 1)))/(2 u v);
  6. e = (I (u^2 (v + 1) + u (v^2 - 1) - (v - 1) v))/(2 u); \!\(\*OverscriptBox[\(e\), \(_\)]\) = -(( I (u^2 (v - 1) - u v^2 + u + v (v + 1)))/(2 u v^2));
  7. f = (I (u^2 (v - 1) + u (v^2 + 1) + (v - 1) v))/(2 v); \!\(\*OverscriptBox[\(f\), \(_\)]\) = ( I (u^2 (v - 1) - u (v^2 + 1) + (v - 1) v))/(2 u^2 v);
  8. k[a_, b_] := (a - b)/(\!\(\*OverscriptBox[\(a\), \(_\)]\) - \!\(\*OverscriptBox[\(b\), \(_\)]\)); (*复斜率定义*)
  9. W1 = {x, \!\(\*OverscriptBox[\(x\), \(_\)]\)} /. Simplify@Solve[{(o - b) (\!\(\*OverscriptBox[\(o\), \(_\)]\) - \!\(\*OverscriptBox[\(b\), \(_\)]\)) == (o - x) (\!\(\*OverscriptBox[\(o\), \(_\)]\) - \!\(\*OverscriptBox[\(x\), \(_\)]\)), k[e, f] == k[e, x]}, {x, \!\(\*OverscriptBox[\(x\), \(_\)]\)}] // Flatten ;
  10. x = Part[W1, 1]; \!\(\*OverscriptBox[\(x\), \(_\)]\) = Part[W1, 2];
  11. W2 = {y, \!\(\*OverscriptBox[\(y\), \(_\)]\)} /. Simplify@Solve[{(o - b) (\!\(\*OverscriptBox[\(o\), \(_\)]\) - \!\(\*OverscriptBox[\(b\), \(_\)]\)) == (o - y) (\!\(\*OverscriptBox[\(o\), \(_\)]\) - \!\(\*OverscriptBox[\(y\), \(_\)]\)), k[e, f] == k[e, y]}, {y, \!\(\*OverscriptBox[\(y\), \(_\)]\)}] // Flatten ;
  12. y = Part[W2, 3]; \!\(\*OverscriptBox[\(y\), \(_\)]\) = Part[W2, 4];
  13. Print["X = ", x]; Print["Y = ", y];
  14. Print["\!\(\*FractionBox[\(kXI\), \(kXD\)]\)\!\(\*FractionBox[\(kBD\), \(kBI\)]\)=\!\(\*FractionBox[\(kYD\), \(kYI\)]\)\!\(\*FractionBox[\(kCI\), \(kCD\)]\) 成立吗:", Simplify[k[x, i]/k[x, d] k[b, d]/k[b, i] == k[y, d]/k[y, i] k[c, i]/k[c, d]]];
  15. Print["由于\!\(\*FractionBox[\(kXI\), \(kXD\)]\)\!\(\*FractionBox[\(kBD\), \(kBI\)]\)=\!\(\*FractionBox[\(kYD\), \(kYI\)]\)\!\(\*FractionBox[\(kCI\), \(kCD\)]\),所以 \[Angle]IXD-\[Angle]B/2) = \[Angle]IYD-\[Angle]C/2 "];
复制代码

119

主题

446

回帖

3179

积分

积分
3179

显示全部楼层

 楼主| TSC999 发表于 2023-7-26 19:18
例 12A:
证明三对线段长度比相等.png
程序代码:
  1. Clear["Global`*"]; (*令\[EmptyUpTriangle]ABC的外接圆为单位圆,圆心O为坐标原点,且BC边平行于实轴,AB、AC的复斜率分别为u^2、v^2 *)
  2. \!\(\*OverscriptBox[\(o\), \(_\)]\) = o = 0; a = I u v; \!\(\*OverscriptBox[\(a\), \(_\)]\) = 1/a; b = I u/v;
  3. \!\(\*OverscriptBox[\(b\), \(_\)]\) = 1/b; c = I v/u; \!\(\*OverscriptBox[\(c\), \(_\)]\) = 1/c;
  4. d = (b + c)/2; \!\(\*OverscriptBox[\(d\), \(_\)]\) = (\!\(\*OverscriptBox[\(b\), \(_\)]\) + \!\(\*OverscriptBox[\(c\), \(_\)]\))/2; e = (a + c)/2; \!\(\*OverscriptBox[\(e\), \(_\)]\) = (\!\(\*OverscriptBox[\(a\), \(_\)]\) + \!\(\*OverscriptBox[\(c\), \(_\)]\))/2; f = (b + a)/2; \!\(\*OverscriptBox[\(f\), \(_\)]\) = (\!\(\*OverscriptBox[\(b\), \(_\)]\) + \!\(\*OverscriptBox[\(a\), \(_\)]\))/2;
  5. i = I (u + v - 1); \!\(\*OverscriptBox[\(i\), \(_\)]\) = -I (1/u + 1/v - 1);
  6. i1 = (I (u^2 (v + 1) + u (v^2 - 1) + (v - 1) v))/(2 u v); \!\(\*OverscriptBox[\(i1\), \(_\)]\) = ( I (u^2 (v - 1) + u (v^2 - 1) - v (v + 1)))/(2 u v);
  7. i2 = (I (u^2 (v + 1) + u (v^2 - 1) - (v - 1) v))/(2 u); \!\(\*OverscriptBox[\(i2\), \(_\)]\) = -((  I (u^2 (v - 1) - u v^2 + u + v (v + 1)))/(2 u v^2));
  8. i3 = (I (u^2 (v - 1) + u (v^2 + 1) + (v - 1) v))/(2 v); \!\(\*OverscriptBox[\(i3\), \(_\)]\) = ( I (u^2 (v - 1) - u (v^2 + 1) + (v - 1) v))/(2 u^2 v);
  9. (*三角形ABC的九点圆圆心坐标:*)   o9 = (I (u^2 (v^2 + 1) + v^2))/(2 u v);
  10. \!\(\*OverscriptBox[\(o9\), \(_\)]\) = -((I (u^2 + v^2 + 1))/(2 u v));
  11. (*费尔巴哈点(九点圆与内切圆的切点)的坐标:*)
  12. (*圆(O1,A)与圆(O2,B)连心线与根轴的交点 P 的坐标:*)
  13. XiangjiaoxuanLianxin[o1_, a_, o2_, b_] := (a \!\(\*OverscriptBox[\(a\), \(_\)]\) - b \!\(\*OverscriptBox[\(b\), \(_\)]\) + \!\(\*OverscriptBox[\(b\), \(_\)]\) o2 + b \!\(\*OverscriptBox[\(o2\), \(_\)]\) - \!\(\*OverscriptBox[\(a\), \(_\)]\) o1 - a \!\(\*OverscriptBox[\(o1\), \(_\)]\) + \!\(\*OverscriptBox[\(o2\), \(_\)]\) o1 - o2 \!\(\*OverscriptBox[\(o1\), \(_\)]\))/(2 (\!\(\*OverscriptBox[\(o2\), \(_\)]\) - \!\(\*OverscriptBox[\(o1\), \(_\)]\)));
  14. \!\(\*OverscriptBox[\(XiangjiaoxuanLianxin\), \(_\)]\)[o1_, a_, o2_,   b_] := (a \!\(\*OverscriptBox[\(a\), \(_\)]\) - b \!\(\*OverscriptBox[\(b\), \(_\)]\) + \!\(\*OverscriptBox[\(b\), \(_\)]\) o2 + b \!\(\*OverscriptBox[\(o2\), \(_\)]\) - \!\(\*OverscriptBox[\(a\), \(_\)]\) o1 - a \!\(\*OverscriptBox[\(o1\), \(_\)]\) + o2 \!\(\*OverscriptBox[\(o1\), \(_\)]\) - \!\(\*OverscriptBox[\(o2\), \(_\)]\) o1)/(2 (o2 - o1));
  15. fe = Simplify@XiangjiaoxuanLianxin[o9, d, i, i1];
  16. \!\(\*OverscriptBox[\(fe\), \(_\)]\) = Simplify@\!\(\*OverscriptBox[\(XiangjiaoxuanLianxin\), \(_\)]\)[o9, d, i, i1];
  17. (*长度DFe的平方:*)DFe2 = Simplify[(d - fe) (\!\(\*OverscriptBox[\(d\), \(_\)]\) - \!\(\*OverscriptBox[\(fe\), \(_\)]\))];
  18. (*长度EFe的平方:*)EFe2 = Simplify[(e - fe) (\!\(\*OverscriptBox[\(e\), \(_\)]\) - \!\(\*OverscriptBox[\(fe\), \(_\)]\))];
  19. (*长度FFe的平方:*)FFe2 = Simplify[(f - fe) (\!\(\*OverscriptBox[\(f\), \(_\)]\) - \!\(\*OverscriptBox[\(fe\), \(_\)]\))];
  20. (*长度DI1的平方:*)DI12 = Simplify[(d - i1) (\!\(\*OverscriptBox[\(d\), \(_\)]\) - \!\(\*OverscriptBox[\(i1\), \(_\)]\))];
  21. (*长度EI2的平方:*)EI22 = Simplify[(e - i2) (\!\(\*OverscriptBox[\(e\), \(_\)]\) - \!\(\*OverscriptBox[\(i2\), \(_\)]\))];
  22. (*长度FI3的平方:*)FI32 = Simplify[(f - i3) (\!\(\*OverscriptBox[\(f\), \(_\)]\) - \!\(\*OverscriptBox[\(i3\), \(_\)]\))];
  23. Simplify[DFe2/DI12]
  24. Simplify[EFe2/EI22]
  25. Simplify[FFe2/FI32]
  26. Simplify[DFe2/DI12 == EFe2/EI22 == FFe2/FI32]
  27. Print["由于长度的平方比相等,所以长度的比也相等。故 \!\(\*FractionBox[\(DFe\), \(DI1\)]\)=\!\(\*FractionBox[\(EFe\), \
  28. \(EI2\)]\)=\!\(\*FractionBox[\(FFe\), \(FI3\)]\)"]
复制代码

119

主题

446

回帖

3179

积分

积分
3179

显示全部楼层

 楼主| TSC999 发表于 2023-7-27 10:27
例 13A:
证明 O G I 共线.png
程序代码:
  1. Clear["Global`*"]; (*令\[EmptyUpTriangle]ABC的外接圆为单位圆,圆心O为坐标原点,且BC边平行于实轴,AB、AC的复斜率分别为u^2、v^2 *)
  2. \!\(\*OverscriptBox[\(o\), \(_\)]\) = o = 0; a = I u v; \!\(\*OverscriptBox[\(a\), \(_\)]\) = 1/a; b = I u/v;
  3. \!\(\*OverscriptBox[\(b\), \(_\)]\) = 1/b; c = I v/u; \!\(\*OverscriptBox[\(c\), \(_\)]\) = 1/c;
  4. i = I (u + v - 1); \!\(\*OverscriptBox[\(i\), \(_\)]\) = -I (1/u + 1/v - 1);
  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));
  8. \!\(\*OverscriptBox[\(Jd\), \(_\)]\)[k1_, a1_, k2_, a2_] := -((a1 - k1 \!\(\*OverscriptBox[\(a1\), \(_\)]\) - (a2 - k2 \!\(\*OverscriptBox[\(a2\), \(_\)]\)))/(k1 - k2));
  9. Subscript[A, B] = Simplify@Jd[k[b, i], b, -k[b, c], o]; \!\(\*OverscriptBox[SubscriptBox[\(A\), \(B\)], \(_\)]\) = Simplify@\!\(\*OverscriptBox[\(Jd\), \(_\)]\)[k[b, i], b, -k[b, c], o];
  10. Subscript[A, c] = Simplify@Jd[k[c, i], c, -k[b, c], o]; \!\(\*OverscriptBox[SubscriptBox[\(A\), \(c\)], \(_\)]\) = Simplify@\!\(\*OverscriptBox[\(Jd\), \(_\)]\)[k[c, i], c, -k[b, c], o];
  11. Subscript[C, A] = Simplify@Jd[k[a, i], a, -k[a, b], o]; \!\(\*OverscriptBox[SubscriptBox[\(C\), \(A\)], \(_\)]\) = Simplify@\!\(\*OverscriptBox[\(Jd\), \(_\)]\)[k[a, i], a, -k[a, b], o];
  12. Subscript[C, B] = Simplify@Jd[k[b, i], b, -k[a, b], o]; \!\(\*OverscriptBox[SubscriptBox[\(C\), \(B\)], \(_\)]\) = Simplify@\!\(\*OverscriptBox[\(Jd\), \(_\)]\)[k[b, i], b, -k[a, b], o];
  13. Subscript[B, A] = Simplify@Jd[k[a, i], a, -k[a, c], o]; \!\(\*OverscriptBox[SubscriptBox[\(B\), \(A\)], \(_\)]\) = Simplify@\!\(\*OverscriptBox[\(Jd\), \(_\)]\)[k[a, i], a, -k[a, c], o];
  14. Subscript[B, c] = Simplify@Jd[k[c, i], c, -k[a, c], o]; \!\(\*OverscriptBox[SubscriptBox[\(B\), \(c\)], \(_\)]\) = Simplify@\!\(\*OverscriptBox[\(Jd\), \(_\)]\)[k[c, i], c, -k[a, c], o];
  15. 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 的外心坐标:*)   
  16. \!\(\*OverscriptBox[\(WX\), \(_\)]\)[a_, b_, c_] := -((a \!\(\*OverscriptBox[\(a\), \(_\)]\) (\!\(\*OverscriptBox[\(c\), \(_\)]\) - \!\(\*OverscriptBox[\(b\), \(_\)]\)) + b \!\(\*OverscriptBox[\(b\), \(_\)]\) (\!\(\*OverscriptBox[\(a\), \(_\)]\) - \!\(\*OverscriptBox[\(c\), \(_\)]\)) + c \!\(\*OverscriptBox[\(c\), \(_\)]\) (\!\(\*OverscriptBox[\(b\), \(_\)]\) - \!\(\*OverscriptBox[\(a\), \(_\)]\)))/(\!\(\*OverscriptBox[\(a\), \(_\)]\) (c - b) + \!\(\*OverscriptBox[\(b\), \(_\)]\) (a - c) + \!\(\*OverscriptBox[\(c\), \(_\)]\) (b - a)));
  17. Subscript[O, A] = Simplify@WX[i, Subscript[A, B], Subscript[A, c]]; \!\(\*OverscriptBox[SubscriptBox[\(O\), \(A\)], \(_\)]\) = Simplify@\!\(\*OverscriptBox[\(WX\), \(_\)]\)[i, Subscript[A, B], Subscript[A, c]];
  18. Subscript[O, B] = Simplify@WX[i, Subscript[B, A], Subscript[B, c]]; \!\(\*OverscriptBox[SubscriptBox[\(O\), \(B\)], \(_\)]\) = Simplify@\!\(\*OverscriptBox[\(WX\), \(_\)]\)[i, Subscript[B, A], Subscript[B, c]];
  19. Subscript[O, C] = Simplify@WX[i, Subscript[C, A], Subscript[C, B]];
  20. \!\(\*OverscriptBox[SubscriptBox[\(O\), \(C\)], \(_\)]\) = Simplify@\!\(\*OverscriptBox[\(WX\), \(_\)]\)[i, Subscript[C, A], Subscript[C, B]];
  21. g = Simplify[(Subscript[O, A] + Subscript[O, B] + Subscript[O, C])/3]; \!\(\*OverscriptBox[\(g\), \(_\)]\) = Simplify[(\!\(\*OverscriptBox[SubscriptBox[\(O\), \(A\)], \(_\)]\) + \!\(\*OverscriptBox[SubscriptBox[\(O\), \(B\)], \(_\)]\) + \!\(\*OverscriptBox[SubscriptBox[\(O\), \(C\)], \(_\)]\))/3];
  22. Print["\!\(\*SubscriptBox[\(O\), \(A\)]\) = ", Subscript[O, A]];
  23. Print["\!\(\*SubscriptBox[\(O\), \(B\)]\) = ", Subscript[O, B]];
  24. Print["\!\(\*SubscriptBox[\(O\), \(C\)]\) = ", Subscript[O, C]];
  25. Print["G = ", g];
  26. Print["OG的复斜率是否等于OI的复斜率:", Simplify[k[o, g] == k[o, i]]];
  27. Print["因为OG的复斜率等于OI的复斜率,所以 O、G、I 三点共线。"];
复制代码

119

主题

446

回帖

3179

积分

积分
3179

显示全部楼层

 楼主| TSC999 发表于 2023-8-9 16:15
例 14A:
证明AD平行于IM题与解答.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/a; b = I u/v;
  3. \!\(\*OverscriptBox[\(b\), \(_\)]\) = 1/b; c = I v/u; \!\(\*OverscriptBox[\(c\), \(_\)]\) = 1/c;
  4. i = I (u + v - 1); \!\(\*OverscriptBox[\(i\), \(_\)]\) = -I (1/u + 1/v - 1);
  5. e = (I (u^2 (v - 1) + u (v^2 + 1) + (v - 1) v))/(2 v); \!\(\*OverscriptBox[\(e\), \(_\)]\) = ( I (u^2 (v - 1) - u (v^2 + 1) + (v - 1) v))/(2 u^2 v);
  6. f = (I (u^2 (v + 1) + u (v^2 - 1) - (v - 1) v))/(2 u); \!\(\*OverscriptBox[\(f\), \(_\)]\) = -((I (u^2 (v - 1) - u v^2 + u + v (v + 1)))/(2 u v^2));
  7. (*以上是此构图下的已知公式,直接引用,不再推导*)
  8. m = (b + c)/2; \!\(\*OverscriptBox[\(m\), \(_\)]\) = (\!\(\*OverscriptBox[\(b\), \(_\)]\) + \!\(\*OverscriptBox[\(c\), \(_\)]\))/2;
  9. k[a_, b_] := (a - b)/(\!\(\*OverscriptBox[\(a\), \(_\)]\) - \!\(\*OverscriptBox[\(b\), \(_\)]\)); (*复斜率定义*)
  10. W1 = {p, \!\(\*OverscriptBox[\(p\), \(_\)]\)} /. Simplify@Solve[{k[a, m] == k[a, p], k[e, f] == k[e, p]}, {p, \!\(\*OverscriptBox[\(p\), \(_\)]\)}] // Flatten;
  11. p = Part[W1, 1]; \!\(\*OverscriptBox[\(p\), \(_\)]\) = Part[W1, 2];
  12. 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) +
  13. \!\(\*OverscriptBox[\(c\), \(_\)]\) (b - a));(*三角形 ABC 的外心坐标:*)   
  14. \!\(\*OverscriptBox[\(WX\), \(_\)]\)[a_, b_, c_] := -((a \!\(\*OverscriptBox[\(a\), \(_\)]\) (\!\(\*OverscriptBox[\(c\), \(_\)]\) - \!\(\*OverscriptBox[\(b\), \(_\)]\)) + b \!\(\*OverscriptBox[\(b\), \(_\)]\) (\!\(\*OverscriptBox[\(a\), \(_\)]\) - \!\(\*OverscriptBox[\(c\), \(_\)]\)) + c \!\(\*OverscriptBox[\(c\), \(_\)]\) (\!\(\*OverscriptBox[\(b\), \(_\)]\) - \!\(\*OverscriptBox[\(a\), \(_\)]\)))/(\!\(\*OverscriptBox[\(a\), \(_\)]\) (c - b) + \!\(\*OverscriptBox[\(b\), \(_\)]\) (a - c) + \!\(\*OverscriptBox[\(c\), \(_\)]\) (b - a)));
  15. o1 = Simplify@WX[a, e, f]; \!\(\*OverscriptBox[\(o1\), \(_\)]\) = Simplify@\!\(\*OverscriptBox[\(WX\), \(_\)]\)[a, e, f];(*圆AEF的圆心*)
  16. W2 = {q, \!\(\*OverscriptBox[\(q\), \(_\)]\)} /. Simplify@Solve[{(o - b) (\!\(\*OverscriptBox[\(o\), \(_\)]\) - \!\(\*OverscriptBox[\(b\), \(_\)]\)) == (o - q) (\!\(\*OverscriptBox[\(o\), \(_\)]\) - \!\(\*OverscriptBox[\(q\), \(_\)]\)), (o1 - a) (\!\(\*OverscriptBox[\(o1\), \(_\)]\) - \!\(\*OverscriptBox[\(a\), \(_\)]\)) == (o1 - q) (\!\(\*OverscriptBox[\(o1\), \(_\)]\) - \!\(\*OverscriptBox[\(q\), \(_\)]\)), q != a}, {q, \!\(\*OverscriptBox[\(q\), \(_\)]\)}] // Flatten;
  17. q = Part[W2, 1]; \!\(\*OverscriptBox[\(q\), \(_\)]\) = Part[W2, 2];
  18. W3 = {d, \!\(\*OverscriptBox[\(d\), \(_\)]\)} /. Simplify@Solve[{k[q, p] == k[q, d], (o1 - a) (\!\(\*OverscriptBox[\(o1\), \(_\)]\) -
  19. \!\(\*OverscriptBox[\(a\), \(_\)]\)) == (o1 - d) (\!\(\*OverscriptBox[\(o1\), \(_\)]\) - \!\(\*OverscriptBox[\(d\), \(_\)]\)), q != a}, {d, \!\(\*OverscriptBox[\(d\), \(_\)]\)}] // Flatten;
  20. d = Part[W3, 1]; \!\(\*OverscriptBox[\(d\), \(_\)]\) = Part[W3, 2];
  21. Print["AD 的复斜率 kAD 是否等于 IM 的复斜率 kIM:", Simplify[k[a, d] == k[i, m]]];
  22. Print["由于 kAD = kIM,所以 AD//IM。"];
复制代码

119

主题

446

回帖

3179

积分

积分
3179

显示全部楼层

 楼主| TSC999 发表于 2023-8-10 08:49
例 15A:
证明BE等于DC题与解答.png
程序代码:
  1. Clear["Global`*"];(* 令AC中点O为坐标系原点,A点坐标为-1,C点为 1。令 AB 边的复斜率为 kAB=u; 则kBC=-u; kAC=1 *)
  2. \!\(\*OverscriptBox[\(o\), \(_\)]\) = o = 0; \!\(\*OverscriptBox[\(a\), \(_\)]\) = a = -1;
  3. \!\(\*OverscriptBox[\(c\), \(_\)]\) = c = 1; b = u; \!\(\*OverscriptBox[\(b\), \(_\)]\) = 1/b;
  4. \!\(\*OverscriptBox[\(f\), \(_\)]\) =  f = \[Lambda] c + (1 - \[Lambda]) a;(* \[Lambda]=AF/AC *)
  5. k[a_, b_] := (a - b)/(\!\(\*OverscriptBox[\(a\), \(_\)]\) - \!\(\*OverscriptBox[\(b\), \(_\)]\));(*复斜率定义*)
  6. Foot[p_, x_, y_] := ( \!\(\*OverscriptBox[\(x\), \(_\)]\) y - x \!\(\*OverscriptBox[\(y\), \(_\)]\) + (x - y) \!\(\*OverscriptBox[\(p\), \(_\)]\) + (\!\(\*OverscriptBox[\(x\), \(_\)]\) - \!\(\*OverscriptBox[\(y\), \(_\)]\)) p)/(2 (\!\(\*OverscriptBox[\(x\), \(_\)]\) - \!\(\*OverscriptBox[\(y\), \(_\)]\)));  (* 从P点向XY直线引垂线,垂足的复坐标 *)
  7. \!\(\*OverscriptBox[\(Foot\), \(_\)]\)[p_, x_, y_] := (x \!\(\*OverscriptBox[\(y\), \(_\)]\) - \!\(\*OverscriptBox[\(x\), \(_\)]\) y + (\!\(\*OverscriptBox[\(x\), \(_\)]\) - \!\(\*OverscriptBox[\(y\), \(_\)]\)) p + (x - y) \!\(\*OverscriptBox[\(p\), \(_\)]\))/(2 (x - y));  
  8. d = Simplify@Foot[a, b, f]; \!\(\*OverscriptBox[\(d\), \(_\)]\) = Simplify@\!\(\*OverscriptBox[\(Foot\), \(_\)]\)[a, b, f];
  9. \!\(\*OverscriptBox[\(dd\), \(_\)]\) = \!\(\*OverscriptBox[\(d\), \(_\)]\);
  10. e = Simplify@Foot[c, b, f]; \!\(\*OverscriptBox[\(e\), \(_\)]\) = Simplify@\!\(\*OverscriptBox[\(Foot\), \(_\)]\)[c, b, f];
  11. \!\(\*OverscriptBox[\(ee\), \(_\)]\) = \!\(\*OverscriptBox[\(e\), \(_\)]\);
  12. W1 = {\[Lambda]} /. Simplify@Solve[{k[d, b]/k[d, c] == k[a, b]/k[a, c] k[a, b]/k[a, c]}, {\[Lambda]}] // Flatten ; (*按已知条件\[Angle]BDC=2\[Angle]BAC列方程求\[Lambda],以确定F点的具体位置*)
  13. \[Lambda] = Part[W1, 1]; \!\(\*OverscriptBox[\(d\), \(_\)]\) = \!\(\*OverscriptBox[\(dd\), \(_\)]\);
  14. \!\(\*OverscriptBox[\(e\), \(_\)]\) = \!\(\*OverscriptBox[\(ee\), \(_\)]\); (* 重新计算 D、E 点的坐标 *)
  15. Print["F = ", Simplify[f]]; Print["D = ", Simplify[d]]; Print["E = ", Simplify[e]];
  16. (* (BD^2):*)BD2 = Simplify[(b - d) (\!\(\*OverscriptBox[\(b\), \(_\)]\) - \!\(\*OverscriptBox[\(d\), \(_\)]\)) /. \[Lambda] -> Part[W1, 1]];
  17. (* (CD^2):*)CD2 = Simplify[(c - d) (\!\(\*OverscriptBox[\(c\), \(_\)]\) - \!\(\*OverscriptBox[\(d\), \(_\)]\)) /. \[Lambda] -> Part[W1, 1]];
  18. (* (BE^2):*)BE2 = Simplify[(b - e) (\!\(\*OverscriptBox[\(b\), \(_\)]\) - \!\(\*OverscriptBox[\(e\), \(_\)]\)) /. \[Lambda] -> Part[W1, 1]];
  19. Print["\!\(\*SuperscriptBox[\(BE\), \(2\)]\) = ", BE2];
  20. Print["\!\(\*SuperscriptBox[\(CD\), \(2\)]\) = ", CD2];
  21. Print["因为 \!\(\*SuperscriptBox[\(BE\), \(2\)]\) = \!\(\*SuperscriptBox[\(CD\), \(2\)]\),所以 BE = CD。 "];
  22. Print["\!\(\*SuperscriptBox[\(BD\), \(2\)]\) = ", BD2];
  23. cos2\[Angle][a_, b_, c_] := 1/2 (k[a, b]/k[b, c] + k[b, c]/k[a, b]); (*从AB边逆时针转到BC边的有向角2\[Angle]ABC的余弦*)
  24. cos2\[Angle]BAC = Simplify@cos2\[Angle][c, a, b];
  25. Print["cos2\[Angle]BAC = ", cos2\[Angle]BAC];
  26. Print["\!\(\*SuperscriptBox[\(BD\), \(2\)]\)/\!\(\*SuperscriptBox[\(CD\), \(2\)]\) = (1+cos2\[Angle]BAC\!\(\*SuperscriptBox[\()\), \(2\)]\) 成立否:",
  27.   Simplify[BD2/CD2 == (1 + cos2\[Angle]BAC)^2]];
  28. Print["所以 BD/CD = 1+cos2\[Angle]BAC"];
复制代码

119

主题

446

回帖

3179

积分

积分
3179

显示全部楼层

 楼主| TSC999 发表于 2023-8-12 20:14
本帖最后由 TSC999 于 2023-8-12 20:25 编辑 例 16A:
求面积题与解答.png
程序代码:
  1. Clear["Global`*"];
  2. \!\(\*OverscriptBox[\(o\), \(_\)]\) = o = 0; p = u + v I;
  3. \!\(\*OverscriptBox[\(p\), \(_\)]\) = u - v I; a = -Sqrt[R^2 - v^2] + v I;
  4. \!\(\*OverscriptBox[\(a\), \(_\)]\) = -Sqrt[R^2 - v^2] - v I;c = Sqrt[R^2 - v^2] + v I;
  5. \!\(\*OverscriptBox[\(c\), \(_\)]\) = Sqrt[R^2 - v^2] - v I; b = u - Sqrt[R^2 - u^2] I;  
  6. \!\(\*OverscriptBox[\(b\), \(_\)]\) = u + Sqrt[R^2 - u^2] I;
  7. d = u + Sqrt[R^2 - u^2] I; \!\(\*OverscriptBox[\(d\), \(_\)]\) = u - Sqrt[R^2 - u^2] I;
  8. AD = Simplify[Sqrt[(a - d) (\!\(\*OverscriptBox[\(a\), \(_\)]\) - \!\(\*OverscriptBox[\(d\), \(_\)]\))]];
  9. AD = Sqrt[2] Sqrt[-v Sqrt[R^2 - u^2] + u Sqrt[R^2 - v^2] + R^2];
  10. AM = Sqrt[2]/2 Sqrt[-v Sqrt[R^2 - u^2] + u Sqrt[R^2 - v^2] + R^2]; \[Angle]AOD = 2 ArcSin[(Sqrt[2] Sqrt[-v Sqrt[R^2 - u^2] + u Sqrt[R^2 - v^2] + R^2])/(2 R)];
  11. S[a_, b_, c_] := (\!\(\*OverscriptBox[\(a\), \(_\)]\) (b - c) + \!\(\*OverscriptBox[\(b\), \(_\)]\) (c - a) + \!\(\*OverscriptBox[\(c\), \(_\)]\) (a - b))/(4 I);(*已知三角形各顶点坐标,求其有向面积,ABC逆时针向环绕*)
  12. (*弓形 DA 的面积:*)  SDA = 1/2 R^2 \[Angle]AOD - S[o, d, a];
  13. AB = Simplify[Sqrt[(a - b) (\!\(\*OverscriptBox[\(a\), \(_\)]\) - \!\(\*OverscriptBox[\(b\), \(_\)]\))]]; AB = Sqrt[2] Sqrt[v Sqrt[R^2 - u^2] + u Sqrt[R^2 - v^2] + R^2];
  14. \[Angle]AOB = 2 ArcSin[(Sqrt[2] Sqrt[v Sqrt[R^2 - u^2] + u Sqrt[R^2 - v^2] + R^2])/( 2 R)];(*弓形 AB 的面积:*)  SAB = 1/2 R^2 \[Angle]AOB - S[o, a, b];
  15. BC = Simplify[Sqrt[(c - b) (\!\(\*OverscriptBox[\(c\), \(_\)]\) - \!\(\*OverscriptBox[\(b\), \(_\)]\))]]; BC = Sqrt[2] Sqrt[v Sqrt[R^2 - u^2] - u Sqrt[R^2 - v^2] + R^2];
  16. \[Angle]BOC = 2 ArcSin[(Sqrt[2] Sqrt[v Sqrt[R^2 - u^2] - u Sqrt[R^2 - v^2] + R^2])/(2 R)]; (*弓形 BC 的面积:*)  SBC = 1/2 R^2 \[Angle]BOC - S[o, b, c];
  17. CD = Simplify[Sqrt[(c - d) (\!\(\*OverscriptBox[\(c\), \(_\)]\) - \!\(\*OverscriptBox[\(d\), \(_\)]\))]]; CD = Sqrt[2] Sqrt[-v Sqrt[R^2 - u^2] - u Sqrt[R^2 - v^2] + R^2];
  18. \[Angle]COD = 2 ArcSin[(Sqrt[2] Sqrt[-v Sqrt[R^2 - u^2] - u Sqrt[R^2 - v^2] + R^2])/(2 R)]; (*弓形 CD 的面积:*)  SCD = 1/2 R^2 \[Angle]COD - S[o, c, d];
  19. (*饼形BPA的面积:*) S25 = Simplify[S[b, p, a] + SAB];
  20. (*饼形CPB的面积:*) S20 = Simplify[S[c, p, b] + SBC];
  21. (*饼形DPC的面积:*) S12 = Simplify[S[d, p, c] + SCD];
  22. (*饼形APD的面积:*) S = Simplify[S[a, p, d] + SDA];
  23. S = R^2 ArcSin[Sqrt[-v Sqrt[R^2 - u^2] + u Sqrt[R^2 - v^2] + R^2]/(Sqrt[2] R)] + (u Sqrt[R^2 - u^2] - v Sqrt[R^2 - v^2])/2 - u v;
  24. FindRoot[{S25 == 25, S20 == 20, S12 == 12}, {R, 4.8}, {u, 0.44}, {v, 0.92}, WorkingPrecision -> 100]
  25. R = 4.8000946072772487658519859871186420667633318263981286274364313349699\
  26. 12416189838911534091245956958841452489496053896846991968318720513;  
  27. u = 0.4373236126486513360462601165666796833999556664046639643965559213\
  28. 1999379277356815311127012907121818327581605973546464120285277607687303;
  29. v = 0.9231447252132880133083982527759473192580065323608552663438253966\
  30. 839681783172577515490917898267180292042909991137460460863000006365489;
  31. Print["S = ", N[S, 50]];
复制代码

检验程序代码:
  1. Clear["Global`*"];(*检验*)
  2. R = 4.800094607277248765851985987;
  3. u = 0.437323612648651336046260116;
  4. v = 0.923144725213288013308398252;
  5. S25 = R^2 ArcSin[Sqrt[v Sqrt[R^2 - u^2] + u Sqrt[R^2 - v^2] + R^2]/(Sqrt[2] R)] + (u Sqrt[R^2 - u^2] + v Sqrt[R^2 - v^2])/2 + u v
  6. S20 = R^2 ArcSin[Sqrt[v Sqrt[R^2 - u^2] - u Sqrt[R^2 - v^2] + R^2]/(Sqrt[2] R)] + (v Sqrt[R^2 - v^2] - u Sqrt[R^2 - u^2])/2 - u v
  7. S12 = R^2 ArcSin[Sqrt[-v Sqrt[R^2 - u^2] - u Sqrt[R^2 - v^2] + R^2]/(Sqrt[2] R)] - (u Sqrt[R^2 - u^2] + v Sqrt[R^2 - v^2])/2 + u v
  8. S = R^2 ArcSin[Sqrt[-v Sqrt[R^2 - u^2] + u Sqrt[R^2 - v^2] + R^2]/(Sqrt[2] R)] + (u Sqrt[R^2 - u^2] - v Sqrt[R^2 - v^2])/2 - u v
  9. \[Pi] R^2
  10. S25 + S20 + S12 + S
复制代码

119

主题

446

回帖

3179

积分

积分
3179

显示全部楼层

 楼主| TSC999 发表于 2023-8-14 18:38
例 17A:
证明两角相等.png
程序代码:
  1. Clear["Global`*"]; (*设B在坐标原点,C在1点, kAB=u^2,kAC=1/v^2,圆半径为 R *)
  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); i = (u (v - 1))/(u v - 1);
  4. \!\(\*OverscriptBox[\(i\), \(_\)]\) = (v - 1)/(u v - 1);\!\(\*OverscriptBox[\(d\), \(_\)]\) = d = \[Lambda] c;
  5. Foot[p_, x_, y_] := (\!\(\*OverscriptBox[\(x\), \(_\)]\) y - x \!\(\*OverscriptBox[\(y\), \(_\)]\) + (x - y) \!\(\*OverscriptBox[\(p\), \(_\)]\) + (\!\(\*OverscriptBox[\(x\), \(_\)]\) - \!\(\*OverscriptBox[\(y\), \(_\)]\)) p)/(2 (\!\(\*OverscriptBox[\(x\), \(_\)]\) - \!\(\*OverscriptBox[\(y\), \(_\)]\)));  (* 从P点向XY直线引垂线,垂足的复坐标 *)
  6. \!\(\*OverscriptBox[\(Foot\), \(_\)]\)[p_, x_, y_] := (x \!\(\*OverscriptBox[\(y\), \(_\)]\) - \!\(\*OverscriptBox[\(x\), \(_\)]\) y + (\!\(\*OverscriptBox[\(x\), \(_\)]\) - \!\(\*OverscriptBox[\(y\), \(_\)]\)) p + (x - y) \!\(\*OverscriptBox[\(p\), \(_\)]\))/(2 (x - y));  
  7. f = Simplify@Foot[i, a, d]; \!\(\*OverscriptBox[\(f\), \(_\)]\) = Simplify@\!\(\*OverscriptBox[\(Foot\), \(_\)]\)[i, a, d];
  8. Jx[p_, a_, b_] := (\!\(\*OverscriptBox[\(a\), \(_\)]\) b - a \!\(\*OverscriptBox[\(b\), \(_\)]\) + \!\(\*OverscriptBox[\(p\), \(_\)]\) (a - b))/(\!\(\*OverscriptBox[\(a\), \(_\)]\) - \!\(\*OverscriptBox[\(b\), \(_\)]\));(*P点的镜像点,镜线是AB*)
  9. \!\(\*OverscriptBox[\(Jx\), \(_\)]\)[p_, a_, b_] := (a \!\(\*OverscriptBox[\(b\), \(_\)]\) - \!\(\*OverscriptBox[\(a\), \(_\)]\) b + p (\!\(\*OverscriptBox[\(a\), \(_\)]\) - \!\(\*OverscriptBox[\(b\), \(_\)]\)))/(a - b);
  10. g = Simplify@Jx[f, a, i] ; \!\(\*OverscriptBox[\(g\), \(_\)]\) = Simplify@\!\(\*OverscriptBox[\(Jx\), \(_\)]\)[f, a, i] ;
  11. h = Simplify@Jx[f, d, i] ; \!\(\*OverscriptBox[\(h\), \(_\)]\) = Simplify@\!\(\*OverscriptBox[\(Jx\), \(_\)]\)[f, d, i] ;
  12. k[a_, b_] := (a - b)/(\!\(\*OverscriptBox[\(a\), \(_\)]\) - \!\(\*OverscriptBox[\(b\), \(_\)]\)); (*复斜率定义*)
  13. (*过A1点、复斜率等于k1的直线,与过A2点、复斜率等于k2的直线的交点:*)
  14. 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));
  15. e = Simplify@Jd[k[a, g], a, k[d, h], d] ; \!\(\*OverscriptBox[\(e\), \(_\)]\) = Simplify@\!\(\*OverscriptBox[\(Jd\), \(_\)]\)[k[a, g], a, k[d, h], d] ;
  16. Print["\[ExponentialE]^2\[ImaginaryI]\[Angle]FBA = ",  Simplify[k[b, a]/k[b, f]]];
  17. Print["\[ExponentialE]^2\[ImaginaryI]\[Angle]CBE = ",  Simplify[k[b, e]/k[b, c]]];
  18. Print["由于 \[ExponentialE]^2\[ImaginaryI]\[Angle]FBA = \[ExponentialE]^2\[ImaginaryI]\[Angle]CBE,所以∠FBA =∠CBE"];
复制代码

119

主题

446

回帖

3179

积分

积分
3179

显示全部楼层

 楼主| TSC999 发表于 2023-8-16 07:30
本帖最后由 TSC999 于 2023-9-8 09:54 编辑 例 18A:
证明BD, FG, EC 交于一点题图与解答.png
程序代码:
  1. Clear["Global`*"];
  2. \!\(\*OverscriptBox[\(o\), \(_\)]\) = o = 0; a = -1/Sqrt[2] + I/Sqrt[2]; b = -1/Sqrt[2] - I/Sqrt[2]; c = 1/Sqrt[2] - I/Sqrt[2]; d = 1/Sqrt[2] + I/Sqrt[2];\!\(\*OverscriptBox[\(a\), \(_\)]\) = b; \!\(\*OverscriptBox[\(b\), \(_\)]\) = a; \!\(\*OverscriptBox[\(c\), \(_\)]\) = d; \!\(\*OverscriptBox[\(d\), \(_\)]\) = c; kOE = u^2;
  3. k[a_, b_] := (a - b)/(\!\(\*OverscriptBox[\(a\), \(_\)]\) - \!\(\*OverscriptBox[\(b\), \(_\)]\)); (*复斜率定义*)
  4. Simplify@Solve[{(o - e) (\!\(\*OverscriptBox[\(o\), \(_\)]\) - \!\(\*OverscriptBox[\(e\), \(_\)]\)) == 1, k[o, e] == kOE}, {e, \!\(\*OverscriptBox[\(e\), \(_\)]\)}];e = u; \!\(\*OverscriptBox[\(e\), \(_\)]\) = 1/u;
  5. (*过A1点、复斜率等于k1的直线,与过A2点、复斜率等于k2的直线的交点:*)
  6. 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));
  7. f = Simplify@Jd[-1, a, -k[a, c], e]; \!\(\*OverscriptBox[\(f\), \(_\)]\) = Simplify@\!\(\*OverscriptBox[\(Jd\), \(_\)]\)[-1, a, -k[a, c], e];
  8. g = Simplify@Jd[-1, d, -k[b, d], e]; \!\(\*OverscriptBox[\(g\), \(_\)]\) = Simplify@\!\(\*OverscriptBox[\(Jd\), \(_\)]\)[-1, d, -k[b, d], e];p = Simplify@Jd[k[e, c], c, k[b, d], b]; \!\(\*OverscriptBox[\(p\), \(_\)]\) = Simplify@\!\(\*OverscriptBox[\(Jd\), \(_\)]\)[k[e, c], c, k[b, d], b];p1 = Simplify@Jd[k[e, c], c, k[f, g], g]; \!\(\*OverscriptBox[\(p1\), \(_\)]\) = Simplify@\!\(\*OverscriptBox[\(Jd\), \(_\)]\)[k[e, c], c, k[f, g], g];
  9. Simplify[p == p1](*若成立则 BD、FG、EC 交于一点 *)
  10. Simplify[k[e, f]/k[e, a] == k[b, a]/k[b, e]](*若成立则 \[EmptyUpTriangle]EAF∽\[EmptyUpTriangle]BEA *)
  11. Simplify[k[e, b]/k[e, f] == k[c, p]/k[c, d]](*若成立则 \[EmptyUpTriangle]EFB∽\[EmptyUpTriangle]CDP *)
复制代码

119

主题

446

回帖

3179

积分

积分
3179

显示全部楼层

 楼主| TSC999 发表于 2023-8-17 20:57
例 19A:
证明 DP 垂直于 BC 题与解答.png
程序代码:
  1. Clear["Global`*"]; (*设B在坐标原点,C在1点, kAB=u^2,kAC=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); q = (u (v^2 - 1))/(u^2 v + u (v^2 - 1) - v);  
  4. \!\(\*OverscriptBox[\(q\), \(_\)]\) = q;p = \[Lambda] a + (1 - \[Lambda]) q;
  5. \!\(\*OverscriptBox[\(p\), \(_\)]\) = \[Lambda] \!\(\*OverscriptBox[\(a\), \(_\)]\) + (1 - \[Lambda]) \!\(\*OverscriptBox[\(q\), \(_\)]\);(* \[Lambda]=QP/QA *)
  6. PE = R; PF = R;
  7. k[a_, b_] := (a - b)/(\!\(\*OverscriptBox[\(a\), \(_\)]\) - \!\(\*OverscriptBox[\(b\), \(_\)]\)); (*复斜率定义*)
  8. W1 = {m, \!\(\*OverscriptBox[\(m\), \(_\)]\)} /. Simplify@Solve[{k[a, m] == -k[a, p], k[c, m] == -k[c, p]}, {m, \!\(\*OverscriptBox[\(m\), \(_\)]\)}] // Flatten;
  9. m = Part[W1, 1]; \!\(\*OverscriptBox[\(m\), \(_\)]\) = Part[W1, 2];
  10. W2 = {n, \!\(\*OverscriptBox[\(n\), \(_\)]\)} /. Simplify@Solve[{k[a, n] == -k[a, p], k[b, n] == -k[b, p]}, {n, \!\(\*OverscriptBox[\(n\), \(_\)]\)}] // Flatten;
  11. n = Part[W2, 1]; \!\(\*OverscriptBox[\(n\), \(_\)]\) = Part[W2, 2];
  12. Simplify@Solve[{(p - e) (\!\(\*OverscriptBox[\(p\), \(_\)]\) - \!\(\*OverscriptBox[\(e\), \(_\)]\)) == R^2, k[p, e] == -k[a, c]}, {e,
  13. \!\(\*OverscriptBox[\(e\), \(_\)]\)}];
  14. e = 1/(v^2 (-v^2 u^3 - v^3 u^2 + u + v)^2) (u^4 v^8 + u^5 v^7 + u^3 v^7 + u^5 \[Lambda] v^7 - u^3 \[Lambda] v^7 - u^2 v^6 + u^6 \[Lambda] v^6 - u^4 \[Lambda] v^6 - u^5 v^5 - 2 u^3 v^5 - u v^5 - u^5 \[Lambda] v^5 + u \[Lambda] v^5 - u^4 v^4 - u^6 \[Lambda] v^4 + u^2 \[Lambda] v^4 + u^3 v^3 + u v^3 + u^3 \[Lambda] v^3 - u \[Lambda] v^3 + u^2 v^2 + u^4 \[Lambda] v^2 - u^2 \[Lambda] v^2 + I R v (-v^2 u^3 - v^3 u^2 + u + v)^2);
  15. \!\(\*OverscriptBox[\(e\), \(_\)]\) = 1/(-v^2 u^3 - v^3 u^2 + u + v)^2 (u^4 v^6 - u^4 \[Lambda] v^6 +  u^2 \[Lambda] v^6 + u^5 v^5 + u^3 v^5 - u^5 \[Lambda] v^5 + u^3 \[Lambda] v^5 - u^2 v^4 + u^4 \[Lambda] v^4 - \[Lambda] v^4 - u^5 v^3 - 2 u^3 v^3 - u v^3 + u^5 \[Lambda] v^3 - u \[Lambda] v^3 - u^4 v^2 - u^2 \[Lambda] v^2 + \[Lambda] v^2 + u^3 v + u v - u^3 \[Lambda] v + u \[Lambda] v + u^2 - I R v (-v^2 u^3 - v^3 u^2 + u + v)^2);
  16. Simplify@Solve[{(p - f) (\!\(\*OverscriptBox[\(p\), \(_\)]\) - \!\(\*OverscriptBox[\(f\), \(_\)]\)) == R^2, k[p, f] == -k[a, b]}, {f,
  17. \!\(\*OverscriptBox[\(f\), \(_\)]\)}];
  18. f = 1/(-v^2 u^3 - v^3 u^2 + u + v)^2 (v^4 \[Lambda] u^6 - v^2 \[Lambda] u^6 + v^5 u^5 - v^3 u^5 + v^5 \[Lambda] u^5 -
  19.      v^3 \[Lambda] u^5 + v^6 u^4 - v^2 u^4 - v^4 \[Lambda] u^4 + \[Lambda] u^4 + v^5 u^3 - 2 v^3 u^3 + v u^3 - v^5 \[Lambda] u^3 + v \[Lambda] u^3 - v^4 u^2 + v^2 \[Lambda] u^2 - \[Lambda] u^2 + u^2 - v^3 u + v u +  v^3 \[Lambda] u - v \[Lambda] u + I R u (-v^2 u^3 - v^3 u^2 + u + v)^2);
  20. \!\(\*OverscriptBox[\(f\), \(_\)]\) = 1/(u^2 (-v^2 u^3 - v^3 u^2 + u + v)^2) (v^5 u^7 - v^3 u^7 - v^5 \[Lambda] u^7 + v^3 \[Lambda] u^7 + v^6 u^6 - v^2 u^6 - v^6 \[Lambda] u^6 + v^4 \[Lambda] u^6 + v^5 u^5 - 2 v^3 u^5 + v u^5 + v^5 \[Lambda] u^5 - v \[Lambda] u^5 - v^4 u^4 + v^6 \[Lambda] u^4 - v^2 \[Lambda] u^4 + u^4 - v^3 u^3 + v u^3 - v^3 \[Lambda] u^3 + v \[Lambda] u^3 - v^4 \[Lambda] u^2 + v^2 \[Lambda] u^2 - I R u (-v^2 u^3 - v^3 u^2 + u + v)^2);
  21. W3 = {d, \!\(\*OverscriptBox[\(d\), \(_\)]\)} /. Simplify@Solve[{k[n, e] == k[n, d], k[m, f] == k[m, d]}, {d, \!\(\*OverscriptBox[\(d\), \(_\)]\)}] // Flatten;
  22. d = Part[W3, 1]; \!\(\*OverscriptBox[\(d\), \(_\)]\) = Part[W3, 2];
  23. Print["DP 的复斜率 kDP = ", Simplify[k[d, p]]];
  24. Print["BC 的复斜率 kBC = ", Simplify[k[b, c]]];
  25. Print["由于 kDP = -kBC,所以 DP\[UpTee]BC"];
复制代码

119

主题

446

回帖

3179

积分

积分
3179

显示全部楼层

 楼主| TSC999 发表于 2023-8-25 16:02
本帖最后由 TSC999 于 2023-8-25 20:14 编辑 例 20A:
证明是90度题与解答.png
程序代码:
  1. Clear["Global`*"];(*令三角形TEF的外接圆为单位圆,各顶点坐标为t=t;e=e;f=f;  *)
  2. \!\(\*OverscriptBox[\(o2\), \(_\)]\) = o2 = 0; \!\(\*OverscriptBox[\(e\), \(_\)]\) = 1/e; \!\(\*OverscriptBox[\(f\), \(_\)]\) = 1/f;
  3. \!\(\*OverscriptBox[\(t\), \(_\)]\) = 1/t;
  4. (*过A1点、复斜率等于k1的直线,与过A2点、复斜率等于k2的直线的交点:*)
  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. a = Simplify@Jd[1, o2, -e t, t]; \!\(\*OverscriptBox[\(a\), \(_\)]\) = a; b = Simplify@Jd[1, o2, -f t, t];
  8. \!\(\*OverscriptBox[\(b\), \(_\)]\) = b;\!\(\*OverscriptBox[\(o1\), \(_\)]\) = o1 = (a + b)/2;
  9. Print["a = ", a]; Print["b = ", b];
  10. k[a_, b_] := (a - b)/(\!\(\*OverscriptBox[\(a\), \(_\)]\) - \!\(\*OverscriptBox[\(b\), \(_\)]\)); (*复斜率定义*)
  11. c = -(\!\(\*OverscriptBox[\(a\), \(_\)]\) - \!\(\*OverscriptBox[\(o1\), \(_\)]\)) k[e, a] + o1;
  12. \!\(\*OverscriptBox[\(c\), \(_\)]\) = -(a - o1)/k[e, a] + \!\(\*OverscriptBox[\(o1\), \(_\)]\); Print["c = ", Simplify[c]];
  13. d = -(\!\(\*OverscriptBox[\(b\), \(_\)]\) - \!\(\*OverscriptBox[\(o1\), \(_\)]\)) k[f, b] + o1;
  14. \!\(\*OverscriptBox[\(d\), \(_\)]\) = -(b - o1)/k[f, b] + \!\(\*OverscriptBox[\(o1\), \(_\)]\); Print["d = ", Simplify[d]];
  15. x = Simplify@Jd[k[c, d], c, -k[t, o2], t]; \!\(\*OverscriptBox[\(x\), \(_\)]\) = Simplify@ \!\(\*OverscriptBox[\(Jd\), \(_\)]\)[k[c, d], c, -k[t, o2], t];Print["x = ", x];
  16. y = Simplify@Jd[k[a, b], b, k[f, e], e]; \!\(\*OverscriptBox[\(y\), \(_\)]\) = y;Print["y = ", y];
  17. Print["XY 的复斜率 kXY 是否等于 O2T 的复斜率 kO2T:", Simplify[k[o2, t] == k[x, y]]];
  18. Print["由于 kXY = kO2T,所以 XY\[UpTee]XT,即 \[Angle]TXY=\!\(\*SuperscriptBox[\(90\), \(\[Degree]\)]\)"];
复制代码

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

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

Powered by Discuz!

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