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

[讨论] 求角的度数值?

[复制链接]
发表于 2020-4-18 13:49:23 | 显示全部楼层
本帖最后由 dlpg070 于 2020-4-18 18:43 编辑
dlpg070 发表于 2020-4-18 08:31
两个答案都正确,只是精度不一定达到要求
估计原因是至少有1个答案在计算过程中使用了低精度近似
为了 ...


求角度数值第二题解答:供参考,盼验证
角VJL数值=143.6257276952059859312015417268649448706 度
说明:
1 比第一题确实简单些:没有园与圆的交点,解方程容易很多
2 可以得到精确解,可以得到软件允许的任意精度 表达式太长,略去,这里取40位十进制数
3 仍然作图求解.
4 题目有点粗糙,
  3.1 半径PB不存在
  3.2 M为中心的园没有任何作用



求度数第二题.png

大图

大图
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2020-4-18 19:20:24 | 显示全部楼层
dlpg070 发表于 2020-4-18 08:31
两个答案都正确,只是精度不一定达到要求
估计原因是至少有1个答案在计算过程中使用了低精度近似
为了 ...

不知你是用什么软件计算的?我用的是MATLAB软件,对比了需计算点数据,发现基本上都只是前十几位相同。不能确定哪一个精度更高。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2020-4-18 20:33:33 | 显示全部楼层
本帖最后由 dlpg070 于 2020-4-18 20:37 编辑
sheng_jianguo 发表于 2020-4-18 19:20
不知你是用什么软件计算的?我用的是MATLAB软件,对比了需计算点数据,发现基本上都只是前十几位相同。不 ...


我用的是mathematica
如果你和我一样贴出中间结果(各点坐标)我们一起分析,肯定会查出原因的
解决这个误差很必要,,我验算了你的公式,没有问题,应该是有人一个数值计算疏忽,不必纠结谁正确
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2020-4-18 22:10:33 | 显示全部楼层
第二题是简单,计算数据值有点麻烦
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2020-4-19 06:50:29 | 显示全部楼层
本帖最后由 dlpg070 于 2020-4-19 07:41 编辑
sheng_jianguo 发表于 2020-4-18 19:20
不知你是用什么软件计算的?我用的是MATLAB软件,对比了需计算点数据,发现基本上都只是前十几位相同。不 ...


思之再三,可能是你用的库函数或常量精度不够引起的,改用高精度库函数就OK
注意 Pi, sin, cos,tan, atan, sqrt
或者 移植到 mathematica 等其他软件
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2020-4-19 09:43:01 | 显示全部楼层
dlpg070 发表于 2020-4-19 06:50
思之再三,可能是你用的库函数或常量精度不够引起的,改用高精度库函数就OK
注意 Pi, sin, cos,tan, ata ...

sheng_jianguo 的计算公式,移植到mathematica
计算结果与我的结果完全一样

TYK= 154.2357284163737151883897130305920226140
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2020-4-20 13:08:10 | 显示全部楼层
本帖最后由 dlpg070 于 2020-4-20 14:09 编辑
dlpg070 发表于 2020-4-19 09:43
sheng_jianguo 的计算公式,移植到mathematica
计算结果与我的结果完全一样


sheng_jianguo公式 解求度数第一题,
结果表明:
1 sheng_jianguo公式 完全正确
2 提高计算精度后, 结果正确,与6#答案相同


