找回密码
 快速注册
搜索
查看: 50|回复: 6

[几何] 已知三角形的垂心到各顶点的距离,能否确定内切圆的半径和三角形的面积?

[复制链接]

119

主题

446

回帖

3179

积分

积分
3179

显示全部楼层

TSC999 发表于 2025-2-17 12:16 |阅读模式
垂心图.png
已知三角形的垂心到各顶点的距离 HA、HB、HC,能否确定内切圆的半径 r 和三角形的面积?
可能利用的定理有 ——
定理一: 若三边长 BC = a,CA = b,AB = c,外接圆半径为 R,则有
                       4 R^2 = AH^2 + a^2 = BH^2 + b^2 = CH^2 + c^2。
定理二: AH HD = BH HE = CH HF。
定理三: 对于非钝角三角形有 HA + HB + HC = 2 (r + R),其中 r 为内切圆半径,R 为外接圆半径。

119

主题

446

回帖

3179

积分

积分
3179

显示全部楼层

 楼主| TSC999 发表于 2025-2-18 15:29
本帖最后由 TSC999 于 2025-2-18 15:58 编辑 此问题,已知三角形的垂心到各顶点的距离,内切圆的半径有两个解,三角形的面积也是两个解。
例如,当 AH = 10;   BH = 304;    CH = 233 时:
垂心图有二个解.png
当垂心在三角形内部时,内切圆半径  r1 = 79.5559441432387246080038093850909529598....,
三角形面积 S1 = 37343.024518395765606543583679.....。
当垂心在三角形外部时,内切圆半径  r2 =74.38391421452205059071852730250831985849....,
三角形面积 S2 = 33513.1200036001508458339373013.....。
计算依据是先由 AH、BH、CH 的值求内切圆的切线长,这需要解下面三个方程组:
由 AH BH CH 求内切圆切线长.png
然后就可算出三边长、内切圆半径和面积:
  1. Clear["Global`*"];
  2. AH = 10; BH = 304; CH = 233;
  3. NSolve[{AH ==
  4.    Sqrt[((tx + ty)^2 (ty + tz)^2 (tz + tx)^2)/(
  5.     4 (tx + ty + tz) tx ty tz) - (ty + tz)^2],
  6.   BH == Sqrt[((tx + ty)^2 (ty + tz)^2 (tz + tx)^2)/(
  7.     4 (tx + ty + tz) tx ty tz) - (tx + tz)^2],
  8.   CH == Sqrt[((tx + ty)^2 (ty + tz)^2 (tz + tx)^2)/(
  9.     4 (tx + ty + tz) tx ty tz) - (tx + ty)^2], tx > 0, ty > 0,
  10.   tz > 0}, {tx, ty, tz}, 100]
  11. tx = 81.63407970938620540008543908739976428224449715550794783729904527\
  12. 3527037569944412753411063367316531372718068726874846941510983453982794\
  13. 95;
  14. ty = 228.4758801575651015660326813149937171526588242844408945444372691\
  15. 8992422502378946589080015270073170395346335290806591911320506473366766\
  16. 289;
  17. tz = 159.2833069788355109738296572184545315203463619183596149742957495\
  18. 5114305697435545834999323635297901177574496197953839665363073763766461\
  19. 131;
  20. Print["三角形为锐角三角形、垂心在三角形内部时: "];
  21. Print["r1 = ", N[Sqrt[(tx ty tz)/(tx + ty + tz)], 100]];
  22. a = ty + tz; b = tx + tz; c = tx + ty;
  23. Print["a1 = ", N[a, 100]];
  24. Print["b1 = ", N[b, 100]];
  25. Print["c1 = ", N[c, 100]];
  26. p = (a + b + c)/2; S = Sqrt[p (p - a) (p - b) (p - c)];
  27. Print["S1 = ", N[S, 100]];
  28. Print["。。。。。。。。。。。。 "];
  29. tx = 72.44261717942226858346213302157042011860246243152941416270961739\
  30. 2938411267721257092182127996078849721263529346041375711199031476751841\
  31. 16;
  32. ty = 225.5012963534455573701516841081325088441317605491340060132027867\
  33. 7979742888640769875524215737071178928744194634990923114308643883215509\
  34. 344;
  35. tz = 152.5986581708587954437848918929719805276285144499044585310104605\
  36. 5819872142972840988073552089253324797395816393953623356677915300500641\
  37. 611;
  38. Print["三角形为钝角三角形、垂心在三角形外部时: "];
  39. Print["r2 = ", N[Sqrt[(tx ty tz)/(tx + ty + tz)], 100]];
  40. a = ty + tz; b = tx + tz; c = tx + ty;
  41. Print["a2 = ", N[a, 100]];
  42. Print["b2 = ", N[b, 100]];
  43. Print["c2 = ", N[c, 100]];
  44. p = (a + b + c)/2; S = Sqrt[p (p - a) (p - b) (p - c)];
  45. Print["S2 = ", N[S, 100]];
