找回密码
 欢迎注册
查看: 352|回复: 28

[讨论] 单位圆内任取三个点的构成的三角形的面积是多少

[复制链接]
发表于 2026-5-3 11:59:37 | 显示全部楼层 |阅读模式

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

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

×
如题, 单位圆内任取三个点的构成的三角形的面积是多少
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2026-5-3 18:14:39 来自手机 | 显示全部楼层
可以先求固定一个点在(1,0)的情况看看,这是一个四重积分

点评

奥,我理解错了。 我以为你是把 三个动点 简化成 四重积分  发表于 2026-5-3 21:05
为啥,两个动点只有4个自由度呀?  发表于 2026-5-3 20:24
数值解 算了下,发现(1,0)的结果不太对。 是一个五重积分  发表于 2026-5-3 19:37
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2026-5-3 19:41:02 | 显示全部楼层
  1. Block[{t3 = 0}, 1/(8 Pi^2) NIntegrate[ Abs[r1 r2 Sin[t1 - t2] + r2 r3 Sin[t2 - t3]+ r1 r3 Sin[t3 - t1]] , {r1, 0, 1}, {r2, 0, 1}, {r3, 0, 1}, {t1, 0,  2 Pi}, {t2, 0, 2 Pi}]]
复制代码
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2026-5-3 20:34:06 | 显示全部楼层
三个随机点,必然有一个点离圆心最远,至于哪个点离圆心最远的概率是相同的,所以我们可以根据哪个点最远,分三种情况,而这三种情况显然面积平均值是相同的。我们先看这个最远点离圆心距离的分布是如何。由于一个点离圆心的距离密度分布同这个距离成正比,也就是对应f(r)=2r, 0<r<1, 或者说概率分布函数为\(P(x<r)=r^2\), 由此我们得到三个独立点到圆心距离都不小于r的概率为\((1-r^2)^3\), 由此得到最远点到圆心距离不超过r的概率为\(1-(1-r^2)^3=r^6-3r^4+3r^2\), 对应密度分布函数为\(6r^5-12r^3+6r\).
而如果我们能够计算得到一个点固定在(1,0), 另外两个点在单位圆内部均匀分布构成的三角形面积期望值为S, 那么三个点,离圆心最远点距离为r, 构成三角形面积期望自然为Sr^2, 于是我们在根据r的密度分布做积分可以得到最终期望为\(S\int_{r=0}^1 r^2(6r^5-12r^3+6r)dr=\frac{7S}{10}\)
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2026-5-3 20:38:29 | 显示全部楼层
本帖最后由 Jack315 于 2026-5-3 21:12 编辑

给定三角形三个顶点坐标 \(A(x_1,y_1)\),\(B(x_2,y_2)\) 和 \(C(x_3,y_3)\) 。
求向量 \(V_1(x_2-x_1,y_2-y_1)\) 和 \(V_2(x_3-x_1,y_3-y_1)\) 。
三角形面积为两向量构成的矩阵行列式的一半,行列式的符号代表的是方向。
当 \(A,B,C\) 逆时针排列时,取正号,否则取负号,所以面积再取绝对值:
\(S_{\Delta ABC}=\frac{1}{2}\abs{Det\bigg(\begin{bmatrix}x_2-x_1&x_3-x_1\\y_2-y_1&y_3-y_1\end{bmatrix}\bigg)}\)
  1. 三角形面积[{{x1_, y1_}, {x2_, y2_}, {x3_, y3_}}] := 1/2 Abs[Det[{{x2 - x1, y2 - y1}, {x3 - x1, y3 - y1}}]]
复制代码

计算单位圆内任意三点构成的三角形面积:
  1. 单位圆内均匀分布点的面积[n_] := Module[
  2.   {i, j, pt, pts, areas},
  3.   
  4.   pts = Table[0, 3];
  5.   areas = Table[0, n];
  6.   
  7.   For[i = 1, i <= n, i++,
  8.    j = 1;
  9.    While[j <= 3,
  10.     pt = {RandomReal[{-1, 1}], RandomReal[{-1, 1}]};
  11.     If[Norm[pt] <= 1, pts[[j]] = pt; j++]
  12.     ];
  13.    
  14.    areas[[i]] = {pts, 三角形面积[pts]}
  15.    ];
  16.   
  17.   areas
  18.   ]