mathematica代码
  1. In[619]:= Clear["Global`*"];
  2. Print["sheng_jianguo公式 解求度数第一题"]
  3. (*
  4. 第一题解答:以A点为坐标原点建立直角坐标系,A到C为x轴正方向,y轴正方向朝上。不妨设C点x坐标为1(Cx=1)。B点x、y坐标为(由正弦定理):Bx=cos(A)*sin(C)/sin(B);By=sin(A)*sin(C)/sin(B);其中A=180\[Degree]-21\[Degree]-114\[Degree]=45\[Degree]
  5. P点x、y坐标为:Px=1/(1-k1*k2);Py=k2/(1-k1*k2);其中k1=tan(90+C/2);k2=tan(A/2)
  6. D点x、y坐标为:Dx=1/(1-k1*k3);Dy=k3/(1-k1*k3);其中k1=tan(90+C/2);k3=tan(A)
  7. T点x、y坐标为:Ty=0;Tx=Px-sqrt((Px-Bx)^2+(Py-By)^2-Py^2)
  8. E点x、y坐标为:Ex=1/(1-k2*k4);Ey=k2/(1-k2*k4);其中k2=tan(A/2);k4=tan(90+C)
  9. Y点x、y坐标由下面方程求出,取坐标值较小的一组数据:(Px-Yx)^2+(Py-Yy)^2-0.25*((Px-Ex)^2+(Py-Ey)^2)=0;(Dx-Yx)^2+(Dy-Yy)^2-0.25*((Px-Dx)^2+(Py-Dy)^2)=0
  10. K点x、y坐标由下面方程求出,取坐标值较小的一组数据:(Px-Kx)^2+(Py-Ky)^2-0.25*((Px-Ex)^2+(Py-Ey)^2)=0;(Bx-Kx)^2+(By-Ky)^2-0.25*((Px-Bx)^2+(Py-By)^2)=0
  11. \[Angle]TYK=\[Angle]1+\[Angle]YTA=154.235728416373603977262973785400\[Degree]
  12. 其中:\[Angle]1=atan((Ky-Yy)/(Kx-yX));\[Angle]YTA=atan(-(Ty-Yy)/(Tx-Yx))

  13. 不用奖励,只求答案方法结果正确。*)
  14. angB=114;
  15. angC=21;
  16. angA=180 -angB-angC;
  17. Ax=0;
  18. Ay=0;
  19. Cx=1;
  20. Cy=0;
  21. Bx=Cos[angA Degree]*Sin[angC Degree]/Sin[angB Degree];
  22. By=Sin[angA Degree]*Sin[angC Degree]/Sin[angB Degree];
  23. k1=Tan[(90+angC/2) Degree];k2=Tan[(angA/2) Degree];
  24. k3=Tan[(angA) Degree];
  25. k4=Tan[(90+angC) Degree];
  26. Px=1/(1-k1*k2);
  27. Py=k2/(1-k1*k2);
  28. Dx=1/(1-k1*k3);
  29. Dy=k3/(1-k1*k3);
  30. Ty=0;
  31. Tx=Px-Sqrt[((Px-Bx)^2+(Py-By)^2-Py^2)];
  32. Ex=1/(1-k2*k4);
  33. Ey=k2/(1-k2*k4);


  34. (*Y点x、y坐标由下面方程求出,取坐标值较小的一组数据:*)
  35. ansY=NSolve[{(Px-Yx)^2+(Py-Yy)^2-1/4*((Px-Ex)^2+(Py-Ey)^2)== 0 &&(Dx-Yx)^2+(Dy-Yy)^2-1/4*((Px-Dx)^2+(Py-Dy)^2)==0},{Yx,Yy},
  36. WorkingPrecision->150]//FullSimplify;
  37. N[ansY,40]

  38. Print["取第二解"]
  39. Yx=Yx/.ansY[[2,1]];
  40. Yy=Yy/.ansY[[2,2]];
  41. (*K点x、y坐标由下面方程求出,取坐标值较小的一组数据:*)
  42. ansK=NSolve[{(Px-Kx)^2+(Py-Ky)^2-1/4*((Px-Ex)^2+(Py-Ey)^2)==0 &&
  43. (Bx-Kx)^2+(By-Ky)^2-1/4*((Px-Bx)^2+(Py-By)^2)==0},{Kx,Ky},
  44. WorkingPrecision->150]//FullSimplify;
  45. N[ansK,40]
  46. Print["取第二解"]
  47. Kx=Kx/.ansK[[2,1]];
  48. Ky=Ky/.ansK[[2,2]];


  49. ang1=ArcTan[((Ky-Yy)/(Kx-Yx))]*180/Pi;
  50. YTA=ArcTan[(-(Ty-Yy)/(Tx-Yx))]*180/Pi;
  51. TYK=ang1+YTA;

  52. Print["验算用全部点的坐标:"]
  53. Print["A:",N[Ax,40]," , ",N[Ay,40]]
  54. Print["B:",N[Bx,40]," , ",N[By,40]]
  55. Print["C:",N[Cx,40]," , ",N[Cy,40]]
  56. Print["D:",N[Dx,40]," , ",N[Dy,40]]
  57. Print["E:",N[Ex,40]," , ",N[Ey,40]]
  58. (*Print["F:",N[Fx,40]," , ",N[Fy,40]]
  59. Print["G:",N[Gx,40]," , ",N[Gy,40]]
  60. Print["H:",N[Hx,40]," , ",N[Hy,40]]*)
  61. Print["P:",N[Px,40]," , ",N[Py,40]]
  62. Print["K:",N[Kx,40]," , ",N[Ky,40]]
  63. Print["Y:",N[Yx,40]," , ",N[Yy,40]]
  64. Print["T:",N[Tx,40]," , ",N[Ty,40]]
  65. Print["\n计算结果 角TYK= ",N[TYK,40]," 度"]
  66. Print["--- end ---"]

复制代码




验算用全部点的坐标按sheng_jianguo公式计算高精度数值)
A:0 , 0
B:0.2773856573457319180388164846771671225063 , 0.2773856573457319180388164846771671225063
C:1.000000000000000000000000000000000000000 , 0
D:0.1563595206991933912656890164116462907359 , 0.1563595206991933912656890164116462907359
E:0.4809858543603847813344377298593593481903 , 0.1992308641856816527726382705877690645024
P:0.3091289115808391643999661835655612179945 , 0.1280453876984169075874796922378977584362
K:0.2557161458403341375559839460607672901932 , 0.2041875026349792295598721686121115113072
Y:0.2180590475407362821176241619401935696729 , 0.1091555736501021257066687220541582145555
T:0.2259752645355681121288712957641149097994 , 0

计算结果 角TYK= 154.2357284163737151883897130305920226140 度

带有答案的图片:

含答案的大图

含答案的大图
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2020-4-21 15:28:39 | 显示全部楼层
这类题目不要拿出来,用CAD画两下就出结果了!
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2020-4-21 16:16:35 | 显示全部楼层
本帖最后由 sheng_jianguo 于 2020-4-21 16:26 编辑
mathematica 发表于 2020-4-21 15:28
这类题目不要拿出来,用CAD画两下就出结果了!


题目是要求高精度角度,CAD好像不是高精度运算软件,不能保证小数点8位后的计算结果完全正确。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2020-4-21 17:07:41 | 显示全部楼层
dlpg070 发表于 2020-4-20 13:08
sheng_jianguo公式 解求度数第一题,
结果表明:
1 sheng_jianguo公式 完全正确

我的公式(如果和你的计算实质是一样的)用mathematica计算,当然和你的结果一样。
即使mathematica计算精度高于MATLAB,也不能说明你的结果一定正确无误:
1.我没有用过mathematica,不知计算过程中保留小数点后几位?
2.即使mathematica号称高精度计算(比如有100位精度),但任何软件不能保证没有漏洞,如果本计算题正好是它的漏洞怎么办?

PS: 什么地方能下载实用的mathematica?我可以学习一下。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

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

GMT+8, 2024-4-19 14:34 , Processed in 0.049304 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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