wayne 发表于 2026-5-3 11:59:37

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

如题, 单位圆内任取三个点的构成的三角形的面积是多少

mathe 发表于 2026-5-3 18:14:39

可以先求固定一个点在(1,0)的情况看看,这是一个四重积分

wayne 发表于 2026-5-3 19:41:02

Block[{t3 = 0}, 1/(8 Pi^2) NIntegrate[ Abs + r2 r3 Sin+ r1 r3 Sin] , {r1, 0, 1}, {r2, 0, 1}, {r3, 0, 1}, {t1, 0,2 Pi}, {t2, 0, 2 Pi}]]

mathe 发表于 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}\)

Jack315 发表于 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)}\)
三角形面积[{{x1_, y1_}, {x2_, y2_}, {x3_, y3_}}] := 1/2 Abs]
计算单位圆内任意三点构成的三角形面积:
单位圆内均匀分布点的面积 := Module[
{i, j, pt, pts, areas},

pts = Table;
areas = Table;

For[i = 1, i <= n, i++,
   j = 1;
   While[j <= 3,
    pt = {RandomReal[{-1, 1}], RandomReal[{-1, 1}]};
    If <= 1, pts[] = pt; j++]
    ];
   
   areas[] = {pts, 三角形面积}
   ];

areas
]
向径和角度均匀分布点的面积 := Module[
{i, j, r, \, pts, areas},

pts = Table;
areas = Table;

For[i = 1, i <= n, i++,
   For[j = 1, j <= 3, j++,
    {r, \} = {RandomReal[], 2 \ RandomReal[]};
    pts[] = r {Cos[\], Sin[\]};
    ];
   areas[] = {pts, 三角形面积}
   ];

areas
]
取 10000 个三角形计算面积:
s = 单位圆内均匀分布点的面积;
或者:
s = 向径和角度均匀分布点的面积;
作单位圆内点的散点图
points = Table], {i, Length}];
points = Join], {i, Length}]];
points = Join], {i, Length}]];
ListPlot
单位圆内三角形面积统计数据和直方图:
y = Table], {i, Length}];
{Min, Max, Mean, Median}
Histogram

Jack315 发表于 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} \)

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

【单位圆内均匀分布的点】


【向径和角度均匀分布的点】

wayne 发表于 2026-5-3 22:16:46

我的两种代码,数值解都是0.14444
Block[{t3 = 0},NExpectation + r1 r3 Sin +r2 r3 Sin], {r1 \ UniformDistribution[],
   r2 \ UniformDistribution[],
   r3 \ UniformDistribution[],
   t1 \ UniformDistribution[{0, 2 Pi}],
   t2 \ UniformDistribution[{0, 2 Pi}]}]]


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

Jack315 发表于 2026-5-4 10:46:17

【MonteCarlo 仿真】

求三角形面积的仿真函数:
sTriangle[{a1_, a2_, a3_}, {r1_, r2_, r3_}] := Module[
{x1, y1, x2, y2, x3, y3},

{x1, y1} = r1 {Cos, Sin};
{x2, y2} = r2 {Cos, Sin};
{x3, y3} = r3 {Cos, Sin};

1/2 Abs]
]
获取仿真数据:
data = Block[{a1, a2, a3, arng, r1, r2, r3, rrng},
   arng = {0, 2 \}; rrng = {0, 1};
   Table[
    NExpectation[
   sTriangle[{a1, a2, a3}, {r1, r2, r3}],
      {a1 \ UniformDistribution,
      a2 \ UniformDistribution,
      a3 \ UniformDistribution,
      r1 \ UniformDistribution,
      r2 \ UniformDistribution,
      r3 \ UniformDistribution},
   Method -> "MonteCarlo"],
    1000](*运算 1000 次仿真*)
   ];
拟合分布:
\ = DistributionFitTest
获取正态分布参数:
FindDistributionParameters, \]]
\(\mu=0.144431\),\(\sigma=0.000144488\)

画直方图:
Show[
Histogram,
Plot["FittedDistribution"], x], {x, 0.143, 0.145},
PlotStyle -> {Red, Thick}]]


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

mathe 发表于 2026-5-4 12:20:30

https://mathworld.wolfram.com/DiskTrianglePicking.html
怎么和你们的结果不匹配?

wayne 发表于 2026-5-4 12:47:01

mathe 发表于 2026-5-4 12:20
https://mathworld.wolfram.com/DiskTrianglePicking.html
怎么和你们的结果不匹配?

是我们对圆内的均匀采点的处理方式错了。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) $
页: [1] 2
查看完整版本: 单位圆内任取三个点的构成的三角形的面积是多少