复制代码
  1. 向径和角度均匀分布点的面积[n_] := Module[
  2.   {i, j, r, \[Theta], pts, areas},
  3.   
  4.   pts = Table[0, 3];
  5.   areas = Table[0, n];
  6.   
  7.   For[i = 1, i <= n, i++,
  8.    For[j = 1, j <= 3, j++,
  9.     {r, \[Theta]} = {RandomReal[], 2 \[Pi] RandomReal[]};
  10.     pts[[j]] = r {Cos[\[Theta]], Sin[\[Theta]]};
  11.     ];
  12.    areas[[i]] = {pts, 三角形面积[pts]}
  13.    ];
  14.   
  15.   areas
  16.   ]
复制代码

取 10000 个三角形计算面积:
  1. s = 单位圆内均匀分布点的面积[10000];
复制代码

或者:
  1. s = 向径和角度均匀分布点的面积[10000];
复制代码

作单位圆内点的散点图
  1. points = Table[s[[i, 1, 1]], {i, Length[s]}];
  2. points = Join[points, Table[s[[i, 1, 2]], {i, Length[s]}]];
  3. points = Join[points, Table[s[[i, 1, 3]], {i, Length[s]}]];
  4. ListPlot[points, AspectRatio -> 1]
复制代码

单位圆内三角形面积统计数据和直方图:
  1. y = Table[s[[i, 2]], {i, Length[s]}];
  2. {Min[y], Max[y], Mean[y], Median[y]}
  3. Histogram[y, 50]
复制代码

点评

答案是0.1444吧  发表于 2026-5-3 21:26
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2026-5-3 22:11:53 | 显示全部楼层
本帖最后由 Jack315 于 2026-5-3 22:50 编辑

不知道是不是 LZ 要的答案……这是代码运行的结果。

三角形面积统计数据,样本数 1 万:
\(\begin{array}{|l|l|l|}
\hline \text{}&\text{最小值}&\text{最大值}&\text{平均值}&\text{中位数}\\
\hline \text{单位圆内均匀分布的点}&0.0000611338&1.21006&0.231536&0.177752\\
\hline \text{向径和角度均匀分布的点}&9.11999*10^{-6}&1.06675&0.145321&0.100546\\
\hline \end{array} \)

三角形面积统计数据,样本数 10 万:
\(\begin{array}{|l|l|l|}
\hline \text{}&\text{最小值}&\text{最大值}&\text{平均值}&\text{中位数}\\
\hline \text{单位圆内均匀分布的点}&4.18359*10^{-6}&1.22885&0.230448&0.175634\\
\hline \text{向径和角度均匀分布的点}&2.90381*10^{-6}&1.27815&0.143482&0.0983147\\
\hline \end{array} \)

点分布图和三角形面积直方图:

【单位圆内均匀分布的点】
单位圆内均匀分布点.png 单位圆内均匀分布点的面积直方图.png

【向径和角度均匀分布的点】
向径和角度均匀分布点.png 向径和角度均匀分布的点的面积直方图.png

点评

我的数值方法得到的答案是 0.145321 ,精度差点。  发表于 2026-5-3 22:34
不确定是否 能得到闭式表达  发表于 2026-5-3 22:18
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2026-5-3 22:16:46 | 显示全部楼层
我的两种代码,数值解都是0.14444
  1. Block[{t3 = 0},  NExpectation[1/2 Abs[r1 r2 Sin[t1 - t2] + r1 r3 Sin[t3 - t1] +  r2 r3 Sin[t2 - t3]], {r1 \[Distributed] UniformDistribution[],
  2.    r2 \[Distributed] UniformDistribution[],
  3.    r3 \[Distributed] UniformDistribution[],
  4.    t1 \[Distributed] UniformDistribution[{0, 2 Pi}],
  5.    t2 \[Distributed] UniformDistribution[{0, 2 Pi}]}]]
