|
楼主 |
TSC999
发表于 2023-7-19 17:57
本帖最后由 TSC999 于 2023-7-20 10:36 编辑 例 49:
据说这是 2023 年的一道奥数题。
程序代码:
- Clear["Global`*"];(*u=\[ExponentialE]^(2\[ImaginaryI]\[Theta]);v=\[ExponentialE]^(2\[ImaginaryI]\[Beta]);*)
- \!\(\*OverscriptBox[\(b\), \(_\)]\) = b = 0; \!\(\*OverscriptBox[\(c\), \(_\)]\) = c = 1; a = 1/2 + I Sqrt[3]/2;
- \!\(\*OverscriptBox[\(a\), \(_\)]\) = 1/a;
- (*u=\[ExponentialE]^(2\[ImaginaryI]\[Theta]);v=\[ExponentialE]^(2\[ImaginaryI]\[Beta])*)
- \[Angle]A1BC = \[Theta]; \[Angle]C1BA = \[Beta]; \[Angle]B1CA = \[Gamma]; \[Angle]BA1C = \[Pi] - 2 \[Theta];
- \[Angle]AB1C = \[Pi] - 2 \[Gamma]; \[Angle]AC1B = \[Pi] - 2 \[Beta];
- (*解 Solve[{\[Angle]BA1C+ \[Angle]AB1C+\[Angle]AC1B\[Equal](480\[Pi])/180},{\[Gamma]}]得到:*)
- \[Gamma] = \[Pi]/6 - \[Beta] - \[Theta];(*现在只剩二个变量 \[Beta] 和 \[Theta]*)
- kBA1 = u; kBC1 = E^(2 I (\[Pi]/3))/v; kCB1 = E^(2 I ((2 \[Pi])/3 + \[Gamma])); kCB1 = E^(2 I ((5 \[Pi])/6))/(u v);
- mBC = (b + c)/2; \!\(\*OverscriptBox[\(mBC\), \(_\)]\) = (\!\(\*OverscriptBox[\(b\), \(_\)]\) + \!\(\*OverscriptBox[\(c\), \(_\)]\))/2; mAB = (a + b)/2; \!\(\*OverscriptBox[\(mAB\), \(_\)]\) = (\!\(\*OverscriptBox[\(a\), \(_\)]\) + \!\(\*OverscriptBox[\(b\), \(_\)]\))/2; mAC = (a + c)/2;
- \!\(\*OverscriptBox[\(mAC\), \(_\)]\) = (\!\(\*OverscriptBox[\(a\), \(_\)]\) + \!\(\*OverscriptBox[\(c\), \(_\)]\))/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));
- a1 = Simplify@Jd[kBA1, b, -K[b, c], mBC]; \!\(\*OverscriptBox[\(a1\), \(_\)]\) = Simplify@\!\(\*OverscriptBox[\(Jd\), \(_\)]\)[kBA1, b, -K[b, c], mBC]; Print["A1 = ", a1];
- b1 = Simplify@Jd[kCB1, c, -K[a, c], mAC]; \!\(\*OverscriptBox[\(b1\), \(_\)]\) = Simplify@\!\(\*OverscriptBox[\(Jd\), \(_\)]\)[kCB1, c, -K[a, c], mAC]; Print["B1 = ", b1];
- c1 = Simplify@Jd[kBC1, b, -K[a, b], mAB]; \!\(\*OverscriptBox[\(c1\), \(_\)]\) = Simplify@\!\(\*OverscriptBox[\(Jd\), \(_\)]\)[kBC1, b, -K[a, b], mAB]; Print["C1 = ", c1];
- a2 = Simplify@Jd[K[b, c1], c1, K[c, b1], b1]; \!\(\*OverscriptBox[\(a2\), \(_\)]\) = Simplify@\!\(\*OverscriptBox[\(Jd\), \(_\)]\)[K[b, c1], c1, K[c, b1], b1];Print["A2 = ", a2];
- c2 = Simplify@Jd[K[b, a1], a1, K[a, b1], b1]; \!\(\*OverscriptBox[\(c2\), \(_\)]\) = Simplify@\!\(\*OverscriptBox[\(Jd\), \(_\)]\)[K[b, a1], a1, K[a, b1], b1];Print["C2 = ", c2];
- b2 = Simplify@Jd[K[a, c1], c1, K[c, a1], a1]; \!\(\*OverscriptBox[\(b2\), \(_\)]\) = Simplify@\!\(\*OverscriptBox[\(Jd\), \(_\)]\)[K[a, c1], c1, K[c, a1], a1];Print["B2 = ", b2];
- Waixin[a_, b_, c_] := (a \!\(\*OverscriptBox[\(a\), \(_\)]\) (b - c) + b \!\(\*OverscriptBox[\(b\), \(_\)]\) (c - a) + c \!\(\*OverscriptBox[\(c\), \(_\)]\) (a - b) )/( \!\(\*OverscriptBox[\(a\), \(_\)]\) (b - c) + \!\(\*OverscriptBox[\(b\), \(_\)]\) (c - a) + \!\(\*OverscriptBox[\(c\), \(_\)]\) (a - b));
- \!\(\*OverscriptBox[\(Waixin\), \(_\)]\)[a_, b_, c_] := -((a \!\(\*OverscriptBox[\(a\), \(_\)]\) (\!\(\*OverscriptBox[\(b\), \(_\)]\)-\!\(\*OverscriptBox[\(c\), \(_\)]\)) + b \!\(\*OverscriptBox[\(b\), \(_\)]\) (\!\(\*OverscriptBox[\(c\), \(_\)]\) - \!\(\*OverscriptBox[\(a\), \(_\)]\)) + c \!\(\*OverscriptBox[\(c\), \(_\)]\) (\!\(\*OverscriptBox[\(a\), \(_\)]\) - \!\(\*OverscriptBox[\(b\), \(_\)]\)) )/( \!\(\*OverscriptBox[\(a\), \(_\)]\) (b - c) + \!\(\*OverscriptBox[\(b\), \(_\)]\) (c - a) + \!\(\*OverscriptBox[\(c\), \(_\)]\) (a - b)));
- o1 = Simplify@Waixin[a, a1, a2]; \!\(\*OverscriptBox[\(o1\), \(_\)]\) = Simplify@\!\(\*OverscriptBox[\(Waixin\), \(_\)]\)[a, a1, a2];
- o2 = Simplify@Waixin[b, b1, b2]; \!\(\*OverscriptBox[\(o2\), \(_\)]\) = Simplify@\!\(\*OverscriptBox[\(Waixin\), \(_\)]\)[b, b1, b2];
- o3 = Simplify@Waixin[c, c1, c2]; \!\(\*OverscriptBox[\(o3\), \(_\)]\) = Simplify@\!\(\*OverscriptBox[\(Waixin\), \(_\)]\)[c, c1, c2];
- Print["O1 = ", o1]; Print["O2 = ", o2]; Print["O3 = ", o3];
- 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\), \(_\)]\)));
- \!\(\*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));
- (*两圆连心线与公共弦的交点P,O1、O2是两圆圆心,A是O1上任一点,B是O2上任一点。如果两圆相切的,所求交点即是切点*)
- m = Simplify@XiangjiaoxuanLianxin[o1, a, o2, b];
- m1 = Simplify@XiangjiaoxuanLianxin[o1, a, o3, c];
- SimpleFuc :=
- Factor[#, Extension -> Sqrt[3]] &@(FactorTerms[Numerator[#]]/
- FactorTerms[Denominator[#]]) &@Factor[#, Extension -> Sqrt[3]] &;
- Print["M = ", SimpleFuc[m]];
- Print["M1 = ", SimpleFuc[m1]];
- Print["由于 M 和 M1 点的坐标相同,即圆O1、圆O2的根轴中心与圆O1、圆O3的根轴中心重合,因此三个圆只有两个公共交点。"];
复制代码 |
|