|
楼主 |
发表于 2023-11-2 14:57
|
显示全部楼层
本帖最后由 天山草 于 2023-11-2 15:47 编辑
程序代码:
- Clear["Global`*"]; (*令B点为坐标原点,C点坐标为1,BC 与实轴重合。AB 的复斜率为 u *)
- \!\(\*OverscriptBox[\(b\), \(_\)]\) = b = 0; \!\(\*OverscriptBox[\(c\), \(_\)]\) = c = 1; kAB = u;(*AC的复斜率为:*)
- kAC = kAB E^(2 I \[Pi]/3); kAC = kAB (-1/2 + I Sqrt[3]/2);
- 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));
- a = Simplify@Jd[kAB, b, kAC, c]; \!\(\*OverscriptBox[\(a\), \(_\)]\) = Simplify@\!\(\*OverscriptBox[\(Jd\), \(_\)]\)[kAB, b, kAC, c];
- Print["a = ", a];
- \!\(\*OverscriptBox[\(d\), \(_\)]\) = d = Simplify[(a + \!\(\*OverscriptBox[\(a\), \(_\)]\))/2]; Print["d = ", d];
- \!\(\*OverscriptBox[\(m\), \(_\)]\) = m = 1/2; g = (a + b)/2; \!\(\*OverscriptBox[\(g\), \(_\)]\) = (\!\(\*OverscriptBox[\(a\), \(_\)]\) + \!\(\*OverscriptBox[\(b\), \(_\)]\))/2;
- 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));
- o = Simplify@WX[a, b, c]; \!\(\*OverscriptBox[\(o\), \(_\)]\) = Simplify@\!\(\*OverscriptBox[\(WX\), \(_\)]\)[a, b, c]; Print["o = ", o];
- f = Simplify[(a + o)/2]; \!\(\*OverscriptBox[\(f\), \(_\)]\) = Simplify[(\!\(\*OverscriptBox[\(a\), \(_\)]\) + \!\(\*OverscriptBox[\(o\), \(_\)]\))/2]; Print["f = ", f];
- e = Simplify@WX[g, d, m]; \!\(\*OverscriptBox[\(e\), \(_\)]\) = Simplify@\!\(\*OverscriptBox[\(WX\), \(_\)]\)[g, d, m]; Print["e = ", e];Print["\!\(\*SuperscriptBox[\(ED\), \(2\)]\)\!\(\*SuperscriptBox[\(是否等于EF\), \(2\)]\) ? ", Simplify[(e - d) (\!\(\*OverscriptBox[\(e\), \(_\)]\) - \!\(\*OverscriptBox[\(d\), \(_\)]\)) == (e - f) (\!\(\*OverscriptBox[\(e\), \(_\)]\) - \!\(\*OverscriptBox[\(f\), \(_\)]\))]];
- Print["\!\(\*SuperscriptBox[\(由于ED\), \(2\)]\)=\!\(\*SuperscriptBox[\(EF\), \(2\)]\),所以ED=EF,故F点在圆E上。"];
- W1 = {s, \!\(\*OverscriptBox[\(s\), \(_\)]\)} /. Simplify@Solve[{(o - b) (\!\(\*OverscriptBox[\(o\), \(_\)]\) - \!\(\*OverscriptBox[\(b\), \(_\)]\)) == (o - s) (\!\(\*OverscriptBox[\(o\), \(_\)]\) - \!\(\*OverscriptBox[\(s\), \(_\)]\)), k[o, s] == -1}, {s, \!\(\*OverscriptBox[\(s\), \(_\)]\)}] // Flatten;
- s = Part[W1, 3]; \!\(\*OverscriptBox[\(s\), \(_\)]\) = Part[W1, 4]; Print["s = ", s];(*如果FN 是圆E上一条弦,S 是该弦延长线上一点,则:*)
- n = e + (\!\(\*OverscriptBox[\(e\), \(_\)]\) - \!\(\*OverscriptBox[\(f\), \(_\)]\)) k[s, f]; \!\(\*OverscriptBox[\(n\), \(_\)]\) = \!\(\*OverscriptBox[\(e\), \(_\)]\) + (e - f)/k[s, f]; Print["n = ", Simplify[n]];
- q = Simplify@Jd[k[d, f], d, -k[o, e], o]; \!\(\*OverscriptBox[\(q\), \(_\)]\) = Simplify@\!\(\*OverscriptBox[\(Jd\), \(_\)]\)[k[d, f], d, -k[o, e], o];Print["q = ", q];
- Print["\!\(\*SuperscriptBox[\(QD\), \(2\)]\)\!\(\*SuperscriptBox[\(是否等于QN\), \(2\)]\) ? ", Simplify[(q - d) (\!\(\*OverscriptBox[\(q\), \(_\)]\) - \!\(\*OverscriptBox[\(d\), \(_\)]\)) == (q - n) (\!\(\*OverscriptBox[\(q\), \(_\)]\) - \!\(\*OverscriptBox[\(n\), \(_\)]\))]];
- Print["\!\(\*SuperscriptBox[\(由于QD\), \(2\)]\)=\!\(\*SuperscriptBox[\(QN\), \(2\)]\),所以QD=QN"];
复制代码
运行结果:
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|