复制代码


  1. Block[{t3 = 0},  1/(4 Pi^2) NIntegrate[ 1/2 Abs[r1 r2 Sin[t1 - t2] + r1 r3 Sin[t3 - t1] +  r2 r3 Sin[t2 - t3]], {r1, 0, 1}, {r2, 0, 1}, {r3, 0, 1}, {t1, 0,2 Pi}, {t2, 0, 2 Pi}]]
复制代码

毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2026-5-4 10:46:17 | 显示全部楼层
【MonteCarlo 仿真】

求三角形面积的仿真函数:
  1. sTriangle[{a1_, a2_, a3_}, {r1_, r2_, r3_}] := Module[
  2.   {x1, y1, x2, y2, x3, y3},
  3.   
  4.   {x1, y1} = r1 {Cos[a1], Sin[a1]};
  5.   {x2, y2} = r2 {Cos[a2], Sin[a2]};
  6.   {x3, y3} = r3 {Cos[a3], Sin[a3]};
  7.   
  8.   1/2 Abs[Det[{{x2 - x1, y2 - y1}, {x3 - x1, y3 - y1}}]]
  9.   ]
复制代码

获取仿真数据:
  1. data = Block[{a1, a2, a3, arng, r1, r2, r3, rrng},
  2.    arng = {0, 2 \[Pi]}; rrng = {0, 1};
  3.    Table[
  4.     NExpectation[
  5.      sTriangle[{a1, a2, a3}, {r1, r2, r3}],
  6.       {a1 \[Distributed] UniformDistribution[arng],
  7.       a2 \[Distributed] UniformDistribution[arng],
  8.       a3 \[Distributed] UniformDistribution[arng],
  9.       r1 \[Distributed] UniformDistribution[rrng],
  10.       r2 \[Distributed] UniformDistribution[rrng],
  11.       r3 \[Distributed] UniformDistribution[rrng]},
  12.      Method -> "MonteCarlo"],
  13.     1000](*运算 1000 次仿真*)
  14.    ];
复制代码

拟合分布:
  1. \[ScriptCapitalH] = DistributionFitTest[data, Automatic, "HypothesisTestData"]
复制代码

获取正态分布参数:
  1. FindDistributionParameters[data, NormalDistribution[\[Mu], \[Sigma]]]
复制代码

\(\mu=0.144431\),\(\sigma=0.000144488\)

画直方图:
  1. Show[
  2. Histogram[data, Automatic, "ProbabilityDensity"],
  3. Plot[PDF[\[ScriptCapitalH]["FittedDistribution"], x], {x, 0.143, 0.145},
  4. PlotStyle -> {Red, Thick}]]
复制代码

面积期望值分布.png

单位圆内任意三角形面积的期望值估计为 0.144431。

评分

参与人数 1威望 +6 金币 +6 贡献 +6 经验 +6 鲜花 +6 收起 理由
wayne + 6 + 6 + 6 + 6 + 6

查看全部评分

毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2026-5-4 12:20:30 | 显示全部楼层
https://mathworld.wolfram.com/DiskTrianglePicking.html
怎么和你们的结果不匹配?

点评

看到你6楼的模拟结果应该是对的  发表于 2026-5-4 12:42
通常不特别说明,就是应该指各点在圆内部均匀分布  发表于 2026-5-4 12:41
很可能是单位圆内点分布的差异所导致。  发表于 2026-5-4 12:36

评分

参与人数 1威望 +6 金币 +6 贡献 +6 经验 +6 鲜花 +6 收起 理由
wayne + 6 + 6 + 6 + 6 + 6 赞一个!

查看全部评分

毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2026-5-4 12:47:01 | 显示全部楼层


是我们对圆内的均匀采点的处理方式错了。https://mathworld.wolfram.com/DiskPointPicking.html,  单位圆内随机一个点,应该是基于面积的均匀,随机点的坐标是$ (\sqrt{r} cos\theta,\sqrt{r} sin\theta)$, 而不是$(r cos\theta,r sin\theta)$, 其中,$r\in U(0,1),\theta\in U(0,2\pi) $
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

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

GMT+8, 2026-5-14 00:58 , Processed in 0.030251 second(s), 21 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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