dlsh 发表于 2021-9-28 22:47:58

Mathematica为什么算不出最后的结论

这是uk702在数学中国发出的问题,Mathematica7.0为什么算不出最后的结论?其它版本行吗?


TSC999 发表于 2021-9-29 12:08:57

不用复数也可以证明:

TSC999 发表于 2021-9-29 14:08:17

本帖最后由 TSC999 于 2021-9-29 14:10 编辑

完整的 mathematica 程序代码如下:

Clear["Global`*"];
XA = 0; YA = a; XB = -1; YB = 0; XC = 1; YC = 0;
XF = 1/2;YF = a/2;
xy = Solve[{y == (x + 1) Tan[\/6], (y - a/2)/(x - 1/2) == 1/
   a}, {x, y}];
x = x /. xy; y = y /. xy;
XE = x[]; YE = y[];
Print["XE = ", XE];
Print["YE = ", YE];
AC = Simplify];
AE = Simplify];
EC = Simplify];
Print["AC = ", AC];
Print["AE = ", AE];
Print["EC = ", EC];
If[AC == AE == EC,
Print["由于 AC=AE=EC,所以 \ACE 是正三角形。 "]]

运行结果如下:

TSC999 发表于 2021-9-29 17:16:14

楼主的 E 点坐标计算正确。为何下面就进行不下去了呢?

dlsh 发表于 2021-9-29 20:09:59

