- 注册时间
- 2021-11-19
- 最后登录
- 1970-1-1
- 威望
- 星
- 金币
- 枚
- 贡献
- 分
- 经验
- 点
- 鲜花
- 朵
- 魅力
- 点
- 上传
- 次
- 下载
- 次
- 积分
- 9086
- 在线时间
- 小时
|
发表于 2023-8-25 11:46:24
|
显示全部楼层
用余弦定理与反余弦函数列两个方程,这两个方程构成方程组,但是可以预料:软件求解这个方程组很困难!(也许人工操作软件慢慢也能算出来,但是我懒)。
转换思路,画图看看方程组的解在哪,然后牛顿迭代法获得高精度数值解,然后得到精确解,再验算精确解。
(*∠BAE+∠CAD=360-90=270°列方程1*)
得到
\[\cos ^{-1}\left(\frac{1}{4} \left(5-\text{BE}^2\right)\right)+\cos ^{-1}\left(\frac{1}{8} \left(10-\text{CD}^2\right)\right)-\frac{3 \pi }{2}=0\]
(*由∠CBE+∠CDE=180°,得到∠ABE+∠ADC=180-90-45=45°列方程2*)
得到
\[\cos ^{-1}\left(\frac{\text{BE}^2+3}{4 \text{BE}}\right)+\cos ^{-1}\left(\frac{\text{CD}^2-6}{2 \sqrt{2} \text{CD}}\right)-\frac{\pi }{4}=0\]
画等值线图(给版主节省一点空间,就不上传这张图了,可以复制代码在软件中得到图),知道方程组在有意义的范围内只有一组解。
高精度数值解为
{BE -> 2.7979326519318134040630810788639975293470451277324777598618726\
46300747184075960598229656601002893606,
CD -> 3.9568743029684908345957334381028882136706148524629904443534491\
45402687924362251263097354440484226098}
由高精度数值解得到的精确解是
\[\left\{\sqrt{2 \sqrt{2}+5},\sqrt{4 \sqrt{2}+10}\right\}\]
很容易验证精确解是方程组的根
很容易看出后者是前者的根号2倍。由此得到对顶的两个三角形相似!然后得到对顶的两个角都是135°,然后得到CD是直径,那么半径也就容易求解出来了。
全部代码如下:
- Clear["Global`*"];(*清除所有变量*)
- deg=Pi/180;(*角度制下1°所对应的弧度*)
- (*子函数,利用三边计算角的余弦值,角是c边所对的角*)
- cs[a_,b_,c_]:=((a^2+b^2-c^2)/(2*a*b))
- {AC,AD}={Sqrt[8],Sqrt[2]};(*已知长度的两条线段赋值*)
- (*∠BAE+∠CAD=360-90=270°列方程1*)
- eq1=ArcCos@cs[2,1,BE]+ArcCos@cs[AC,AD,CD]-270deg
- (*由∠CBE+∠CDE=180°,得到∠ABE+∠ADC=180-90-45=45°列方程2*)
- eq2=ArcCos@cs[2,BE,1]+ArcCos@cs[AD,CD,AC]-45deg
- (*绘图查看解的范围*)
- ContourPlot[{eq1==0,eq2==0},{BE,0,6},{CD,0,6}]
- (*从上图找到初始值,然后找方程组的高精度数值解*)
- aaa=FindRoot[{eq1==0,eq2==0},{{BE,2},{CD,4}},WorkingPrecision->100]
- (*由高精度数值解,得到精确解*)
- bbb=RootApproximant[{BE,CD}/.aaa]//ToRadicals//Simplify
- (*查看高精度数值解是否为方程组的解*)
- ccc={eq1==0,eq2==0}/.Thread[{BE,CD}->bbb]//FullSimplify
复制代码
|
-
|