复制代码


目前尚未解决的问题是,方程组 ①、②、③ 的公式解还没有找到。

119

主题

446

回帖

3179

积分

积分
3179

显示全部楼层

 楼主| TSC999 发表于 2025-2-18 17:13
2# 楼中公式 ①、②、③ 的证明:
三个公式的证明.png

119

主题

446

回帖

3179

积分

积分
3179

显示全部楼层

 楼主| TSC999 发表于 2025-2-18 17:40
\(AH^2+a^2=BH^2+b^2=CH^2+c^2=4R^2\) 的证明:
定理 5 的证明.png
此图摘自【几何瑰宝】第 2 版上册,第 107 页定理 5 及其证明。

119

主题

446

回帖

3179

积分

积分
3179

显示全部楼层

 楼主| TSC999 发表于 2025-2-18 18:18
本帖最后由 TSC999 于 2025-2-20 08:57 编辑 设 tx、ty、tz 分别是 A、B、C 点到内切圆的切线长,AH、BH、CH 分别是 A、B、C 点到垂心的距离。
把 AH、BH、CH 作为已知量, tx、ty、tz 作为未知量,从上面知道,它们之间满足以下方程:
\(AH=\sqrt{\frac{(tx+ty)^2(ty+tz)^2(tz+tx)^2}{4(tx+ty+tz)tx ty tz}-(ty+tz)^2}\)
\(BH=\sqrt{\frac{(tx+ty)^2(ty+tz)^2(tz+tx)^2}{4(tx+ty+tz)tx ty tz}-(tx+tz)^2}\)
\(CH=\sqrt{\frac{(tx+ty)^2(ty+tz)^2(tz+tx)^2}{4(tx+ty+tz)tx ty tz}-(tx+ty)^2}\)

