找回密码
 欢迎注册
楼主: dlsh

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

[复制链接]
 楼主| 发表于 2021-10-6 22:37:00 | 显示全部楼层
从上面的程序中的结果人工变形后,可以利用向量商证明有关结论。当然,纯几何方法不难。
\(\frac{b - d}{b - c}=\frac{1}{(-1 + a o2)^2},可变换为\frac{b - d}{b - c}=\frac{1}{a^2(1/a -o2)^2}=\frac{b^2}{(b -o2)^2}\)
即\(\frac{\overrightarrow{BD}}{\overrightarrow{BC}}=(\frac{\overrightarrow{O_1B}}{\overrightarrow{O_2B}})^2,易于推出比值等于半径平方,∠DBC=2∠O_2BO_1\)
360截图20211006223501142.jpg
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2021-10-6 23:16:31 | 显示全部楼层
本帖最后由 TSC999 于 2021-10-6 23:59 编辑

由于 mathematica 处理复数的能力十分有限,有时算式中不可避免的会有根式,咋办? 我想到一个折中的方法,就是直角坐标与复数坐标相结合。
程序运行后所显示的坐标虽然是复数,但是实部与虚部是分开的。 mathematica 对于这种复数的处理能力还是不错的,有根式也不怕,下面的程序不用 1 秒钟就可运行完毕。
为什么要结合复数?因为坐标的复数表达式有许多是已知的,其表达式很简单。下面程序中的复数坐标公式是由楼主 dlsh 提供的,程序中直接引用了。
关于程序中的共轭复数,并不需要对每一个点都计算其共轭复数,只有当算式中出现共轭复数时,才有必要计算其共轭复数,否则无须计算。

