7

在准备比赛时,我遇到了以下有趣的问题。

你有一个三角形,边长a, b, c为 ,绳子长为L。您需要找到由具有最大表面积的绳子包围的曲面,并且它必须完全在三角形内。

所以,如果L = a + b + c,那么它就是三角形的面积。

L否则,我们知道圆的表面积最大L.

所以,剩下的情况是 alfa < L < a + b + c,其中alfa是内接圆的周长。

任何想法都会很棒!

EDIT: 我想知道我是否应该专注于某种算法来解决这个问题或试图找出一个数学公式。比赛以某种方式包含了两者的结合。边数可长达100,精度为a,b,c,L小数点后4位。

4

4 回答 4

3

由于圆的面积/周长最大,因此从内切圆开始。如果 L 小于那个周长,则适当收缩。如果 L 更长,则增大 3 个弧中的任何一个使 dA/dL 最大化。我不知道是否有封闭的形式,但最大的弧将在三角形的第三个,边最接近平行。

用算法解决这个问题应该很简单。精确到小数点后 4 位,增量为 0.0001,检查每条弧线,查看单次增量中哪条弧线的 dA/dL 最大。

我在一夜之间绘制了几何图形: 带内圆的三角形 通过平分每个角度并找到平分线的交点来构造内切圆。我已经将半角标记为“a1”(所有相关变量都有“1”)。非圆形部分的面积是两个梯形(一个用红色轮廓表示)。我们可以计算单个梯形的面积为 L1 * (m1 + R)/2 (注意当 L1、L2、L3 都为零时,这些梯形都为零,我们就得到了内接圆的面积)。圆形帽的半径为 m1,以保持与三角形的边相切。对于给定的 L1 选择,m1 = R(x1-L1)/x1。

从这里您可以轻松计算三个扇区中每个扇区的周长和面积并进行数值求解。

我不能证明这是最大的面积,只是这就是如何计算这个建筑的面积和周长。

于 2013-04-23T15:35:47.187 回答
3

在阅读了这个问题的答案后:https ://math.stackexchange.com/questions/4808/why-circle-encloses-largest-area ,我同意nm,并认为最优曲线验证:

  • 当它接触三角形时,曲率要么是恒定的,要么是平坦的,这意味着它由位于三角形边上的线段和圆弧组成,它们都具有相同的半径。
  • 没有角度,这意味着弧与三角形边相切。

在这些条件下,解决方案由三个具有相同半径 R 的圆获得,每个圆都与三角形的两侧相切(见下文)。当 R 在 0 和内接圆的半径之间变化时,我们从三角形本身开始,到内接圆结束,三个圆都重合。曲线的长度是半径为 R 的圆的周长 + 小三角形的周长 (p):L = 2*Pi R + p。面积是较小三角形的面积 (a) + 一个半径为 R 的圆盘 + 其余矩形:A = Pi R^2 + p*R + a。

所描述的假设解决方案

于 2013-04-24T05:38:11.300 回答
2

如果绳子的周长太小或太大,答案都是微不足道的。有趣的例子是一个有 6 个顶点的形状,它是 line-arc-line-arc-line-arc。圆弧都与它们的相邻线相切,并且它们的半径相等。我没有严格的证据,但想象一个充满空气并挤压在三角形两侧之间的二维气球。

很容易表达整体形状,因此给定半径的周长;然后很容易在数字上找到相反的方向(周长到半径)。

于 2013-04-23T16:45:43.930 回答
2

..回答我自己的评论/问题,可以证明半径必须相等,

这是一个有用的公式:

在此处输入图像描述

灰色区域 A 是

A = r^2 ( alpha - Pi + 2/tan(alpha/2) ) /2

但更有用..弧长很简单:

s = 2 ( b - A/r )

从这里可以直接看出三个半径必须彼此相等:

写出绳索长度和封闭面积:

ropelength = trianglelength  - 2  Sum[r[i]  a[i]  ]
ropearea = trianglearea -  Sum[r[i]^2  a[i] /2 ]

在哪里

 a[i]=( alpha[i] - Pi + 2/tan(alpha[i]/2) )

经过一些操作,最大化面积会导致所有 r[i] 相等。请注意,三个 a[i]、ropelength、trainglearea、trianglelength 都是不需要计算的常量。学究式地将 sub 求解r[l] = f( constants, r[2],r[3] )到第二个表达式中,并求解
d ropearea /d r[2] = 0d /d r[3] = 0结果:

r =(1/2) (triangle_length - rope_length) /(Sum(1/tan(alpha[i]/2)) - Pi)    

(a[i] 的混乱表达式仅在最后一步被替换)最后..

ropearea = trianglearea - (trianglelength-ropelength)^2/(8 Sum[a[i])
     = trianglearea - (1/2)(trianglelength-ropelength)  r

编辑——一个有用的身份..带有a,b,c,边长。

Sum(1/tan(alpha[i]/2))  = Sqrt( S^3 / ((S-a)(S-b)(S-c)) )
S = 1/2 (a+b+c)   ! S is semiperimeter not to be confused with arc length s 

然后可以使用上述表达式来重现内切圆的公式,

 rinscribed = Sqrt( ((S-a)(S-b)(S-c))  / S )
于 2013-04-24T16:15:02.187 回答