这个方程组通常有两组正解(对于直角三角形和正三角形,只有一组解),利用计算软件得到任意精度的数值解是没有问题的,
并且现在已经有了一种公式解,是从一个一元三次方程的解集中导出的。这个一元三次方程是【数学研发论坛】
的管理员 wayne 给出的,但是他没有给出推导过程。这个一元三次方程是(点击图面可看到放大图):
垂心问题公式解一.png
  1. Clear["Global`*"];(*三个根中最多只有一至两个根有用,下面是如何自动筛选出正确解的程序*)
  2. AH = 10; BH = 304; CH = 233;(*锐角三角形*)
  3. AH = 0; BH = 3; CH = 4;(*直角三角形*)
  4. AH = BH = CH = 5 Tan[\[Pi]/3] - 5 Tan[\[Pi]/6];(*正三角形*)
  5. AH = 5 Tan[\[Pi]/3] - 5 Tan[\[Pi]/6]; BH = 10; CH = 10;(*钝角三角形*)
  6. u = AH^2 + BH^2 + CH^2; v = AH^2 BH^2 CH^2;
  7. w1 = Power[-(u^3/27) + 2 v -
  8.   Sqrt[(2 v - u^3/27)^2 - u^6/729], (3)^-1]; w2 = Power[-(u^3/27) +
  9.   2 v + Sqrt[(2 v - u^3/27)^2 - u^6/729], (3)^-1];
  10. t1 = (2 u)/3 + w1 + w2;
  11. t2 = 1/6 (4 u + 3 I (I + Sqrt[3]) w1 - 3 I (-I + Sqrt[3]) w2);
  12. If[N[Re[t1] > AH^2 && Re[t1] > BH^2 && Re[t1] > CH^2],
  13.   Print["a1 = ", Sqrt[N[Re[t1], 100] - AH^2]] &&
  14.    Print["b1 = ", Sqrt[N[Re[t1], 100] - BH^2]] &&
  15.    Print["c1 = ", Sqrt[N[Re[t1], 100] - CH^2]]];
  16. If[N[Re[t1] > AH^2 && Re[t1] > BH^2 && Re[t1] > CH^2],
  17.   a1 = Sqrt[N[Re[t1], 100] - AH^2] ;
  18.   b1 = Sqrt[N[Re[t1], 100] - BH^2]; c1 = Sqrt[N[Re[t1], 100] - CH^2];
  19.   p1 = (a1 + b1 + c1)/2;
  20.   Print["S1 = ", Sqrt[p1 (p1 - a1) (p1 - b1) (p1 - c1)] ]];
  21. Print["。。。。。。。。。。。。。。 "];
  22. If[N[Re[t2] > AH^2 && Re[t2] > BH^2 && Re[t2] > CH^2],
  23.   Print["a2 = ", Sqrt[N[Re[t2], 100] - AH^2]] &&
  24.    Print["b2 = ", Sqrt[N[Re[t2], 100] - BH^2]] &&
  25.    Print["c2 = ", Sqrt[N[Re[t2], 100] - CH^2]]];
  26. If[N[Re[t2] > AH^2 && Re[t2] > BH^2 && Re[t2] > CH^2],
  27.   a2 = Sqrt[N[Re[t2], 100] - AH^2] ;
  28.   b2 = Sqrt[N[Re[t2], 100] - BH^2]; c2 = Sqrt[N[Re[t2], 100] - CH^2];
  29.   p2 = (a2 + b2 + c2)/2;
  30.   Print["S2 = ", Sqrt[p2 (p2 - a2) (p2 - b2) (p2 - c2)] ]];
复制代码

119

主题

446

回帖

3179

积分

积分
3179

显示全部楼层

 楼主| TSC999 发表于 2025-2-19 09:37
本帖最后由 TSC999 于 2025-2-20 08:59 编辑 根据上面的程序,对于直角三角形和正三角形,方程都是只有一组解。具体例子如下:
(1)边长为 3、4、5 的直角三角形。已知 AH=0、BH=3、CH=4。按以上方法算得 r1=r2=1,a1=a2=5,b1=b2=3,c1=c2=4。S1=S2=6。
(2)边长为 10、10、10 的正三角形。已知 AH=BH=CH=5.7735026918962576450914878.....。按以上方法算得 r1=r2=2.886751345948128822545743902509787278238008756350634380093011632419888361514666728468576977928747626.....,
a1=a2=10,b1=b2=10,c1=c2=10。S1=S2=43.30127018922193233818615853764680917357013134525951570139517448629832542272000092702865466893121439.....。

对于非正三角形的一般锐角三角形,目前发现都是有两组解,例如
对于  AH = 10;  BH = 304;  CH = 233  的锐角三角形,两组解答为 a1 = 387.7591871.....,b1 = 240.917386688.....,c1 = 310.10995986695.....,S1 = 37343.024518395765.....。
a2 = 378.099954524......, b2 =225.0412753502810.....,c2 =297.94391353286.....,S2 =33513.120003600150......。


对于钝角三角形,目前发现也都是有两组解,例如
对于 AH = 5 tan60° - 5 tan30°;   BH = 10;   CH = 10 的钝角三角形,两组解答为 a1 = 16.3299316.....,b1 = 14.1421356.....,c1 = 14.1421356.....,S1 = 94.2809041......。
a2 = 10, b2 = 5.77350269189.....,c2 = 5.77350269189.....,S2 = 14.4337567......。

119

主题

446

回帖

3179

积分

积分
3179

显示全部楼层

 楼主| TSC999 发表于 2025-2-20 19:56
