mathematica 发表于 2020-11-20 09:16:11

三个圆相切,如何求最小圆的半径?

假设两个圆的半径分别是a b
求红色的小圆的半径。

mathematica 发表于 2020-11-20 09:23:09

本帖最后由 mathematica 于 2020-11-20 09:29 编辑

假设两个大圆的半径分别是2与3
利用中间的角相加等于180,两个反正弦,一个反余弦,相加得到180度,
直接用mathematica的solve函数,求解不出结果,所以先用数值求解,然后再用代数近似求解解析解!

Clear["Global`*"];
(*计算余弦值子函数,利用三边计算余弦值*)
cs:=(a^2+b^2-c^2)/(2*a*b)
a=2;
b=3;
f=ArcSin[(b-x)/(b+x)]+ArcSin[(a-x)/(a+x)]+ArcCos@cs-Pi
out=x/.FindRoot
RootApproximant




结果是:
\
数值是
0.6061230866018628216325911035293032964086302321199584588076891929884754705122196815216868027443171822

mathematica 发表于 2020-11-20 09:43:40

本帖最后由 mathematica 于 2020-11-20 09:45 编辑

Clear["Global`*"];
(*计算余弦值子函数,利用三边计算余弦值*)
cs:=(a^2+b^2-c^2)/(2*a*b)
a=2;
b=3;
f=ArcCos[(b-x)/(b+x)]+ArcCos@cs-ArcCos[(b-a)/(b+a)]
Solve

按照左上角的两个反余弦的角相加等于大的反余弦的角。但是软件还是求解不出来!

\[\cos ^{-1}\left(\frac{a (b-x)+b (b+x)}{(a+b) (b+x)}\right)-\cos ^{-1}\left(\frac{b-a}{a+b}\right)+\cos ^{-1}\left(\frac{b-x}{b+x}\right)=0\]

求解这个方程就可以了!

mathematica 发表于 2020-11-20 10:10:13

mathematica 发表于 2020-11-20 09:43
按照左上角的两个反余弦的角相加等于大的反余弦的角。但是软件还是求解不出来!

