|

楼主 |
发表于 2023-10-9 19:09
|
显示全部楼层
本帖最后由 天山草 于 2023-10-9 19:19 编辑
程序代码:
- Clear["Global`*"];
- \!\(\*OverscriptBox[\(m\), \(_\)]\) = m = 0; \!\(\*OverscriptBox[\(a\), \(_\)]\) = a = -1;
- \!\(\*OverscriptBox[\(b\), \(_\)]\) = b = 1; kAC = u^2; kBC = -u^2; \!\(\*OverscriptBox[\(t\), \(_\)]\) = t;
- k[a_, b_] := (a - b)/(\!\(\*OverscriptBox[\(a\), \(_\)]\) - \!\(\*OverscriptBox[\(b\), \(_\)]\)); (*复斜率定义*)
- (*过A1点、复斜率等于k1的直线,与过A2点、复斜率等于k2的直线的交点:*)
- 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));
- c = Simplify@Jd[kAC, a, kBC, b]; \!\(\*OverscriptBox[\(c\), \(_\)]\) = Simplify@\!\(\*OverscriptBox[\(Jd\), \(_\)]\)[kAC, a, kBC, b];
- W1 = {d, \!\(\*OverscriptBox[\(d\), \(_\)]\)} /. Simplify@Solve[{(m - d) (\!\(\*OverscriptBox[\(m\), \(_\)]\) - \!\(\*OverscriptBox[\(d\), \(_\)]\)) == 1, k[c, d] == k[c, t]}, {d, \!\(\*OverscriptBox[\(d\), \(_\)]\)}] // Flatten;
- d = Part[W1, 1]; \!\(\*OverscriptBox[\(d\), \(_\)]\) = Part[W1, 2];
- e = (a + c)/2; \!\(\*OverscriptBox[\(e\), \(_\)]\) = (\!\(\*OverscriptBox[\(a\), \(_\)]\) + \!\(\*OverscriptBox[\(c\), \(_\)]\))/2; f = (b + d)/2; \!\(\*OverscriptBox[\(f\), \(_\)]\) = (\!\(\*OverscriptBox[\(b\), \(_\)]\) + \!\(\*OverscriptBox[\(d\), \(_\)]\))/2;
- h = Simplify@Jd[k[b, c], c, k[f, e], e]; \!\(\*OverscriptBox[\(h\), \(_\)]\) = Simplify@\!\(\*OverscriptBox[\(Jd\), \(_\)]\)[k[b, c], c, k[f, e], e];
- g = Simplify@Jd[k[d, a], a, k[f, e], e]; \!\(\*OverscriptBox[\(g\), \(_\)]\) = Simplify@\!\(\*OverscriptBox[\(Jd\), \(_\)]\)[k[d, a], a, k[f, e], e];
- o1 = (e + h)/2; \!\(\*OverscriptBox[\(o1\), \(_\)]\) = (\!\(\*OverscriptBox[\(e\), \(_\)]\) + \!\(\*OverscriptBox[\(h\), \(_\)]\))/2; o2 = (g + f)/2; \!\(\*OverscriptBox[\(o2\), \(_\)]\) = (\!\(\*OverscriptBox[\(g\), \(_\)]\) + \!\(\*OverscriptBox[\(f\), \(_\)]\))/2;
- W2 = {z, \!\(\*OverscriptBox[\(z\), \(_\)]\)} /. Simplify@Solve[{(o1 - c) (\!\(\*OverscriptBox[\(o1\), \(_\)]\) - \!\(\*OverscriptBox[\(c\), \(_\)]\)) == (o1 - z) (\!\(\*OverscriptBox[\(o1\), \(_\)]\) - \!\(\*OverscriptBox[\(z\), \(_\)]\)), (o2 - d) (\!\(\*OverscriptBox[\(o2\), \(_\)]\) - \!\(\*OverscriptBox[\(d\), \(_\)]\)) == (o2 - z) (\!\(\*OverscriptBox[\(o2\), \(_\)]\) - \!\(\*OverscriptBox[\(z\), \(_\)]\))}, {z, \!\(\*OverscriptBox[\(z\), \(_\)]\)}] // Flatten;
- p = Part[W2, 1]; \!\(\*OverscriptBox[\(p\), \(_\)]\) = Part[W2, 2]; q = Part[W2, 3]; \!\(\*OverscriptBox[\(q\), \(_\)]\) = Part[W2, 4];
- 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 的外心坐标:*)
- \!\(\*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));
- o3 = Simplify@WX[d, c, m]; \!\(\*OverscriptBox[\(o3\), \(_\)]\) = Simplify@\!\(\*OverscriptBox[\(WX\), \(_\)]\)[d, c, m];
- Print["c = ", c, ", d = ", d, ", h = ", h, ", g = ", g];
- W3 = {n, \!\(\*OverscriptBox[\(n\), \(_\)]\)} /. Simplify@Solve[{(o3 - m) (\!\(\*OverscriptBox[\(o3\), \(_\)]\) - \!\(\*OverscriptBox[\(m\), \(_\)]\)) == (o3 - n) (\!\(\*OverscriptBox[\(o3\), \(_\)]\) - \!\(\*OverscriptBox[\(n\), \(_\)]\)), k[q, m] == k[q, n], n != m}, {n,
- \!\(\*OverscriptBox[\(n\), \(_\)]\)}] // Flatten;
- n = Part[W3, 1]; \!\(\*OverscriptBox[\(n\), \(_\)]\) = Part[W3, 2];
- Print["o3 = ", o3, ", p = ", p, ", q = ", q, ", n = ", n];
- Print["复斜率 kQT/kQP = ", Simplify[k[q, t]/k[q, p]]];
- Print["复斜率 kNT/kNP = ", Simplify[k[n, t]/k[n, p]]];
- Print["由于 kQT/kQP = kNT/kNP,所以 \[Angle]TQP = \[Angle]TNP,故 NTPQ 四点共圆 "];
复制代码
程序运行结果:
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|