找回密码
 欢迎注册
查看: 635|回复: 14

[提问] 求半圆的半径?

[复制链接]
发表于 4 天前 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?欢迎注册

×
求半圆的半径?
mmexport1758497354440.jpg
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 4 天前 | 显示全部楼层
解方程组。

点评

nyy
给过程,给思路,给结果,你总得选一样呀  发表于 4 天前
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
回复

使用道具 举报

 楼主| 发表于 4 天前 | 显示全部楼层
  1. Clear["Global`*"];(*mathematica11.2,win7(64bit)Clear all variables*)
  2. (*解析几何求解问题*)
  3. (*点坐标初始赋值*)
  4. {xa,ya}={0,0};
  5. {xd,yd}={95,0};
  6. {xb,yb}={144,0};
  7. (*用万能公式替换掉余弦正弦,这样可以避免三角函数,t表示角的一半的正切值*)
  8. {xe,ye}=89*{(1-t^2)/(1+t^2),2*t/(1+t^2)}
  9. {xc,yc}=(89+29)*{(1-t^2)/(1+t^2),2*t/(1+t^2)}
  10. (*得到中点坐标,也就是圆心*)
  11. {xo,yo}=({xe,ye}+{xd,yd})/2
  12. (*计算OF,BC的斜率*)
  13. kOF=(yf-yo)/(xf-xo)
  14. kBC=(yb-yc)/(xb-xc)
  15. (*列方程组解决问题*)
  16. ans=Solve[{
  17.     Numerator@Together[kOF*kBC-(-1)]==0,(*OF与BC垂直,所以斜率乘积等于-1*)
  18.     EuclideanDistance[{xo,yo},{xe,ye}]==EuclideanDistance[{xo,yo},{xf,yf}]==R,(*OE=OF=半径R*)
  19.     Det[{{xc,yc,1},{xf,yf,1},{xb,yb,1}}]==0(*CFB三点共线*)
  20. },{xf,yf,t,R}]//FullSimplify//ToRadicals
  21. aaa=Select[ans,And[xf>=0,yf>=0]/.#&](*删选出F点坐标在第一象限的*)
  22. Grid[aaa,Alignment->Left](*列表显示*)
  23. Grid[N[aaa,10],Alignment->Left](*列表显示*)
  24. BC=EuclideanDistance[{xc,yc},{xb,yb}]/.aaa//FullSimplify//ToRadicals(*计算BC的长度*)
复制代码


方程组求解结果
\[\begin{array}{llll}
\text{xf}\to \frac{83779304167861-93165912 \sqrt{4762038090}}{838751391179} & \text{yf}\to \frac{1652 \sqrt{\frac{3}{113} \left(981684965115430363-14066369454466 \sqrt{4762038090}\right)}}{7422578683} & t\to \frac{13}{2} \sqrt{\frac{3}{14 \sqrt{4762038090}+966899}} & R\to 2 \sqrt{\frac{3 \left(8302546067-118370 \sqrt{4762038090}\right)}{168457801}} \\
\text{xf}\to \frac{93165912 \sqrt{4762038090}+83779304167861}{838751391179} & \text{yf}\to \frac{1652 \left(236397921 \sqrt{3422}+10085747 \sqrt{1391595}\right)}{838751391179} & t\to \frac{21 \sqrt{3422}+\sqrt{1391595}}{6026} & R\to 2 \sqrt{\frac{3 \left(118370 \sqrt{4762038090}+8302546067\right)}{168457801}} \\
\end{array}\]

数值化
\[\begin{array}{llll}
\text{xf}\to 92.22059869 & \text{yf}\to 3.803350794 & t\to 0.008097623365 & R\to 3.091014513 \\
\text{xf}\to 107.5508832 & \text{yf}\to 50.67079647 & t\to 0.3996206400 & R\to 34.25347213 \\
\end{array}\]

BC长度
\[\left\{2 \sqrt{\frac{225649786897-2854656 \sqrt{4762038090}}{168457801}},2 \sqrt{\frac{2854656 \sqrt{4762038090}+225649786897}{168457801}}\right\}\]

BC数值化
{26.085560599246717687, 100.17769332104894027}

QQ截图20250922100420.png

点评

nyy
虽然代码有小错误,但是图是对的,图有用,不要删除  发表于 4 天前
nyy
因为我画图的时候,发现两边之差小于第三边,所以发现这个错误了。  发表于 4 天前
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 4 天前 | 显示全部楼层
nyy 发表于 2025-9-22 10:10
方程组求解结果
\[\begin{array}{llll}
\text{xf}\to \frac{83779304167861-93165912 \sqrt{476203809 ...
  1. Clear["Global`*"];(*mathematica11.2,win7(64bit)Clear all variables*)
  2. (*子函数,利用三边计算角的余弦值,角是c边所对的角*)
  3. cs[a_,b_,c_]:=((a^2+b^2-c^2)/(2*a*b))
  4. (*线段长度变量赋值*)
  5. AD=DA=95;DB=BD=49;
  6. AE=EA=87;EC=CE=29;
  7. AO=OA=a;BO=OB=b;CO=OC=c;
  8. BF=FB=d;FC=CF=e;
  9. DO=OD=EO=OE=FO=OF=R;
  10. ans=NSolve[{
  11.     cs[OD,OA,AD]+cs[OE,OA,AE]==0,
  12.     cs[DA,DO,AO]+cs[DB,DO,BO]==0,
  13.     cs[FB,FO,BO]==0,
  14.     cs[FC,FO,CO]==0,
  15.     cs[EO,EC,OC]+cs[EA,EO,AO]==0,
  16.     cs[AD,AE,BO+OE]==cs[AD+DB,AE+EC,BF+FC],
  17.     a>=0&&b>=0&&c>=0&&d>=0&&e>=0&&R>=0
  18. },{a,b,c,d,e,R}]
复制代码


这段代码,我感觉写的没问题,就是不知道为什么求解不出结果!
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 4 天前 | 显示全部楼层
nyy 发表于 2025-9-22 10:10
方程组求解结果
\[\begin{array}{llll}
\text{xf}\to \frac{83779304167861-93165912 \sqrt{476203809 ...

上面的代码输入有错误,长度应该是87,而不是89

  1. Clear["Global`*"];(*mathematica11.2,win7(64bit)Clear all variables*)
  2. (*解析几何求解问题*)
  3. (*点坐标初始赋值*)
  4. {xa,ya}={0,0};
  5. {xd,yd}={95,0};
  6. {xb,yb}={95+49,0};
  7. (*用万能公式替换掉余弦正弦,这样可以避免三角函数,t表示角的一半的正切值*)
  8. {xe,ye}=87*{(1-t^2)/(1+t^2),2*t/(1+t^2)}
  9. {xc,yc}=(87+29)*{(1-t^2)/(1+t^2),2*t/(1+t^2)}
  10. (*得到中点坐标,也就是圆心*)
  11. {xo,yo}=({xe,ye}+{xd,yd})/2
  12. (*计算OF,BC的斜率*)
  13. kOF=(yf-yo)/(xf-xo)
  14. kBC=(yb-yc)/(xb-xc)
  15. (*列方程组解决问题*)
  16. ans=Solve[{
  17.     Numerator@Together[kOF*kBC-(-1)]==0,(*OF与BC垂直,所以斜率乘积等于-1*)
  18.     EuclideanDistance[{xo,yo},{xe,ye}]==EuclideanDistance[{xo,yo},{xf,yf}]==R,(*OE=OF=半径R*)
  19.     Det[{{xc,yc,1},{xf,yf,1},{xb,yb,1}}]==0(*CFB三点共线*)
  20. },{xf,yf,t,R}]//FullSimplify//ToRadicals
  21. aaa=Select[ans,And[xf>=0,yf>=0]/.#&](*删选出F点坐标在第一象限的*)
  22. Grid[aaa,Alignment->Left](*列表显示*)
  23. Grid[N[aaa,10],Alignment->Left](*列表显示*)
  24. BC=EuclideanDistance[{xc,yc},{xb,yb}]/.aaa//FullSimplify//ToRadicals(*计算BC的长度*)
复制代码


求解结果
\[\begin{array}{llll}
\text{xf}\to \frac{531}{5} & \text{yf}\to \frac{252}{5} & t\to \frac{2}{5} & R\to 34 \\
\text{xf}\to \frac{1530351}{16745} & \text{yf}\to \frac{86268}{16745} & t\to \frac{2}{169} & R\to 26 \sqrt{\frac{5}{197}} \\
\end{array}\]

数值化
\[\begin{array}{llll}
\text{xf}\to 106.2000000 & \text{yf}\to 50.40000000 & t\to 0.4000000000 & R\to 34.00000000 \\
\text{xf}\to 91.39151986 & \text{yf}\to 5.151866229 & t\to 0.01183431953 & R\to 4.142144421 \\
\end{array}\]

BC长度
\[\left\{100,\frac{884}{\sqrt{985}}\right\}\]
数值化
{100.000000000000000000000000000,28.1665820641707426641508211048}
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 4 天前 | 显示全部楼层
nyy 发表于 2025-9-22 10:21
上面的代码输入有错误,长度应该是87,而不是89

小圆的情况是 切点在延长线上,
大圆的情况是图中的情况。
QQ截图20250922103208.png
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 4 天前 | 显示全部楼层
nyy 发表于 2025-9-22 10:21
上面的代码输入有错误,长度应该是87,而不是89
  1. Clear["Global`*"];(*mathematica11.2,win7(64bit)Clear all variables*)
  2. (*解析几何求解问题*)
  3. (*点坐标初始赋值*)
  4. {xa,ya}={0,0};
  5. {xd,yd}={95,0};
  6. {xb,yb}={95+49,0};
  7. {xe,ye}=87/(87+29)*{xc,yc}
  8. (*得到中点坐标,也就是圆心*)
  9. {xo,yo}=({xe,ye}+{xd,yd})/2
  10. (*计算OF,BC的斜率*)
  11. kOF=(yf-yo)/(xf-xo)
  12. kBC=(yb-yc)/(xb-xc)
  13. (*列方程组解决问题*)
  14. ans=Solve[{
  15.     xc^2+yc^2==(87+29)^2,(*AC=87+29*)
  16.     Numerator@Together[kOF*kBC-(-1)]==0,(*OF与BC垂直,所以斜率乘积等于-1*)
  17.     EuclideanDistance[{xo,yo},{xe,ye}]==EuclideanDistance[{xo,yo},{xf,yf}]==R,(*OE=OF=半径R*)
  18.     Det[{{xc,yc,1},{xf,yf,1},{xb,yb,1}}]==0(*CFB三点共线*)
  19. },{xc,yc,xf,yf,R}]//FullSimplify//ToRadicals
  20. aaa=Select[ans,And[xf>=0,yf>=0]/.#&](*删选出F点坐标在第一象限的*)
  21. Grid[aaa,Alignment->Left](*列表显示*)
  22. Grid[N[aaa,10],Alignment->Left](*列表显示*)
  23. BC=EuclideanDistance[{xc,yc},{xb,yb}]/.aaa//FullSimplify//ToRadicals(*计算BC的长度*)
复制代码


代码稍微修改也能得到结果
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 3 天前 | 显示全部楼层
你必须学会用三角函数。

Solve[{116/Sin[b] == 144/Sin[c], (2 R)^2 == (49 Sin[b] + 29 Sin[c])^2 == 95^2 +87^2 + 2*95*87 Cos[b + c], Pi/2 > c > b > 0, R > 0}, {b, c, R}]

{{b -> 2 ArcTan[1/2], c -> 2 ArcTan[8/9], R -> 34}}
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 3 天前 | 显示全部楼层
王守恩 发表于 2025-9-23 09:24
你必须学会用三角函数。

Solve[{116/Sin == 144/Sin[c], (2 R)^2 == (49 Sin + 29 Sin[c])^2 == 95^2 +87^ ...

我看了一下思路应该行得通
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 3 天前 | 显示全部楼层
角度比长度更重要。

Solve[{116/Sin[b] == 144/Sin[c], (2 R)/Sin[b + c] == 95/Cos[2 a - c], (2 R)/Sin[Pi/2] == w/Sin[a] == z/Cos[a], 49/Sin[a] == w /Sin[b] == y/Sin[a + b],
29/Cos[a] == z/Sin[c] == x /Cos[c - a], Pi/2 > a > 0, Pi > c > b > 0, x > 0}, {a, b, c, R, x, y, z, w}] // FullSimplify

{{a -> 2 ArcTan[1/7 (-6 + Sqrt[85])], b -> 2 ArcCot[2], c -> 2 ArcTan[8/9], R -> 34, x -> 37, y -> 63, z -> 24 Sqrt[17/5], w -> 28 Sqrt[17/5]}}
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

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

GMT+8, 2025-9-26 03:10 , Processed in 0.040777 second(s), 20 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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