下面这个程序更简单,它是先由 AH、BH、CH 按方程
\( (4 R^3 - (AH^2 + BH^2 + CH^2) R +  AH BH CH) (4 R^3 - (AH^2 + BH^2 + CH^2) R - AH BH CH) = 0\)
求得三角形的外接圆半径后,再由  \( a =\sqrt{4 R^2 - AH^2};  b =\sqrt{4 R^2 - BH^2}; c =\sqrt{4 R^2 - CH^2};\)
求出各边长, 最后由  \( S =\frac{a b c }{4R}\) 求出面积。
上面那个六次方程的六个根中,由于条件 R > AH/2,R > BH/2,R > CH/2 的限制,最多只有两个根能用。这两个根
的公式表达已在下面的程序中给出。程序可自动判定各种形状的三角形有一个解还是两个解。

  1. Clear["Global`*"];
  2. AH = 10; BH = 304; CH = 233;(*锐角三角形*)
  3. AH = 0; BH = 3; CH = 4;(*直角三角形*)
  4. AH = BH = CH = 5 Tan[\[Pi]/3] - 5 Tan[\[Pi]/6];(*正三角形*)
  5. AH = 5 Tan[\[Pi]/3] - 5 Tan[\[Pi]/6]; BH = 10; CH = 10;(*钝角三角形*)
  6. AH = 10; BH = 304; CH = 233;(*锐角三角形*)
  7. u = (AH^2 + BH^2 + CH^2)^3; v = AH BH CH;
  8. R1 = Power[3, (
  9.    3)^-1] (Power[-Sqrt[3] Sqrt[27 v^2 - u] - 9 v, (3)^-1] + Power[
  10.       Sqrt[3] Sqrt[27 v^2 - u] - 9 v, (3)^-1])/6;
  11. R2 = Power[3, (
  12.    3)^-1] (Power[-Sqrt[3] Sqrt[27 v^2 - u] + 9 v, (3)^-1] + Power[
  13.       Sqrt[3] Sqrt[27 v^2 - u] + 9 v, (3)^-1])/6;
  14. If[N[Re[R1] > AH/2 && Re[R1] > BH/2 && Re[R1] > CH/2],
  15.   a1 = Sqrt[ 4 R1^2 - AH^2]; b1 = Sqrt[ 4 R1^2 - BH^2];
  16.   c1 = Sqrt[ 4 R1^2 - CH^2]; Print["R = ", N[Re[R1], 100]] ];
  17. If[N[Re[R1] > AH/2 && Re[R1] > BH/2 && Re[R1] > CH/2],
  18.   Print["S = ", N[Re[(a1 b1 c1)/(4 R1)], 100]]];
  19. If[N[Re[R2] > AH/2 && Re[R2] > BH/2 && Re[R2] > CH/2],
  20.   a2 = Sqrt[ 4 R2^2 - AH^2]; b2 = Sqrt[ 4 R2^2 - BH^2];
  21.   c2 = Sqrt[ 4 R2^2 - CH^2];
  22.   If[R2 == R1, , Print["R = ", N[Re[R2], 100]] ]];
  23. If[N[Re[R2] > AH/2 && Re[R2] > BH/2 && Re[R2] > CH/2],
  24.   If[R2 == R1, , Print["S = ", N[Re[(a2 b2 c2)/(4 R2)], 100 ]]]];
复制代码


例如对于锐角三角形  AH = 10; BH = 304; CH = 233,程序给出的计算结果是:
R = 189.1160857854779494092814726974916801415074861313353498896910912676648062057845971166164395417150437
S = 33513.12000360015084583393730130765683776342204411502238860909034900329439819384609646426174249196155
R = 193.9440558567612753919961906149090470401960145201871603411485430307116457627891307131652349714083547
S = 37343.02451839576560654358367901796739626253672899795611621417727102363143644715094548601358734054778
共有两个解。
又如对于直角三角形 AH = 0; BH = 3; CH = 4,程序给出的计算结果是:
R = 2.500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
S = 6.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
只有一个解。

手机版|悠闲数学娱乐论坛(第3版)

GMT+8, 2025-3-4 13:03

Powered by Discuz!

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