Clear
(*a=8;a=5;a=4;*)a' = -a; u = 1 + \; u' = 1/u; c = 1;
\ = -(1/2) + Sqrt/2 I;
e = -a\ - \^2; e' = -a/\ - 1/\^2;
Simplify[{(1 - u a)/(1 - u), (u + a)/(
u - 1), ((1 - u a)/(1 - u) + 1)/((u + a)/(u - 1) +
   1), ((1 - u a)/(1 - u)) ((u + a)/(u - 1)), \, , e, e', (
c - a)/(c - e), (e + 1)/(e' + 1)}](*假设向量EC/向量EA=v*)
Solve[((1 - v a)/(1 - v) + 1)/((v + a)/(v - 1) + 1) ==
1 + \, v]    (*\EBC等于30\,EC直线的复斜率等于1+\*)



{{v -> (3 I + Sqrt + I a - Sqrt a)/(2 (Sqrt + I a))}}

{{v -> (3 I + Sqrt + I a - Sqrt a)/(2 (Sqrt + I a))}}
(3 I + Sqrt + I a - Sqrt a)/(
2 (Sqrt + I a)) = (Sqrt i (Sqrt + I a) + Sqrt + I a)/(
2 (Sqrt + I a)) = 1/2 + (Sqrt/2) I(*这项结论正确,手工计算*)
图片中第一段使用坐标是对的,主要是这段为什么计算结果里会出现a?主题构图简单,复数没有优势,下面这题就明显了。
https://imgsa.baidu.com/forum/w%3D580/sign=a7e627899a22720e7bcee2f24bca0a3a/aa1635fae6cd7b893040b8680d2442a7d9330e3a.jpg

TSC999 发表于 2021-10-4 20:41:09

本帖最后由 TSC999 于 2021-10-4 20:53 编辑



mathematica 程序及运行结果如下:

Clear["Global`*"];
XA = (R^2 - a^2 - 1)/(
2 a);YA = Sqrt[-a^4 + 2 a^2 (R^2 + 1) - (R^2 - 1)^2]/(2 a);
XB = (R^2 - a^2 - 1)/(
2 a);YB = -(Sqrt[-a^4 + 2 a^2 (R^2 + 1) - (R^2 - 1)^2]/(2 a));
XD = (a^4 - a^2 (2 R^2 + 3) + R^2 (R^2 - 1))/(
2 a); YD = ( (R^2 - a^2) Sqrt[-a^4 +
   2 a^2 (R^2 + 1) - (R^2 - 1)^2])/(2 a);
XC = (-a^4 + a^2 (R^2 + 2) + R^2 - 1)/(2 a R^2);YC =
1/(2 a R^2) ((1 - a^2) Sqrt[-a^4 + 2 a^2 (R^2 + 1) - (R^2 - 1)^2]);
XE = ( a^6 - a^4 (2 R^2 + 3) + a^2 (R^4 - R^2 + 3) + R^2 - 1)/(
2 a R^2); YE = (-a^8 + a^6 (3 R^2 + 4) - a^4 (3 R^4 + 4 R^2 + 6) +
a^2 (R^6 - R^2 + 4) - (R^2 - 1)^2)/(
2 a R^2 Sqrt[-a^4 + 2 a^2 (R^2 + 1) - (R^2 - 1)^2]);
XF = (-a^6 + a^4 (3 R^2 + 2) - a^2 (3 R^4 + R^2 + 1) +
R^4 (R^2 - 1))/(2 a R^2); YF = (
Sqrt[-a^4 +
   2 a^2 (R^2 + 1) - (R^2 - 1)^2] (a^4 - a^2 (2 R^2 + 1) + R^4))/(
2 a R^2)   ;
XM = (-a^6 + a^4 (2 R^2 + 1) + a^2 (-R^4 + 3 R^2 + 1) + R^2 - 1)/(
2 a (a^4 - 2 a^2 (R^2 + 1) + R^4 - R^2 + 1)); YM = (
Sqrt[-a^4 +
   2 a^2 (R^2 + 1) - (R^2 - 1)^2] (a^4 - a^2 (R^2 + 2) + 1))/(
2 a (a^4 - 2 a^2 (R^2 + 1) + R^4 - R^2 + 1));
XN = -((a (a^2 - R^2 - 1) (a^6 - a^4 (3 R^2 + 2) +
   a^2 (3 R^4 + R^2 + 1) - R^6 + R^4))/(
2 a^8 - a^6 (5 R^2 + 6) + 3 a^4 (R^4 + 2 R^2 + 2) +
   a^2 (R^6 - R^4 - R^2 - 2) + (a^4 - a^2 (2 R^2 + 1) +
      R^4) R^2(-a^2 + R^2 - 1) - R^8 +
   R^6)); YN = ( (a^4 - a^2 (2 R^2 + 1) + R^4) Sqrt[-a^4 +
   2 a^2 (R^2 + 1) - (R^2 - 1)^2])/(
2 a (a^4 - 2 a^2 (R^2 + 1) + R^4 - R^2 + 1));
XQ = (R^2 - a^2 - 1)/(2 a); YQ = (
Sqrt[-a^4 +
   2 a^2 (R^2 + 1) - (R^2 - 1)^2] (a^4 (R^2 + 1) -
    2 a^2 (R^4 + R^2 + 1) + R^6 + 1))/(
2 a (R^2 + 1) (a^4 - 2 a^2 (R^2 + 1) + R^4 - R^2 + 1));
DB = Sqrt[(XD - XB)^2 + (YD - YB)^2]; BC = Sqrt[(XC - XB)^2 + (YC -
    YB)^2];
MQ = Sqrt[(XM - XQ)^2 + (YM - YQ)^2]; NQ = Sqrt[(XN - XQ)^2 + (YN -
    YQ)^2];
k1 = Simplify; k2 =
Simplify;
Print["DB/BC = ", k1]; Print["MQ/NQ = ", k2];
If[k1 == k2,
Print["\!\(\*SuperscriptBox[\(由于二者之比都等于R\), \(2\)]\),所以DB/BC = \
MQ/NQ"]]

程序运行结果:

DB/BC = R^2

MQ/NQ = R^2

由于二者之比都等于R^2,所以DB/BC = MQ/NQ

dlsh 发表于 2021-10-4 22:11:57

本帖最后由 dlsh 于 2021-10-4 22:14 编辑


① 这个比值比的等于两圆半径之平方。 ② 另外有 MN//EF。 ③ 如果 AB 的延长线交 EF 于 P 点,则这个比值也等于 EP: PF,即 BP 是 ∠EBF 的平分线。
等于两圆半径之平方, BP 是 ∠EBF 的平分线两条结论正确,但是另外两条错误。证明 BP 平分 ∠EBF可能容易,其它可能比较难,请谈谈纯几何方法。



\!\(\*OverscriptBox["o1", "_"]\) = o1 = 0;
\!\(\*OverscriptBox["o2", "_"]\) = o2; b =
\!\(\*OverscriptBox["a", "_"]\) = 1/a;
\!\(\*OverscriptBox["b", "_"]\) = a;
\!\(\*OverscriptBox["d", "_"]\) = 1/d;
\!\(\*OverscriptBox["e", "_"]\) = 1/e;
d = (a - o2)/(1 - a o2); c = a - a^2 o2 + o2;
\!\(\*OverscriptBox["c", "_"]\) =
\!\(\*OverscriptBox["a", "_"]\) -
\!\(\*OverscriptBox["a", "_"]\) ^2 o2 + o2;(*根据复斜率手工计算得到*)
e = (c - o2)/(b (
\!\(\*OverscriptBox["b", "_"]\) - o2)); f = b d (
\!\(\*OverscriptBox["b", "_"]\) - o2) + o2;
\!\(\*OverscriptBox["f", "_"]\) =
\!\(\*OverscriptBox["b", "_"]\)
\!\(\*OverscriptBox["d", "_"]\) (b - o2) + o2;
k := (a - b)/(
\!\(\*OverscriptBox["a", "_"]\) -
\!\(\*OverscriptBox["b", "_"]\));
\!\(\*OverscriptBox["k", "_"]\) := 1/k;(*复斜率定义*)
k := k/k;(*e^(2IB)*)

\!\(\*OverscriptBox["Jd", "_"]\) := -((a1 - k1
\!\(\*OverscriptBox["a1", "_"]\) - (a2 - k2
\!\(\*OverscriptBox["a2", "_"]\)))/(
k1 - k2));(*复斜率等于k1,过点A1与复斜率等于k2,过点A2的直线交点*)
Jd := -((k2 (a1 - k1
\!\(\*OverscriptBox["a1", "_"]\)) - k1 (a2 - k2
\!\(\*OverscriptBox["a2", "_"]\)))/(k1 - k2));
FourPoint :=
Jd, a, k, d];(*过两对点A和B、C和D的直线交点*)

\!\(\*OverscriptBox["FP", "_"]\) :=
\!\(\*OverscriptBox["Jd", "_"]\), a, k, d];

