|
楼主 |
TSC999
发表于 2023-10-17 10:19
本帖最后由 TSC999 于 2023-11-8 16:03 编辑 例 28:
程序代码:
- Clear["Global`*"]; (*令△ABC的外接圆为单位圆O,BC边平行于实轴,AB、AC的复斜率分别为 u^2、v^2 *)
- \!\(\*OverscriptBox[\(o\), \(_\)]\) = o = 0; a = I u v; \!\(\*OverscriptBox[\(a\), \(_\)]\) = 1/(I u v); b = (I u)/v;
- \!\(\*OverscriptBox[\(b\), \(_\)]\) = v/(I u); c = (I v)/u; \!\(\*OverscriptBox[\(c\), \(_\)]\) = u/(I v);
- h = (I ((v^2 + 1) u^2 + v^2))/(u v); \!\(\*OverscriptBox[\(h\), \(_\)]\) = -((I (u^2 + v^2 + 1))/(u v));
- 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));
- e = Simplify@Jd[k[a, b], a, k[o, h], o]; \!\(\*OverscriptBox[\(e\), \(_\)]\) = Simplify@\!\(\*OverscriptBox[\(Jd\), \(_\)]\)[k[a, b], a, k[o, h], o];f = Simplify@Jd[k[a, c], a, k[o, h], o]; \!\(\*OverscriptBox[\(f\), \(_\)]\) = Simplify@\!\(\*OverscriptBox[\(Jd\), \(_\)]\)[k[a, c], a, k[o, h], o];
- Print["E = ", e]; Print["F = ", f];
- 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));
- s = Simplify@WX[a, e, f]; \!\(\*OverscriptBox[\(s\), \(_\)]\) = Simplify@\!\(\*OverscriptBox[\(WX\), \(_\)]\)[a, e, f]; Print["S = ", s];
- W1 = {p, \!\(\*OverscriptBox[\(p\), \(_\)]\)} /. Simplify@Solve[{(o - p) (\!\(\*OverscriptBox[\(o\), \(_\)]\) - \!\(\*OverscriptBox[\(p\), \(_\)]\)) == 1, (s - p) (\!\(\*OverscriptBox[\(s\), \(_\)]\) - \!\(\*OverscriptBox[\(p\), \(_\)]\)) == (s - a) (\!\(\*OverscriptBox[\(s\), \(_\)]\) - \!\(\*OverscriptBox[\(a\), \(_\)]\)), p != a}, {p, \!\(\*OverscriptBox[\(p\), \(_\)]\)}] // Flatten;
- p = Part[W1, 1]; \!\(\*OverscriptBox[\(p\), \(_\)]\) = Part[W1, 2]; Print["P = ", p];
- m = Simplify@WX[o, s, p]; \!\(\*OverscriptBox[\(m\), \(_\)]\) = Simplify@\!\(\*OverscriptBox[\(WX\), \(_\)]\)[o, s, p];
- Print["M = ", m];
- W2 = {q, \!\(\*OverscriptBox[\(q\), \(_\)]\)} /. Simplify@Solve[{(o - q) (\!\(\*OverscriptBox[\(o\), \(_\)]\) - \!\(\*OverscriptBox[\(q\), \(_\)]\)) == 1, (m - q) (\!\(\*OverscriptBox[\(m\), \(_\)]\) - \!\(\*OverscriptBox[\(q\), \(_\)]\)) == (m - o) (\!\(\*OverscriptBox[\(m\), \(_\)]\) - \!\(\*OverscriptBox[\(o\), \(_\)]\)), q != p}, {q, \!\(\*OverscriptBox[\(q\), \(_\)]\)}] // Flatten;
- q = Part[W2, 1]; \!\(\*OverscriptBox[\(q\), \(_\)]\) = Part[W2, 2]; Print["Q = ", q];
- W3 = {d, \!\(\*OverscriptBox[\(d\), \(_\)]\)} /. Simplify@Solve[{k[o, h] == k[o, d], (m - d) (\!\(\*OverscriptBox[\(m\), \(_\)]\) -
- \!\(\*OverscriptBox[\(d\), \(_\)]\)) == (m - o) (\!\(\*OverscriptBox[\(m\), \(_\)]\) - \!\(\*OverscriptBox[\(o\), \(_\)]\))}, {d, \!\(\*OverscriptBox[\(d\), \(_\)]\)}] // Flatten;d = Part[W3, 1]; \!\(\*OverscriptBox[\(d\), \(_\)]\) = Part[W3, 2]; Print["D = ", d];
- W4 = {g, \!\(\*OverscriptBox[\(g\), \(_\)]\)} /. Simplify@Solve[{k[q, g] == k[q, d], (o - g) (\!\(\*OverscriptBox[\(o\), \(_\)]\) -
- \!\(\*OverscriptBox[\(g\), \(_\)]\)) == 1}, {g, \!\(\*OverscriptBox[\(g\), \(_\)]\)}] // Flatten;
- g = Part[W4, 1]; \!\(\*OverscriptBox[\(g\), \(_\)]\) = Part[W4, 2]; Print["G = ", g];
- n = Simplify@Jd[k[p, q], p, k[o, h], o]; \!\(\*OverscriptBox[\(n\), \(_\)]\) = Simplify@\!\(\*OverscriptBox[\(Jd\), \(_\)]\)[k[p, q], p, k[o, h], o]; Print["N = ", n];
- x = Simplify@WX[h, n, g]; \!\(\*OverscriptBox[\(x\), \(_\)]\) = Simplify@\!\(\*OverscriptBox[\(WX\), \(_\)]\)[h, n, g]; Print["X = ", x];
- Print["直线 OX 的复斜率 kOX = ", Simplify[k[o, x]]];
- Print["直线 OG 的复斜率 kOG = ", Simplify[k[o, g]]];
- Print["由于 kOX = kOG,所以 O、X、G 三点共线,故圆X 与圆O 相切于 G。 "];
复制代码
|
|