|
本帖最后由 TSC999 于 2023-3-24 12:16 编辑 例二:
本题采用的构图法见 kuing.cjhb.site/forum.php?mod=viewthread&tid=10523&extra=page%3D1 中的方法(1) 。
程序:
运行结果:
程序代码:
- Clear["Global`*"];
- (*将B点置于坐标系原点,C点坐标为1,AB的复斜率为kAB=u^4,AC的复斜率为kAC=1/v^4*)
- \!\(\*OverscriptBox[\(b\), \(_\)]\) = b = 0; \!\(\*OverscriptBox[\(c\), \(_\)]\) = c = 1; a = (u^4 (v^4 - 1))/( u^4 v^4 - 1);
- \!\(\*OverscriptBox[\(a\), \(_\)]\) = (v^4 - 1)/( u^4 v^4 - 1); (*\[EmptyUpTriangle]ABC的顶点坐标*)
- i = (u^2 (v^2 - 1))/(u^2 v^2 - 1); \!\(\*OverscriptBox[\(i\), \(_\)]\) = (v^2 - 1)/( u^2 v^2 - 1); (*\[EmptyUpTriangle]ABC的内心坐标*) t1 = ( u^2 (u^2 + 1) (v^2 - 1))/(2 (u^2 v^2 - 1));
- \!\(\*OverscriptBox[\(t1\), \(_\)]\) = ((u^2 + 1) (v^2 - 1))/( 2 u^2 (u^2 v^2 - 1));
- (*在此构图下,有上面的已知公式可引用*)
- e = \[Lambda] a; \!\(\*OverscriptBox[\(e\), \(_\)]\) = \[Lambda] \!\(\*OverscriptBox[\(a\), \(_\)]\); (*设E点坐标,\[Lambda]是0到1之间的正实数*)Print["E = ", e];
- Jx[p_, a_, b_] := (\!\(\*OverscriptBox[\(a\), \(_\)]\) b - a \!\(\*OverscriptBox[\(b\), \(_\)]\) + \!\(\*OverscriptBox[\(p\), \(_\)]\) (a - b))/(\!\(\*OverscriptBox[\(a\), \(_\)]\) - \!\(\*OverscriptBox[\(b\), \(_\)]\));(* P 点关于镜线的像,镜线过已知点 A、B *)
- \!\(\*OverscriptBox[\(Jx\), \(_\)]\)[p_, a_, b_] := (a \!\(\*OverscriptBox[\(b\), \(_\)]\) - \!\(\*OverscriptBox[\(a\), \(_\)]\) b+ p (\!\(\*OverscriptBox[\(a\), \(_\)]\) - \!\(\*OverscriptBox[\(b\), \(_\)]\)))/(a - b);
- t = Simplify@Jx[t1, e, i]; \!\(\*OverscriptBox[\(t\), \(_\)]\) = Simplify@\!\(\*OverscriptBox[\(Jx\), \(_\)]\)[t1, e, i]; Print["T = ", t];
- k[a_, b_] := (a - b)/(\!\(\*OverscriptBox[\(a\), \(_\)]\) - \!\(\*OverscriptBox[\(b\), \(_\)]\));(*复斜率定义*)
- 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));
- (*复斜率等于k1且经过A1点的直线,与复斜率等于k2且经过A2点的直线,两直线的交点*)
- f = Simplify@Jd[k[a, c], a, k[e, t], e]; \!\(\*OverscriptBox[\(f\), \(_\)]\) = Simplify@\!\(\*OverscriptBox[\(Jd\), \(_\)]\)[k[a, c], a, k[e, t], e];Print["F = ", f];
- Yuan[zz_, aa_, bb_, cc_] := Simplify[( (zz - cc) (aa - bb))/( (zz - bb) (aa - cc)) - ( (\!\(\*OverscriptBox[\(zz\), \(_\)]\) -
- \!\(\*OverscriptBox[\(cc\), \(_\)]\)) (\!\(\*OverscriptBox[\(aa\), \(_\)]\) - \!\(\*OverscriptBox[\(bb\), \(_\)]\)))/( (\!\(\*OverscriptBox[\(zz\), \(_\)]\) - \!\(\*OverscriptBox[\(bb\), \(_\)]\)) (\!\(\*OverscriptBox[\(aa\), \(_\)]\) - \!\(\*OverscriptBox[\(cc\), \(_\)]\)))]; (* 此表达式 = 0 即是经过三点 AA、BB、CC \的圆方程,要求的未知点坐标是 ZZ *)
- W1 = {j, \!\(\*OverscriptBox[\(j\), \(_\)]\)} /. Simplify@ Solve[{Yuan[j, a, e, f] == 0, Yuan[j, a, b, c] == 0, j != a}, {j,
- \!\(\*OverscriptBox[\(j\), \(_\)]\)}] // Flatten;
- j = Part[W1, 1]; \!\(\*OverscriptBox[\(j\), \(_\)]\) = Part[W1, 2]; Print["J = ", j];
- W2 = {p, \!\(\*OverscriptBox[\(p\), \(_\)]\)} /. Simplify@ Solve[{Yuan[p, a, b, c] == 0, k[i, p] == k[i, j], p != j}, {p,
- \!\(\*OverscriptBox[\(p\), \(_\)]\)}] // Flatten;
- p = Part[W2, 1]; \!\(\*OverscriptBox[\(p\), \(_\)]\) = Part[W2, 2]; Print["P = ", p];
- W3 = {q, \!\(\*OverscriptBox[\(q\), \(_\)]\)} /. Simplify@ Solve[{Yuan[q, a, e, f] == 0, k[i, q] == k[i, j], q != j}, {q,
- \!\(\*OverscriptBox[\(q\), \(_\)]\)}] // Flatten;
- q = Part[W3, 1]; \!\(\*OverscriptBox[\(q\), \(_\)]\) = Part[W3, 2]; Print["Q = ", q];
- W4 = {m, \!\(\*OverscriptBox[\(m\), \(_\)]\)} /. Simplify@ Solve[{Yuan[m, a, b, c] == 0, k[i, m] == k[i, a], m != a}, {m,
- \!\(\*OverscriptBox[\(m\), \(_\)]\)}] // Flatten;
- m = Part[W4, 1]; \!\(\*OverscriptBox[\(m\), \(_\)]\) = Part[W4, 2]; Print["M = ", m];
- W5 = {n, \!\(\*OverscriptBox[\(n\), \(_\)]\)} /. Simplify@ Solve[{Yuan[n, a, e, f] == 0, k[i, n] == k[i, a], n != a}, {n,
- \!\(\*OverscriptBox[\(n\), \(_\)]\)}] // Flatten;
- n = Part[W5, 1]; \!\(\*OverscriptBox[\(n\), \(_\)]\) = Part[W5, 2]; Print["N = ", n];
- S[a_, b_] := (a - b) (\!\(\*OverscriptBox[\(a\), \(_\)]\) - \!\(\*OverscriptBox[\(b\), \(_\)]\));(*两点间的距离平方*)
- Print["测试\[EmptyUpTriangle]BJE∽\[EmptyUpTriangle]CJF是否成立:"]
- Simplify[S[j, e]/S[j, f] == S[e, b]/S[f, c] == S[j, b]/ S[j, c]](*测试\[EmptyUpTriangle]BJE∽\[EmptyUpTriangle]CJF是否成立*)
- Print["测试\[EmptyUpTriangle]QEF∽\[EmptyUpTriangle]PCB是否成立:"]
- Simplify[S[q, e]/S[p, c] == S[q, f]/S[p, b] == S[e, f]/ S[b, c]](*测试\[EmptyUpTriangle]QEF∽\[EmptyUpTriangle]PCB是否成立*)
- Print["测试\[EmptyUpTriangle]NEF∽\[EmptyUpTriangle]MBC是否成立:"]
- Simplify[S[e, n]/S[b, m] == S[n, f]/S[m, c] == S[e, f]/ S[b, c]](*测试\[EmptyUpTriangle]NEF∽\[EmptyUpTriangle]MBC是否成立*)
- Print["测试 NE = NF 是否成立:"]
- Simplify[S[n, e] == S[n, f]](*测试 NE = NF 是否成立*)
- Print["测试 \[ExponentialE]^2\[ImaginaryI]\[Angle]BJI =\[ExponentialE]^2\[ImaginaryI]\[Angle]FJI 是否成立,如果成立则 \[Angle]BJI = \[Angle]FJI:"];
- Simplify[k[j, i]/k[j, b] == k[j, f]/k[j, i]]
复制代码 |
|