m = FourPoint;
\!\(\*OverscriptBox["m", "_"]\) =
\!\(\*OverscriptBox["FP", "_"]\); n =
FourPoint;
\!\(\*OverscriptBox["n", "_"]\) =
\!\(\*OverscriptBox["FP", "_"]\);
q = FourPoint;
\!\(\*OverscriptBox["q", "_"]\) =
\!\(\*OverscriptBox["FP", "_"]\); p =
FourPoint;
\!\(\*OverscriptBox["p", "_"]\) =
\!\(\*OverscriptBox["FP", "_"]\);
Simplify[{c, d, e, f, m, n}]
Simplify[{0, q,
\!\(\*OverscriptBox["q", "_"]\), p,
\!\(\*OverscriptBox["p", "_"]\)}]

Simplify[{1, b - d, b - c, , (b - d)/(b - c), q - m, q - n, , (
q - m)/(q - n)}](*验证比例*)
Simplify[{2, m - n, e - f, , (m - n)/(e - f), k, k,
k - k}](*验证平行*)
Simplify[{3, p - e, p - f, (p - e)/(p - f), , k,
k}](*验证 PE/PF=MQ/NQ,BP 是 \EBF 的平分线*)

{a + o2 - a^2 o2, (-a + o2)/(-1 + a o2), (a (a - a^2 o2))/(a - o2),
o2 + (a - o2)^2/(a (1 - a o2)), (
a^3 (-1 + a o2)^2)/(-a o2 - a^3 o2 + o2^2 + a^4 o2^2 -
a^2 (-1 + o2^2)), (
a (2 o2^2 + a^3 o2^3 - a^2 (-1 + o2^2) - a o2 (2 + o2^2)))/(-a o2 -
a^3 o2 + o2^2 + a^4 o2^2 - a^2 (-1 + o2^2))}

{0, (a^2 (-2 o2^2 + a^5 o2^3 - 2 a^2 (1 + o2^2) + a o2 (3 + o2^2) -
    a^4 o2^2 (3 + o2^2) + a^3 o2 (3 + 2 o2^2)))/((-a o2 - a^3 o2 +
    o2^2 + a^4 o2^2 - a^2 (-1 + o2^2)) (o2 + a^2 o2 -
    a (2 + o2^2))), (-2 a^5 o2^2 + o2^3 - 2 a^3 (1 + o2^2) +
a^4 o2 (3 + o2^2) - a o2^2 (3 + o2^2) + a^2 o2 (3 + 2 o2^2))/(
a (-a o2 - a^3 o2 + o2^2 + a^4 o2^2 - a^2 (-1 + o2^2)) (o2 + a^2 o2 -
   a (2 + o2^2))), (-3 a^3 o2 + 4 a^2 o2^2 - 3 a o2^3 + o2^4 +
3 a^5 o2 (-1 + o2^2) + a^6 (o2^2 - o2^4) - a^4 (-2 + o2^4))/(
a (o2 + a^2 o2 + a (-2 + o2^2)) (o2 + a^2 o2 -
    a (1 + o2^2))), (-3 a^3 o2 + o2^2 + 4 a^4 o2^2 - 3 a^5 o2^3 -
o2^4 + a^6 o2^4 + 3 a o2 (-1 + o2^2) - a^2 (-2 + o2^4))/(
a (o2 + a^2 o2 + a (-2 + o2^2)) (o2 + a^2 o2 - a (1 + o2^2)))}