图.png

  1. Clear["Global`*"];
  2. XA = (-R^2 + u^2 + 1)/(
  3. 2 u); YA = Sqrt[-R^4 + 2 R^2 (u^2 + 1) - (u^2 - 1)^2]/(2 u); a =
  4. XA + I YA;
  5. XB = (-R^2 + u^2 + 1)/(
  6. 2 u); YB = -(Sqrt[-R^4 + 2 R^2 (u^2 + 1) - (u^2 - 1)^2]/(2 u)); b =
  7. XB + I YB;
  8. \!\(\*OverscriptBox[\(b\), \(_\)]\) = XB - I YB;
  9. XO1 = 0; YO1 = 0;  XO2 = u; YO2 = 0;  o1 = XO1 + I YO1; o2 =
  10. XO2 + I YO2;

  11. d = Simplify[(a - u)/(1 - a u)] ;
  12. XD = Factor@
  13.     Together@
  14.      ComplexExpand@
  15.       Re[d /. Sqrt[-R^4 + 2 (u^2 + 1) R^2 - (u^2 - 1)^2] -> v] /.
  16.    v -> Sqrt[-R^4 + 2 (u^2 + 1) R^2 - (u^2 - 1)^2];
  17. YD = Factor@
  18.     Together@
  19.      ComplexExpand@
  20.       Im[d /. Sqrt[-R^4 + 2 (u^2 + 1) R^2 - (u^2 - 1)^2] -> v] /.
  21.    v -> Sqrt[-R^4 + 2 (u^2 + 1) R^2 - (u^2 - 1)^2];
  22. d = Simplify[XD] + I Simplify[YD];
  23. c = Simplify[a - a^2 u + u];
  24. XC = Factor@
  25.     Together@
  26.      ComplexExpand@
  27.       Re[c /. Sqrt[-R^4 + 2 (u^2 + 1) R^2 - (u^2 - 1)^2] -> v] /.
  28.    v -> Sqrt[-R^4 + 2 (u^2 + 1) R^2 - (u^2 - 1)^2];
  29. YC = Factor@
  30.     Together@
  31.      ComplexExpand@
  32.       Im[c /. Sqrt[-R^4 + 2 (u^2 + 1) R^2 - (u^2 - 1)^2] -> v] /.
  33.    v -> Sqrt[-R^4 + 2 (u^2 + 1) R^2 - (u^2 - 1)^2];
  34. c = Simplify[XC] + I Simplify[YC];
  35. e = Simplify[(c - u)/(b (
  36. \!\(\*OverscriptBox[\(b\), \(_\)]\) - u))];
  37. XE = Factor@
  38.     Together@
  39.      ComplexExpand@
  40.       Re[e /. Sqrt[-R^4 + 2 (u^2 + 1) R^2 - (u^2 - 1)^2] -> v] /.
  41.    v -> Sqrt[-R^4 + 2 (u^2 + 1) R^2 - (u^2 - 1)^2];
  42. YE = Factor@
  43.     Together@
  44.      ComplexExpand@
  45.       Im[e /. Sqrt[-R^4 + 2 (u^2 + 1) R^2 - (u^2 - 1)^2] -> v] /.
  46.    v -> Sqrt[-R^4 + 2 (u^2 + 1) R^2 - (u^2 - 1)^2];
  47. e = Simplify[XE] + I Simplify[YE];
  48. f = Simplify[b d (
  49. \!\(\*OverscriptBox[\(b\), \(_\)]\) - u) + u];
  50. XF = Factor@
  51.     Together@
  52.      ComplexExpand@
  53.       Re[f /. Sqrt[-R^4 + 2 (u^2 + 1) R^2 - (u^2 - 1)^2] -> v] /.
  54.    v -> Sqrt[-R^4 + 2 (u^2 + 1) R^2 - (u^2 - 1)^2];
  55. YF = Factor@
  56.     Together@
  57.      ComplexExpand@
  58.       Im[f /. Sqrt[-R^4 + 2 (u^2 + 1) R^2 - (u^2 - 1)^2] -> v] /.
  59.    v -> Sqrt[-R^4 + 2 (u^2 + 1) R^2 - (u^2 - 1)^2];
  60. f = Simplify[XF] + I Simplify[YF];
  61. m = Simplify@
  62.    Solve[{(y - YA)/(x - XA) == (y - YD)/(x - XD), (y - YE)/(
  63.       x - XE) == (y - YO1)/(x - XO1)}, {x, y}];  
  64. XM = Part[Part[Part[m, 1], 1], 2];
  65. YM = Part[Part[Part[m, 1], 2], 2];
  66. m = XM + I YM;
  67. n = Simplify@
  68.    Solve[{(y - YA)/(x - XA) == (y - YC)/(x - XC), (y - YF)/(
  69.       x - XF) == (y - YO2)/(x - XO2)}, {x, y}];
  70. XN = Part[Part[Part[n, 1], 1], 2];
  71. YN = Part[Part[Part[n, 1], 2], 2];
  72. n = XN + I YN;
  73. q = Simplify@
  74.    Solve[{x == XA, (y - YM)/(x - XM) == (y - YN)/(x - XN)}, {x, y}];
  75. XQ = Part[Part[Part[q, 1], 1], 2];
  76. YQ = Part[Part[Part[q, 1], 2], 2];
  77. q = XQ + I YQ;
  78. Print["a = ", a]; Print["b = ", b];
  79. Print["c = ", c]; Print["d = ", d];
  80. Print["e = ", e]; Print["f = ", f];
  81. Print["m = ", m]; Print["n = ", n];
  82. Print["q = ", q];
  83. DB = Simplify[Sqrt[(XD - XB)^2 + (YD - YB)^2]]; BC =
  84. Simplify[Sqrt[(XC - XB)^2 + (YC - YB)^2]];
  85. MQ = Simplify[Sqrt[(XM - XQ)^2 + (YM - YQ)^2]]; NQ =
  86. Simplify[Sqrt[(XN - XQ)^2 + (YN - YQ)^2]];
  87. Print["DB = ", DB]; Print["BC = ", BC];
  88. Print["MQ = ", MQ]; Print["NQ = ", NQ];
  89. k1 = Simplify[DB/BC, a > 0 && R > 0]; k2 =
  90. Simplify[MQ/NQ, a > 0 && R > 0];
  91. Print["DB/BC = ", k1]; Print["MQ/NQ = ", k2];
  92. If[k1 == k2,
  93. Print["由于二者之比都等于 1/\!\(\*SuperscriptBox[\(R\), \(2\)]\),所以DB/BC = \
  94. MQ/NQ"]]