\[\cos ^{-1}\left(\f ...

Clear["Global`*"];
(*计算余弦值子函数,利用三边计算余弦值*)
cs:=(a^2+b^2-c^2)/(2*a*b)
(*计算两个角的余弦,左上角的两个角相加等于大的角(余弦的结果是(b-a)/(b+a))*)
u=(b-x)/(b+x)
v=cs
(*根据两角相加的余弦公式,求出两角和的余弦*)
aaa=u*v-Sqrt[(1-u^2)*(1-v^2)]-(b-a)/(b+a)//FullSimplify
bbb=FullSimplify@Solve
(*代入特殊值,看是不是增根*)
(aaa/.bbb)/.{a->2,b->3}//FullSimplify

软件太笨了,不得不人工化简,然后用软件求解,最后的求解结果是\[\left\{\left\{x\to \frac{a b}{\left(\sqrt{a}+\sqrt{b}\right)^2}\right\},\left\{x\to \frac{a b}{\left(\sqrt{a}-\sqrt{b}\right)^2}\right\}\right\}\],后者是增根

mathematica 发表于 2020-11-20 10:34:55

本帖最后由 mathematica 于 2020-11-20 10:47 编辑

mathematica 发表于 2020-11-20 10:10
软件太笨了,不得不人工化简,然后用软件求解,最后的求解结果是\[\left\{\left\{x\to \frac{a b}{\lef ...

Clear["Global`*"];
(*假设B圆的圆心是(0,b),A圆圆心(xa,a),小圆圆心(xc,c),根据三个圆两两外切,
圆心的距离等于半径和,列三个等式,求解三个未知数*)
aaa=FullSimplify@Solve[{
    (0-xc)^2+(b-c)^2==(b+c)^2,
    (0-xa)^2+(b-a)^2==(b+a)^2,
    (xc-xa)^2+(c-a)^2==(c+a)^2
},{xc,xa,c}]
Grid

求解结果
\[\begin{array}{ccc}
\text{xc}\to -\frac{2 \sqrt{a} b}{\sqrt{a}-\sqrt{b}} & \text{xa}\to 2 \sqrt{a} \sqrt{b} & c\to \frac{a b}{\left(\sqrt{a}-\sqrt{b}\right)^2} \\
\text{xc}\to \frac{2 \sqrt{a} b}{\sqrt{a}+\sqrt{b}} & \text{xa}\to 2 \sqrt{a} \sqrt{b} & c\to \frac{a b}{\left(\sqrt{a}+\sqrt{b}\right)^2} \\
\text{xc}\to -\frac{2 \sqrt{a} b}{\sqrt{a}+\sqrt{b}} & \text{xa}\to -2 \sqrt{a} \sqrt{b} & c\to \frac{a b}{\left(\sqrt{a}+\sqrt{b}\right)^2} \\
\text{xc}\to \frac{2 \sqrt{a} b}{\sqrt{a}-\sqrt{b}} & \text{xa}\to -2 \sqrt{a} \sqrt{b} & c\to \frac{a b}{\left(\sqrt{a}-\sqrt{b}\right)^2} \\
\end{array}\]

方程解的几何意义:一个大圆,一个小圆,小圆在两个圆的下方相切,大圆在两个圆的上方相切,这个小圆与大圆都与直线相切

mathematica 发表于 2020-11-20 10:43:14

https://bbs.emath.ac.cn/forum.php?mod=redirect&goto=findpost&ptid=17087&pid=82793&fromuid=865
我感觉与这儿的有点联系!

mathematica 发表于 2020-11-20 10:53:39

本帖最后由 mathematica 于 2020-11-20 10:54 编辑

mathematica 发表于 2020-11-20 10:34
求解结果
\[\begin{array}{ccc}
\text{xc}\to -\frac{2 \sqrt{a} b}{\sqrt{a}-\sqrt{b}} & \text{ ...

这两个解满足等式
\[\frac{1}{\sqrt{c}}=\frac{1}{\sqrt{a}}+\frac{1}{\sqrt{b}}\],
\[\frac{1}{\sqrt{c}}=\frac{1}{\sqrt{a}}-\frac{1}{\sqrt{b}}\]
其中ab是两个已知的圆的半径(a<b),c是待求解的圆的半径.第一个在下面相切,第二个在上面相切

chyanog 发表于 2020-11-20 11:53:16

mathematica 发表于 2020-11-20 09:23
假设两个大圆的半径分别是2与3
利用中间的角相加等于180,两个反正弦,一个反余弦,相加得到180度,
直接 ...

非要解反三角方程的话,稍微变通一下就可以了
Solve+ArcSin[(a-x)/(a+x)]==Pi-ArcCos[((a+x)^2+(b+x)^2-(a+b)^2)/(2 (a+x) (b+x))]),x]//FullSimplify

kastin 发表于 2020-11-20 15:19:06

直接用三遍勾股定理就行 `\sqrt{(a+c)^2-(a-c)^2}+\sqrt{(b+c)^2-(b-c)^2}=\sqrt{(a+b)^2-(a-b)^2}`,根号里面很简单,两边同时平方,解得 `c=\D\frac{ab}{(\sqrt{a}+\sqrt{b})^2}`.

mathematica 发表于 2020-11-23 12:01:16

kastin 发表于 2020-11-20 15:19
直接用三遍勾股定理就行 `\sqrt{(a+c)^2-(a-c)^2}+\sqrt{(b+c)^2-(b-c)^2}=\sqrt{(a+b)^2-(a-b)^2}`,根号 ...

三个圆心构成的三角形的面积是(a+b+c)*a*b*c的平方根,有意思!
页: [1]
查看完整版本: 三个圆相切,如何求最小圆的半径?