{1, (-1 + a^2)/(
a (-1 + a o2)), ((-1 + a^2) (-1 + a o2))/a, Null, 1/(-1 + a o2)^2, (
a^2 (-1 + a^2) o2 (2 o2 + a^2 o2 - a (2 + o2^2)))/((-a o2 - a^3 o2 +
    o2^2 + a^4 o2^2 - a^2 (-1 + o2^2)) (o2 + a^2 o2 -
    a (2 + o2^2))), (
a (-1 + a^2) (a - o2)^2 o2 (2 - 3 a o2 + a^2 o2^2))/((-a o2 -
    a^3 o2 + o2^2 + a^4 o2^2 - a^2 (-1 + o2^2)) (o2 + a^2 o2 -
    a (2 + o2^2))), Null, a/((a - o2) (-1 + a o2))}

{2, (a (-1 + a^2) o2 (2 o2 + a^2 o2 - a (2 + o2^2)))/(-a o2 - a^3 o2 +
   o2^2 + a^4 o2^2 - a^2 (-1 + o2^2)), -o2 + (a - o2)^2/(
a (-1 + a o2)) + (a (a - a^2 o2))/(a - o2), Null, -((
a^2 (a - o2)^2 (-2 + a o2) (-1 + a o2))/((-2 a^2 + 2 a o2 + a^3 o2 -
      o2^2) (-a o2 - a^3 o2 + o2^2 + a^4 o2^2 -
   a^2 (-1 + o2^2)))), -((a^2 (2 o2 + a^2 o2 - a (2 + o2^2)))/(
o2 + 2 a^2 o2 - a (2 + o2^2))), (
a (-2 a^2 + 2 a o2 + a^3 o2 - o2^2))/(
2 a - o2 - 2 a^2 o2 + a^3 o2^2), (
a o2^2 (o2 + 3 a^2 o2 - 3 a^4 o2 - a^6 o2 - a (2 + o2^2) +
    a^5 (2 + o2^2)))/((2 a - o2 - 2 a^2 o2 + a^3 o2^2) (o2 +
    2 a^2 o2 - a (2 + o2^2)))}

{3, ((-1 + a^2) o2 (-3 a^4 o2 + 3 a o2^2 + a^5 o2^2 - o2^3 -
    a^2 o2 (4 + o2^2) + a^3 (2 + 3 o2^2)))/(
a (o2 + a^2 o2 + a (-2 + o2^2)) (o2 + a^2 o2 -
    a (1 + o2^2))), -(((-1 + a^2) o2 (-2 a^2 + 2 a o2 + a^3 o2 -
   o2^2) (-1 + o2^2))/(-3 a o2 - 3 a^3 o2 + o2^2 + a^4 o2^2 +
   a^2 (2 + 3 o2^2 - o2^4))), (a - o2 - a^2 o2)/(
a (-1 + o2^2)), Null, (a (-1 + a o2))/(a - o2), (a - o2)/(
a (-1 + a o2))}

TSC999 发表于 2021-10-5 10:00:07

本帖最后由 TSC999 于 2021-10-5 13:24 编辑



注: 这个证明是由【初等数学讨论】(http://kuing.orzweb.net/forumdisplay.php?fid=5 ) 的版主kuing 做出的。

TSC999 发表于 2021-10-6 14:21:34

本帖最后由 TSC999 于 2021-10-6 15:28 编辑

dlsh 发表于 2021-10-4 22:11
① 这个比值比的等于两圆半径之平方。 ② 另外有 MN//EF。 ③ 如果 AB 的延长线交 EF 于 P 点,则这个比 ...

看了你的程序,代入具体数字验算,得不到需要的结论。不知哪个地方有毛病。
以你这个程序为基础,假定右边那个圆的半径为 R,两圆圆心之间的距离为 u。
但是在程序运行中有一个困难,就是目前 mathematica 对含有根式的复数公式的处理能力太差,只有靠人工参与协助电脑计算,但是人工干预多了,不但程序变长变复杂了,也不符合机器证明的要求了。



Clear["Global`*"];

\!\(\*OverscriptBox[\(o1\), \(_\)]\) = o1 = 0;
\!\(\*OverscriptBox[\(o2\), \(_\)]\) = o2 = u;
a = (-R^2 + u^2 + 1)/(2 u) +
I (Sqrt[-R^4 + 2 R^2 (u^2 + 1) - (u^2 - 1)^2])/(2 u);
\!\(\*OverscriptBox[\(a\), \(_\)]\) = (-R^2 + u^2 + 1)/(2 u) -
I (Sqrt[-R^4 + 2 R^2 (u^2 + 1) - (u^2 - 1)^2])/(2 u);
b =
\!\(\*OverscriptBox[\(a\), \(_\)]\) ;
\!\(\*OverscriptBox[\(b\), \(_\)]\) = a;
c = Simplify;
\!\(\*OverscriptBox[\(c\), \(_\)]\) = Simplify[
\!\(\*OverscriptBox[\(a\), \(_\)]\) -
\!\(\*OverscriptBox[\(a\), \(_\)]\) ^2 u + u];(*根据复斜率手工计算得到*)
d = Simplify[(a - u)/(1 - a u)];
e = Simplify[(c - u)/(b (
\!\(\*OverscriptBox[\(b\), \(_\)]\) - u))]; f = Simplify[b d (
\!\(\*OverscriptBox[\(b\), \(_\)]\) - u) + u];

\!\(\*OverscriptBox[\(d\), \(_\)]\) = 1/d;
\!\(\*OverscriptBox[\(e\), \(_\)]\) = 1/e;(*因为O1是单位圆之故*)

\!\(\*OverscriptBox[\(f\), \(_\)]\) = Simplify[
\!\(\*OverscriptBox[\(b\), \(_\)]\)
\!\(\*OverscriptBox[\(d\), \(_\)]\) (b - u) + u];
Print["a = ", a]; Print["b = ", b];
Print["c = ", c]; Print["d = ", d]; Print["e = ", e]; Print["f = ", f];

Jd[a_, b_, c_,
   d_] := ((c - d) (b Conjugate - a Conjugate) - (a -
      b) (d Conjugate - c Conjugate))/((c - d) (Conjugate -
      Conjugate) - (a - b) (Conjugate - Conjugate[
      d])); (* 直线 AB 与 CD 的交点复坐标 *)

\!\(\*OverscriptBox[\(Jd\), \(_\)]\)[a_, b_, c_,
d_] := ((c - d) (b Conjugate - a Conjugate ) - (a -
   b) (d Conjugate - c Conjugate))/( (Conjugate -
   Conjugate) (a - b) - (Conjugate - Conjugate ) (c -
   d));(*同时算出交点的共轭比没什么用,因为算出的交点坐标公式中仍会带有星号!不进一步化简就不能用! *)
m = Simplify, Element[{u, R}, Reals]];

