找回密码
 欢迎注册
楼主: wayne

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

[复制链接]
发表于 2026-5-4 13:47:24 | 显示全部楼层
修改 8# 中获取仿真数据代码:
  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}, {Sqrt[r1], Sqrt[r2], Sqrt[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.    ];
复制代码

结果为:\(\mu=0.232106\) 、\(\sigma=0.000198953\) 。
单位圆内任意三角形面积的期望值估计为 0.232106。

点评

$\frac{35}{48\pi}=0.232100...$  发表于 2026-5-4 15:10
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2026-5-4 15:51:50 | 显示全部楼层
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2026-5-4 16:05:19 | 显示全部楼层
从单位面积的正m边形内部独立、随机地选出三个点,则三点形成的三角形的面积的期望有以下公式[Alikoski,1939]
a1262f29gy1hsnxkndz01j20p00e2t91.jpg

评分

参与人数 1鲜花 +6 收起 理由
wayne + 6

查看全部评分

毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2026-5-4 16:35:18 | 显示全部楼层
majer 发表于 2026-5-4 16:05
从单位面积的正m边形内部独立、随机地选出三个点,则三点形成的三角形的面积的期望有以下公式[Alikoski,193 ...

\(\lim_{m \to \infty} \frac{9\cos^2\omega+52\cos\omega+44}{36m^2\sin^2\omega}=\frac{35}{48\pi^2}\)
乘上单位圆面积 \(\pi\) 得 \(\frac{35}{48\pi}\)

评分

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

查看全部评分

毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
回复 支持 2 反对 0

使用道具 举报

发表于 7 天前 | 显示全部楼层
快一些的蒙特卡洛方法:
  1. n=10^7;
  2. 0.5 Abs[(#1-#3)(#4-#6)-(#2-#4)(#3-#5)]&@@Transpose[ArrayReshape[RandomPoint[Disk[],{n,3}],{n,6}]]//Mean//AbsoluteTiming
复制代码
0.23215

耗时1秒左右

评分

参与人数 1威望 +2 金币 +2 贡献 +2 经验 +2 鲜花 +2 收起 理由
Jack315 + 2 + 2 + 2 + 2 + 2 很给力!

查看全部评分

毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 7 天前 | 显示全部楼层
majer 发表于 2026-5-4 16:05
从单位面积的正m边形内部独立、随机地选出三个点,则三点形成的三角形的面积的期望有以下公式[Alikoski,193 ...

学习学习!!!

\(\D\lim_{m\to\infty}\frac{9\cos^2(2\pi/m)+52\cos(2\pi/m)+44}{36m^2\sin^2(2\pi/m)}=\lim_{m\to\infty}\frac{9*1^2+52*1+44}{36m^2(2\pi/m)^2}=\frac{9+52+44}{36(2\pi)^2}=\frac{105}{144\pi^2}=\frac{35}{48\pi^2}\)
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 5 天前 | 显示全部楼层
我们有
单位圆内任取3个点构成三角形面积=0.232
可以往前走吗???
单位圆内任取4个点构成凸包的面积=0.296
单位圆内任取5个点构成凸包的面积=0.338——???
单位圆内任取6个点构成凸包的面积=0.369——???
单位圆内任取7个点构成凸包的面积=0.393——???
单位圆内任取8个点构成凸包的面积=0.413——???
单位圆内任取9个点构成凸包的面积= ?? ——???

单位圆内任取无限多个点构成凸包面积=1.0——???
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 4 天前 | 显示全部楼层
各位!这代码错在那里??谢谢各位!!!

{{3, 0.225045}, {4, 0.462183}, {5, 0.66083}, {6, 0.826997}, {7, 0.97415}, {8, 1.09881}, {9, 1.22222}, {10, 1.3246}, {11, 1.3999}, {12, 1.49023}, {13, 1.54949}, {14, 1.61062}, {15, 1.65932},
{16, 1.71313}, {17, 1.76778}, {18, 1.80131}, {19, 1.83594}, {20, 1.87825}, {21, 1.92483}, {22, 1.94676}, {23, 1.97752}, {24, 2.00061}, {25, 2.03386}, {26, 2.05089}, {27, 2.08}, {28, 2.10234}}
generatePoint[n_] := RandomPoint[Disk[], n]; hullPolygon[pts_] := MeshPrimitives[ConvexHullMesh[pts], 2][[1]]; hullArea[pts_] := Area[hullPolygon[pts]];
expectedArea[n_, samples_ : 2000] := Mean[Table[hullArea[generatePoint[n]], {samples}]]; Table[{n, expectedArea[n, 2000]}, {n, 3, 28}]
提速一下。——代码没变。
generatePoint[n_] := RandomPoint[Disk[], n]; hullPolygon[pts_] := MeshPrimitives[ConvexHullMesh[pts], 2][[1]]; hullArea[pts_] := Area[hullPolygon[pts]];
expectedArea[n_, samples_ : 500] := Mean[Table[hullArea[generatePoint[n]], {samples}]]; Table[{3^n, expectedArea[3^n, 500]}, {n, 12}]
{{3, 0.220445}, {9, 1.22915}, {27, 2.07739}, {81, 2.60394}, {243, 2.87862}, {729, 3.0119}, {2187, 3.07887}, {6561, 3.11126}, {19683, 3.12706}, {59049, 3.13456}, {177147, 3.13821}, {531441, 3.13997}}
特别地,n=1000000。——代码没变。
generatePoint[n_] := RandomPoint[Disk[], n]; hullPolygon[pts_] := MeshPrimitives[ConvexHullMesh[pts], 2][[1]]; hullArea[pts_] := Area[hullPolygon[pts]];
expectedArea[n_, samples_ : 100] := Mean[Table[hullArea[generatePoint[n]], {samples}]]; Table[{n, expectedArea[n, 100]}, {n, 1000000, 1000000}]
{{1000000, 3.14052}}

(*1. 生成圆内均匀随机点*)generatePoint[n_] := RandomPoint[Disk[], n];
(*2. 获取凸包多边形*)hullPolygon[pts_] := MeshPrimitives[ConvexHullMesh[pts], 2][[1]];
(*3. 计算凸包面积*)hullArea[pts_] := Area[hullPolygon[pts]];
(*4. 蒙特卡洛期望*)expectedArea[n_, samples_ : 2000] := Mean[Table[hullArea[generatePoint[n]], {samples}]];
(*5. 计算 n=3 到 28,全部模拟*)Table[{n, expectedArea[n, 2000]}, {n, 3, 28}]

DeepSeek——说上面的代码是错的。下面的代码才是正确的——会出来正确数据。——我这个Mathematica12.1不能用。——我就想看看这些数据!谢谢各位!!谢谢!!!
python
  1. import numpy as np
  2. from scipy.spatial import ConvexHull
  3. def expected_area(n, samples=200000):
  4.     total = 0.0
  5.     for _ in range(samples):
  6.         # 单位圆内均匀取点
  7.         theta = np.random.uniform(0, 2*np.pi, n)
  8.         r = np.sqrt(np.random.uniform(0, 1, n))
  9.         pts = np.column_stack([r*np.cos(theta), r*np.sin(theta)])
  10.         if n == 3:
  11.             area = 0.5 * abs(np.cross(pts[1]-pts[0], pts[2]-pts[0]))
  12.         else:
  13.             hull = ConvexHull(pts)
  14.             area = hull.volume  # 在2D中volume指面积
  15.         total += area
  16.     return total / samples
  17. for n in range(3, 11):
  18.     print(f"n={n}: {expected_area(n):.4f}")
复制代码
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 前天 16:04 | 显示全部楼层
单位圆内任取4个点构成的面积=0.296——来点资料——我的搜索功能不行——谢谢各位!!!!
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

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

GMT+8, 2026-5-13 12:02 , Processed in 0.027113 second(s), 19 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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