复制代码


程序运行结果:

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

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

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

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

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

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

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

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

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

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

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

  12. 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))]

  13. 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))]

  14. DB/BC = 1/R^2

  15. MQ/NQ = 1/R^2

  16. 由于二者之比都等于 1/R^2,所以DB/BC = MQ/NQ
复制代码
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2021-10-6 23:55:01 | 显示全部楼层
基于有理参数表示的做法

  1. Clear["Global`*"];
  2. (*设点*)
  3. points = {A->0, B->1,P->(1+I p)/(1-I u), T->(1+I q)/(1-I v)};
  4. (*在A处的切向量*)
  5. vectors = Factor[{v1 -> Limit[D[P/.points, u]*u^2,u->\[Infinity]],v2 -> Limit[D[T/.points, v]*v^2,v->\[Infinity]]}];
  6. (*求C,D*)
  7. CDEQ = (Factor[ComplexExpand[Im[#]]]//Numerator)&/@({(T-A)/v1, (P-A)/v2}/.points/.vectors);
  8. CDsol = Solve[CDEQ == 0, {u, v}]//Flatten;
  9. points = Union[points, {C->(T/.points/.CDsol), D->(P/.points/.CDsol)}]//Factor;
  10. (*求E,F*)
  11. EFEQ = (Factor[ComplexExpand[Im[#]]]//Numerator)&/@({(P-B)/(C-B), (T-B)/(D-B)}/.points);
  12. EFsol = Solve[EFEQ == 0, {u, v}][[-1]];
  13. points = Union[points, {E->(P/.points/.EFsol), F->(T/.points/.EFsol)}]//Factor;
  14. (*求M,N*)
  15. points = Union[points, {O1->(1+I p)/2, O2->(1+I q)/2}]//Factor;
  16. points = Union[points, {M->\[Lambda]*D+(1-\[Lambda])A, N->\[Mu]*C+(1-\[Mu])A}/.points]//Factor;
  17. MNEQ = (Factor[ComplexExpand[Im[#]]]//Numerator)&/@({(M-O1)/(E-O1), (N-O2)/(F-O2)}/.points);
  18. MNsol = Solve[MNEQ == 0, {\[Lambda], \[Mu]}]//Flatten;
  19. points = Factor[points/.MNsol];
  20. (*求点Q*)
  21. points = Union[points, {Q->\[Eta]}]//Factor;
  22. QEQ = (Factor[ComplexExpand[Im[#]]]//Numerator)&/@({(M-Q)/(N-Q)}/.points);
  23. Qsol = Solve[QEQ == 0, {\[Eta]}]//Factor//Flatten;
  24. points = Factor[points/.Qsol];
  25. (*结论*)
  26. squarelens = Factor[ComplexExpand[Abs[#]^2]]&/@({B-D,B-C,Q-M,Q-N}/.points);
  27. target = Factor[(squarelens[[1]]/squarelens[[2]])-(squarelens[[3]]/squarelens[[4]])];
  28. (*显示*)
  29. Print["points = ", points];
  30. Print["target = ", target];
复制代码

微信截图_20211006235348.png

点评

运行结果中,各点的复数表达式也就是它们的复数坐标值吧?  发表于 2021-10-7 10:48

评分

参与人数 1威望 +2 金币 +2 贡献 +2 经验 +2 鲜花 +2 收起 理由
TSC999 + 2 + 2 + 2 + 2 + 2 这种构图及设点方法很巧妙!很给力!

查看全部评分

毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2021-10-7 10:52:10 | 显示全部楼层
本帖最后由 TSC999 于 2021-10-7 13:07 编辑
creasson 发表于 2021-10-6 23:55
基于有理参数表示的做法


如果各点的算式表达的是点的复数坐标值, 为什么与图形的实测坐标值不符合? 程序中的 u  代表什么? 设定了 A 在坐标原点、B 的坐标是 (1, 0) 时,是否还应该再设两个圆半径为已知(或一个圆半径及两圆心的距离),才能确定其它点的坐标?
例如将  a = 0; b = 1; p = 1.145;  q = 0.393;  代入 c = (p - q)/(p + I)  中,算出 c=0.372579 -0.325397 I, 不等于实际值  c=1.167+1.165 I。

点有有理参数表示.png
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2021-10-7 11:45:27 | 显示全部楼层
TSC999 发表于 2021-10-7 10:52
如果各点的算式表达的是点的复数坐标值, 为什么与图形的实测坐标值不符合? 程序中的 u  代表什么?  ...


我用的是#11的图,$p, q$为任意实数, 点 $P, T$分别表示圆$O_1,O_2$上的任意点,替换为其他字母如$X,Y$ 就好。  
半径$r_1= \frac{1}{2}\sqrt {1 + p^2} $,   $r_2 = \frac{1}{2}\sqrt {1 + q^2} $。

本图的话,若指定A=0,B=1,C=1.167+1.165I, 则由$ (p - q)/(p + I) = 1.167+1.165I$ 解出
$ p =  - 1.00172,  q = 1.33229 $





点评

不设两圆半径为已知参数,而设 O1、O2 的纵坐标为 p/2 和 q/2 为已知参数。这样算出的其余各点坐标公式中就都不含有根式了。非常妙!  发表于 2021-10-7 13:26

评分

参与人数 1威望 +2 金币 +2 贡献 +2 经验 +2 鲜花 +2 收起 理由
TSC999 + 2 + 2 + 2 + 2 + 2 不设圆半径,而设 O1、O2 的纵坐标为 p/2 .

查看全部评分

毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2021-10-7 13:13:29 | 显示全部楼层
本帖最后由 TSC999 于 2021-10-7 13:15 编辑
creasson 发表于 2021-10-7 11:45
我用的是#11的图,$p, q$为任意实数, 点 $P, T$分别表示圆$O_1,O_2$上的任意点,替换为其他字母如$X,Y ...


噢,我明白了。这个设点的方法很妙啊,设了点 A、B 的坐标外,为了确定两个圆的位置以及避免运算中有根式出现,不设两个圆半径的大小,而是设 O1 的纵坐标为 p/2,  O2 的纵坐标为  q/2, 也就是设 p、q  为已知实数。其余各点的坐标都是 p、q 的函数。

经验算,用您的各点公式求出的复数坐标值全都符合 14# 页中的图。

  1. Clear["Global`*"];
  2. a = 0; b = 1; p = -2*0.518; q = 2*0.649;
  3. c = C -> (p - q)/(p + I)
  4. D -> -((p - q)/(q + I))
  5. E -> ((p - I) (p - q))/((p + I) (q - I))
  6. F -> -(((p - q) (q - I))/((p - I) (q + I)))
  7. M -> ((p - I) (p + I) (p - q) (q - I))/(
  8. q^2 p^2 - 3 p^2 + 8 q p - 3 q^2 + 1)
  9. N -> -(((p - I) (p - q) (q - I) (q + I))/(
  10.   q^2 p^2 - 3 p^2 + 8 q p - 3 q^2 + 1))
  11. Q -> -(((p^2 + 1) (p - q)^2 (q^2 + 1))/((p^2 + q^2 + 2) (q^2 p^2 -
  12.      3 p^2 + 8 q p - 3 q^2 + 1)))

  13. C->1.16627 +1.12574 I
  14. D->1.1284 -0.869337 I
  15. E->0.828902 -1.15843 I
  16. F->0.791031 +1.41483 I
  17. M->0.387154 -0.298269 I
  18. N->0.400147 +0.386242 I
  19. Q->0.392816
复制代码

毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2021-10-7 23:04:41 | 显示全部楼层
本帖最后由 dlsh 于 2021-10-7 23:20 编辑

主贴还是线性构造命题,用代数证明并不难,下面一段选自李涛的博士毕业论文,也是线性构造,按部就班就行了。
360截图20211007231550746.jpg

结论

结论

难题

难题

这些结论如果用纯几何方法是很难的。
一些非线性命题,看起来构造不难,反而很难证明。例如:
1  如果三角形内角平分线相等,则它是等腰三角形。
2正方形与心脏线
正△ABC中,D、E分别是AC、BC上的一点,有AD=CE,BD与AE相交于F。∠AEC和∠CBD的平分线交点G恰好位于AC上。求证:∠ABG=∠BGF。

毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2021-10-8 21:12:56 | 显示全部楼层
前面 creasson 先生程序是很正宗的机器证明程序。一时也学不会这个程序的编写方法,但是可以用直角坐标法来写程序,好处是编写容易,按相同套路一直走下去即可。

图1.png

  1. Clear["Global`*"];  (*令O1圆圆心的纵坐标为 p/2,O2圆圆心的纵坐标为 q/2*)
  2. (*与以往的程序不同,点的复数坐标都采用大写字母表示。这样有其好处,比如图中有 P 这个点,所以如果 P 点的复坐标用小写字母 p \
  3. 表示,那 O1 的纵坐标就不能用 p/2 表示了。当然点的复坐标都用大写字母表示也有坏处,那就是变量不得使用大写的 \
  4. C、D、N,这几个大写字母是 mathematica 禁用的,因此这些点的复坐标可写成 CC、DD、NN,但用字符显示时仍可写 C、D、N \
  5. *)
  6. XA = 0; YA = 0; XB = 1; YB = 0; XO1 = 1/2; YO1 = p/2; XO2 = 1/2; YO2 =
  7.   q/2;
  8. A = XA + I YA; B = XB + I YB;  O1 = XO1 + I YO1; O2 = XO2 + I YO2;
  9. CC = Solve[{(x - 1/2)^2 + (y - q/2)^2 == (1/2)^2 + (q/2)^2(*O2圆方程*),
  10.     y == -1/p x(*AC方程*)}, {x, y}];
  11. XC = Part[Part[Part[CC, 2], 1], 2];
  12. YC = Part[Part[Part[CC, 2], 2], 2];
  13. CC = Factor@Simplify[XC + I YC];
  14. DD = Solve[{(x - 1/2)^2 + (y - p/2)^2 == (1/2)^2 + (p/2)^2(*O1圆方程*),
  15.     y == -1/q x(*AD方程*)}, {x, y}];
  16. XD = Part[Part[Part[DD, 2], 1], 2];
  17. YD = Part[Part[Part[DD, 2], 2], 2];
  18. DD = Factor@Simplify[XD + I YD];
  19. Print["C = ", CC];
  20. Print["D = ", DD];
  21. EE = Solve[{(x - 1/2)^2 + (y - p/2)^2 == (1/2)^2 + (p/2)^2(*O1圆方程*), (
  22.      y - YC)/(x - XC) == (y - YB)/(x - XB)(*CB方程*)}, {x, y}];
  23. XE = Part[Part[Part[EE, 1], 1], 2];
  24. YE = Part[Part[Part[EE, 1], 2], 2];
  25. EE = Factor@Simplify[XE + I YE];
  26. Print["E = ", EE];
  27. F = Solve[{(x - 1/2)^2 + (y - q/2)^2 == (1/2)^2 + (q/2)^2(*O2圆方程*), (
  28.      y - YD)/(x - XD) == (y - YB)/(x - XB)(*DB方程*)}, {x, y}];
  29. XF = Part[Part[Part[F, 1], 1], 2];
  30. YF = Part[Part[Part[F, 1], 2], 2];
  31. F = Factor@Simplify[XF + I YF];
  32. Print["F = ", F];
  33. M = Solve[{(y - YA)/(x - XA) == (y - YD)/(x - XD)(*AD方程*), (y - YE)/(
  34.      x - XE) == (y - YO1)/(x - XO1)(*EO1方程*)}, {x, y}];
  35. XM = Part[Part[Part[M, 1], 1], 2];
  36. YM = Part[Part[Part[M, 1], 2], 2];
  37. M = Factor@Simplify[XM + I YM];
  38. Print["M = ", M];
  39. NN = Solve[{(y - YA)/(x - XA) == (y - YC)/(x - XC)(*AC方程*), (y - YF)/(
  40.      x - XF) == (y - YO2)/(x - XO2)(*FO2方程*)}, {x, y}];
  41. XN = Part[Part[Part[NN, 1], 1], 2];
  42. YN = Part[Part[Part[NN, 1], 2], 2];
  43. NN = Factor@Simplify[XN + I YN];
  44. Print["N = ", NN];
  45. Q = Solve[{(y - YA)/(x - XA) == (y - YB)/(x - XB)(*AB方程*), (y - YM)/(
  46.      x - XM) == (y - YN)/(x - XN)(*MN方程*)}, {x, y}];
  47. XQ = Part[Part[Part[Q, 1], 1], 2];
  48. YQ = Part[Part[Part[Q, 1], 2], 2];
  49. Q = Factor@Simplify[XQ + I YQ];
  50. Print["Q = ", Q];
  51. R1 = Simplify[Sqrt[(1/2)^2 + (p/2)^2]];
  52. R2 = Simplify[Sqrt[(1/2)^2 + (q/2)^2]];
  53. Print["R1 = ", R1];
  54. Print["R2 = ", R2];
  55. k = Simplify[R1^2/R2^2];
  56. k1 = ExpandDenominator@
  57.    Together@ComplexExpand@Simplify[Abs[(DD - B)/(B - CC)]];
  58. k2 = ExpandDenominator@
  59.    Together@ComplexExpand@Simplify[Abs[(M - Q)/(NN - Q)]];
  60. Print["DB/BC = ", k1];
  61. Print["MQ/NQ = ", k2];
  62. Print["(R1/R2\!\(\*SuperscriptBox[\()\), \(2\)]\) = ", k];
  63. If[k1 == k2 == k,
  64. Print["由于 DB/BC = MQ/NQ = (R1/R2\!\(\*SuperscriptBox[\()\), \
  65. \(2\)]\),所以 DB/BC = MQ/NQ"]]
复制代码


程序运行结果:

  1. C = (p-q)/(p+I)
  2. D = (q-p)/(q+I)
  3. E = ((p-I) (p-q))/((p+I) (q-I))
  4. F = -(((p-q) (q-I))/((p-I) (q+I)))
  5. M = ((p-I) (p+I) (p-q) (q-I))/(q^2 p^2-3 ^2+8 q p-3 q^2+1)
  6. N = -(((p-I) (p-q) (q-I) (q+I))/(q^2 p^2-3 p^2+8 q p-3 q^2+1))
  7. Q = -(((p^2+1) (p-q)^2 (q^2+1))/((p^2+q^2+2) (q^2 p^2-3 p^2+8 q p-3 q^2+1)))
  8. R1 = Sqrt[p^2+1]/2
  9. R2 = Sqrt[q^2+1]/2
  10. DB/BC = (p^2+1)/(q^2+1)
  11. MQ/NQ = (p^2+1)/(q^2+1)
  12. (R1/R2)^2 = (p^2+1)/(q^2+1)
  13. 由于 DB/BC = MQ/NQ = (R1/R2)^2,所以 DB/BC = MQ/NQ
复制代码

点评

想学还是能学会,这段算不出结果。  发表于 2021-10-9 20:31
一看这些代码头就大,真不是一般人可以搞得懂得。  发表于 2021-10-8 21:26
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

小黑屋|手机版|数学研发网 ( 苏ICP备07505100号 )

GMT+8, 2024-5-6 14:32 , Processed in 0.049571 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表