\!\(\*OverscriptBox[\(m\), \(_\)]\) = Simplify[
\!\(\*OverscriptBox[\(Jd\), \(_\)]\),
   Element[{u, R}, Reals]];
Print["未化简的 m = ", m];(* 直接算出的 m 中含有带星的符号,公式不是最简,必须进一步化简才能用 *)
m = m /. Conjugate] ->
   Sqrt[-R^4 + 2 (u^2 + 1) R^2 - (u^2 - 1)^2];

m = m /. Conjugate[((-2 u^2 -
          I Sqrt[-R^4 + 2 (u^2 + 1) R^2 - (u^2 - 1)^2] - 1) R^2 +
       u^2 (u^2 + I Sqrt[-R^4 + 2 (u^2 + 1) R^2 - (u^2 - 1)^2] -
          1))] -> (u^4 - u^2 - 2 R^2 u^2 - R^2 -
      I (u^2 - R^2) Sqrt[-R^4 + 2 R^2 (u^2 + 1) - (u^2 - 1)^2]);
m = Simplify;
Print["m = ", m];
XM = Factor@
    Together@
   ComplexExpand@
      Re -> v] /.
   v -> Sqrt[-R^4 + 2 (u^2 + 1) R^2 - (u^2 - 1)^2];
YM = Factor@
    Together@
   ComplexExpand@
      Im -> v] /.
   v -> Sqrt[-R^4 + 2 (u^2 + 1) R^2 - (u^2 - 1)^2];
n = Simplify, Element[{u, R}, Reals]];
n = n /. Conjugate] ->
    Sqrt[-R^4 + 2 (u^2 + 1) R^2 - (u^2 - 1)^2];
n = n /. Conjugate[((2 u^2 +
          I Sqrt[-R^4 + 2 (u^2 + 1) R^2 - (u^2 - 1)^2] + 1) R^2 +
       u^2 (-u^2 - I Sqrt[-R^4 + 2 (u^2 + 1) R^2 - (u^2 - 1)^2] +
          3))] ->
    (3 u^2 - u^4 + 2 R^2 u^2 + R^2 -
      I (R^2 - u^2) Sqrt[-R^4 + 2 R^2 (u^2 + 1) - (u^2 - 1)^2]);
n = Simplify;
Print["n = ", n];
XN = Factor@
    Together@
   ComplexExpand@
      Re -> v] /.
   v -> Sqrt[-R^4 + 2 (u^2 + 1) R^2 - (u^2 - 1)^2];
YN = Factor@
    Together@
   ComplexExpand@
      Im -> v] /.
   v -> Sqrt[-R^4 + 2 (u^2 + 1) R^2 - (u^2 - 1)^2];
XD = Factor@
    Together@
   ComplexExpand@
      Re -> v] /.
   v -> Sqrt[-R^4 + 2 (u^2 + 1) R^2 - (u^2 - 1)^2];
YD = Factor@
    Together@
   ComplexExpand@
      Im -> v] /.
   v -> Sqrt[-R^4 + 2 (u^2 + 1) R^2 - (u^2 - 1)^2];
XC = Factor@
    Together@
   ComplexExpand@
      Re -> v] /.
   v -> Sqrt[-R^4 + 2 (u^2 + 1) R^2 - (u^2 - 1)^2];
YC = Factor@
    Together@
   ComplexExpand@
      Im -> v] /.
   v -> Sqrt[-R^4 + 2 (u^2 + 1) R^2 - (u^2 - 1)^2];
XB = (-R^2 + u^2 + 1)/(
2 u); YB = -(Sqrt[-R^4 + 2 R^2 (u^2 + 1) - (u^2 - 1)^2]/(2 u));
q = (-R^2 + u^2 + 1)/(2 u) +
   I ((R^6 - 2 R^4 u^2 + R^2 u^2 (u^2 - 2) + (u^2 - 1)^2) Sqrt[-R^4 +
      2 R^2 (u^2 + 1) - (u^2 - 1)^2])/(
    2 (R^2 + 1) u (R^4 - R^2 (2 u^2 + 1) + (u^2 - 1)^2));
XQ = (-R^2 + u^2 + 1)/(
2 u); YQ = ((R^6 - 2 R^4 u^2 +
    R^2 u^2 (u^2 - 2) + (u^2 - 1)^2) Sqrt[-R^4 +
   2 R^2 (u^2 + 1) - (u^2 - 1)^2])/(
2 (R^2 + 1) u (R^4 - R^2 (2 u^2 + 1) + (u^2 - 1)^2));
Print["q = ", q];
DB = Simplify]; BC =
Simplify];
MQ = Simplify]; NQ =
Simplify];
Print["DB = ", DB]; Print["BC = ", BC];
Print["MQ = ", MQ]; Print["NQ = ", NQ];
k1 = Simplify; k2 =
Simplify;
Print["DB/BC = ", k1]; Print["MQ/NQ = ", k2];
If[k1 == k2,
Print["由于二者之比都等于 1/\!\(\*SuperscriptBox[\(R\), \(2\)]\),所以DB/BC = \
MQ/NQ"]]

程序运行结果:

a = (-R^2+u^2+1)/(2 u)+(I Sqrt[-R^4+2 (u^2+1) R^2-(u^2-1)^2])/(2 u)

b = (-R^2+u^2+1)/(2 u)-(I Sqrt[-R^4+2 (u^2+1) R^2-(u^2-1)^2])/(2 u)

c = (-R^4+(2 u^2+I Sqrt[-R^4+2 (u^2+1) R^2-(u^2-1)^2]+1) R^2+u^2 (-u^2-I Sqrt[-R^4+2 (u^2+1) R^2-(u^2-1)^2]+3))/(2 u)

d = (R^2+u^2-I Sqrt[-R^4+2 (u^2+1) R^2-(u^2-1)^2]-1)/(u (-R^2+u^2+I Sqrt[-R^4+2 (u^2+1) R^2-(u^2-1)^2]-1))

e = -((R^4+(-2 u^2-I Sqrt[-R^4+2 (u^2+1) R^2-(u^2-1)^2]-1) R^2+u^2 (u^2+I Sqrt[-R^4+2 (u^2+1) R^2-(u^2-1)^2]-1))/(u (R^2-u^2+I Sqrt[-R^4+2 (u^2+1) R^2-(u^2-1)^2]+1)))

f = (R^2+u^2+2 I u^2 Sqrt[-R^4+2 (u^2+1) R^2-(u^2-1)^2]-I Sqrt[-R^4+2 (u^2+1) R^2-(u^2-1)^2]-1)/(u (-R^2+u^2+I Sqrt[-R^4+2 (u^2+1) R^2-(u^2-1)^2]-1))

未化简的 m = -((R^4+(-2 u^2-I Sqrt[-R^4+2 (u^2+1) R^2-(u^2-1)^2]-1) R^2+u^2 (u^2+I Sqrt[-R^4+2 (u^2+1) R^2-(u^2-1)^2]-1)) (((R^2+u^2-I Sqrt[-R^4+2 (u^2+1) R^2-(u^2-1)^2]-1) (-R^2+u^2-I Sqrt[-R^4+2 (u^2+1) R^2-(u^2-1)^2]^\+1))/(2 u^2 (-R^2+u^2+I Sqrt[-R^4+2 (u^2+1) R^2-(u^2-1)^2]-1))+((R^2-u^2-I Sqrt[-R^4+2 (u^2+1) R^2-(u^2-1)^2]-1) (R^2+u^2+I Sqrt[-R^4+2 (u^2+1) R^2-(u^2-1)^2]^\-1))/(2 u^2 (-R^2+u^2-I Sqrt[-R^4+2 (u^2+1) R^2-(u^2-1)^2]^\-1))))/(u (R^2-u^2+I Sqrt[-R^4+2 (u^2+1) R^2-(u^2-1)^2]+1) (((R^4+(-2 u^2-I Sqrt[-R^4+2 (u^2+1) R^2-(u^2-1)^2]-1) R^2+u^2 (u^2+I Sqrt[-R^4+2 (u^2+1) R^2-(u^2-1)^2]-1)) (R^4-2 (u^2+1) R^2+(u^2-1)^2-(Sqrt[-R^4+2 (u^2+1) R^2-(u^2-1)^2]^\)^2+2 I (R^2-u^2-1) Sqrt[-R^4+2 (u^2+1) R^2-(u^2-1)^2]^\))/(2 u^2 (-R^2+u^2-I Sqrt[-R^4+2 (u^2+1) R^2-(u^2-1)^2]-1) (-R^2+u^2-I Sqrt[-R^4+2 (u^2+1) R^2-(u^2-1)^2]^\-1))+(((-R^2+u^2+1)/(2 u)+(I Sqrt[-R^4+2 (u^2+1) R^2-(u^2-1)^2])/(2 u)-(R^2+u^2-I Sqrt[-R^4+2 (u^2+1) R^2-(u^2-1)^2]-1)/(u (-R^2+u^2+I Sqrt[-R^4+2 (u^2+1) R^2-(u^2-1)^2]-1))) (R^4+((-2 u^2-I Sqrt[-R^4+2 (u^2+1) R^2-(u^2-1)^2]-1) R^2+u^2 (u^2+I Sqrt[-R^4+2 (u^2+1) R^2-(u^2-1)^2]-1))^\))/(u (R^2-u^2-I Sqrt[-R^4+2 (u^2+1) R^2-(u^2-1)^2]^\+1))))

m = ((-R^2+u^2+I Sqrt[-R^4+2 (u^2+1) R^2-(u^2-1)^2]-1) (R^4+(-2 u^2-I Sqrt[-R^4+2 (u^2+1) R^2-(u^2-1)^2]-1) R^2+u^2 (u^2+I Sqrt[-R^4+2 (u^2+1) R^2-(u^2-1)^2]-1)))/(4 u (R^4-(2 u^2+1) R^2+(u^2-1)^2))

n = (u^2 R^4-(2 u^4+(I Sqrt[-R^4+2 (u^2+1) R^2-(u^2-1)^2]+3) u^2+1) R^2+(u^2-1)^2 (u^2+I Sqrt[-R^4+2 (u^2+1) R^2-(u^2-1)^2]+1))/(2 u (R^4-(2 u^2+1) R^2+(u^2-1)^2))

q = (-R^2+u^2+1)/(2 u)+(I (R^6-2 u^2 R^4+u^2 (u^2-2) R^2+(u^2-1)^2) Sqrt[-R^4+2 (u^2+1) R^2-(u^2-1)^2])/(2 (R^2+1) u (R^4-(2 u^2+1) R^2+(u^2-1)^2))

DB = Sqrt[-((R^4-2 (u^2+1) R^2+(u^2-1)^2)/(R^2 u^2))]

BC = Sqrt[-((R^2 (R^4-2 (u^2+1) R^2+(u^2-1)^2))/u^2)]

MQ = Sqrt[-((R^2 (2 R^6-(5 u^2+2) R^4+(4 u^4-6 u^2-2) R^2-(u^2-2) (u^2-1)^2))/((R^2+1)^2 (R^4-(2 u^2+1) R^2+(u^2-1)^2)^2))]

NQ = Sqrt[-((R^6 (2 R^6-(5 u^2+2) R^4+(4 u^4-6 u^2-2) R^2-(u^2-2) (u^2-1)^2))/((R^2+1)^2 (R^4-(2 u^2+1) R^2+(u^2-1)^2)^2))]

DB/BC = 1/R^2

MQ/NQ = 1/R^2

由于二者之比都等于 1/R^2,所以DB/BC = MQ/NQ

上面这个程序中,除了 Q 点的复数坐标人工化简失败,另用其它方法算出补上以外,其它点的坐标都是按楼主的程序算出的。

M点和 N 点的复坐标,程序给出的结果十分复杂,通过人工疏导可以化简。如果不化简,后面的计算就进行不下去。

最后是关于线段长度的计算,用复坐标计算长度算不出来,也可能是算得非常慢,把复坐标换成直角坐标计算,瞬间就算出来了。

TSC999 发表于 2021-10-6 16:30:35

本帖最后由 TSC999 于 2021-10-6 17:32 编辑

用楼主那个程序,给 O2 圆半径赋值 R=1.138,两圆圆心距离 u=1.621,程序运行结果正确,即两个比例相等成立。但是不代入具体数字,最终需要的结果算不出来,各点坐标的表达式也比楼上程序复杂。这说明 mathematica 处理复数的能力比较差,这就不好办了。

Clear["Global`*"];
u = 1.621; R = 1.138;

\!\(\*OverscriptBox[\(o1\), \(_\)]\) = o1 = 0; o2 = u;
\!\(\*OverscriptBox[\(o2\), \(_\)]\) = u;
a = (-R^2 + u^2 + 1)/(2 u) + (
   I Sqrt[-R^4 + 2 (u^2 + 1) R^2 - (u^2 - 1)^2])/(2 u);
b = (-R^2 + u^2 + 1)/(2 u) -
   I (Sqrt[-R^4 + 2 R^2 (u^2 + 1) - (u^2 - 1)^2])/(2 u);

\!\(\*OverscriptBox[\(a\), \(_\)]\) = b;
\!\(\*OverscriptBox[\(b\), \(_\)]\) = a;
c = Simplify;
\!\(\*OverscriptBox[\(c\), \(_\)]\) = Simplify[
\!\(\*OverscriptBox[\(a\), \(_\)]\) -
\!\(\*OverscriptBox[\(a\), \(_\)]\) ^2 u + u]; (* 根据复斜率手工计算得到*)
d = Simplify[(a - u)/(1 - a u)];   
\!\(\*OverscriptBox[\(d\), \(_\)]\) = Simplify[(1 - a u)/(a - u)]; e =
Simplify[(c - u)/(b (a - u))];
\!\(\*OverscriptBox[\(e\), \(_\)]\) = Simplify[(b (a - u))/(c - u)];
f = Simplify;
\!\(\*OverscriptBox[\(f\), \(_\)]\) =
Simplify[(a (b - u) (1 - a u))/(a - u) + u];
Print["a = ", a, ",b = ", b, " ,c = ", c, " ,d = ", d];
k := (a - b)/(
\!\(\*OverscriptBox[\(a\), \(_\)]\) -
\!\(\*OverscriptBox[\(b\), \(_\)]\));

\!\(\*OverscriptBox[\(k\), \(_\)]\) := 1/k;(*复斜率定义*)
k := k/k;(*e^(2IB)*)

\!\(\*OverscriptBox[\(Jd\), \(_\)]\) := -((a1 - k1
\!\(\*OverscriptBox[\(a1\), \(_\)]\) - (a2 - k2
\!\(\*OverscriptBox[\(a2\), \(_\)]\)))/(k1 - k2));
(*复斜率等于k1,过点A1与复斜率等于k2,过点A2的直线交点*)
Jd := -((k2 (a1 - k1
\!\(\*OverscriptBox[\(a1\), \(_\)]\)) - k1 (a2 - k2
\!\(\*OverscriptBox[\(a2\), \(_\)]\)))/(k1 - k2));
FourPoint :=   
Jd, a, k, d];(*过两对点A和B、C和D的直线交点*)

\!\(\*OverscriptBox[\(FP\), \(_\)]\) :=
\!\(\*OverscriptBox[\(Jd\), \(_\)]\), a, k, d];
m = Simplify];
\!\(\*OverscriptBox[\(m\), \(_\)]\) = Simplify[
\!\(\*OverscriptBox[\(FP\), \(_\)]\)];
n = Simplify];
\!\(\*OverscriptBox[\(n\), \(_\)]\) = Simplify[
\!\(\*OverscriptBox[\(FP\), \(_\)]\)];
q = Simplify];
\!\(\*OverscriptBox[\(q\), \(_\)]\) = Simplify[
\!\(\*OverscriptBox[\(FP\), \(_\)]\)];
p = Simplify];
\!\(\*OverscriptBox[\(p\), \(_\)]\) = Simplify[
\!\(\*OverscriptBox[\(FP\), \(_\)]\)];
Print["e = ", e, ",f = ", f, ",m = ", m, ", n = ", n,
" , q = ", q];
w1 = Simplify]
w2 = Simplify]
Simplify

运行结果:

a = 0.719493 +0.694499 I,b = 0.719493 -0.694499 I ,c = 2.28321 -0.925488 I ,d = -0.487966-0.872863 I
e = -0.889563-0.456813 I,f = 2.6848 -0.404188 I,m = 0.305211 +0.156734 I, n = 1.25601 +0.138678 I , q = 0.719493 +0.148866 I
0.772175
0.772175
True

页: [1] 2
查看完整版本: Mathematica为什么算不出最后的结论