Wolfram 语言

概率和统计延伸

从区域采集点样本

RandomPoint 均匀采集分布在给定区域的伪随机点样本.

In[1]:=
Click for copyable input
Graphics[{Polygon[CirclePoints[5]], White, Point[RandomPoint[Polygon[CirclePoints[5]], 200]]}, ImageSize -> Medium]
Out[1]=

在一个利萨茹(Lissajous)区域采集样本点.

In[2]:=
Click for copyable input
\[ScriptCapitalR] = ImplicitRegion[-1 + (-1 + 18 x^2 - 48 x^4 + 32 x^6)^2 + (-1 + 18 y^2 - 48 y^4 + 32 y^6)^2 <= 0, {x, y}];
In[3]:=
Click for copyable input
Graphics[{PointSize[Tiny], Point[RandomPoint[\[ScriptCapitalR], 10^4]]}, ImageSize -> Medium]
Out[3]=

Text 图元中的采集样本点.

In[4]:=
Click for copyable input
mr = DiscretizeGraphics[Text[Style["\[CapitalSigma]", Bold]], _Text, MaxCellMeasure -> 0.1];
In[5]:=
Click for copyable input
Graphics[{PointSize[Tiny], Point[RandomPoint[mr, 10000]]}, ImageSize -> Medium]
Out[5]=

使用蒙特卡洛方法近似一个积分域在一个参数区域的积分.

In[6]:=
Click for copyable input
region = ParametricRegion[{{s, s t}, s^2 + t^2 <= 1}, {s, t}];
显示完整的 Wolfram 语言输入
In[7]:=
Click for copyable input
RegionPlot[region, ImageSize -> Medium, PlotTheme -> "Detailed", PlotLegends -> None]
Out[7]=

函数在该区域上积分.

In[8]:=
Click for copyable input
f[{x_, y_}] := x^3 - 2 x^2 y + 4 x^6 - y^5; val = NIntegrate[f[{x, y}], {x, y} \[Element] region]
Out[8]=

可视化在样本大小增加时,蒙特卡洛统计的收敛.

显示完整的 Wolfram 语言输入
In[9]:=
Click for copyable input
ListLogLogPlot[ Transpose[{2^Range[20], ParallelTable[ RegionMeasure[region] Mean[f /@ RandomPoint[region, 2^n]], {n, 1, 20}]}], PlotRange -> All, PlotTheme -> "Detailed", ImageSize -> Medium, Joined -> True, Filling -> val]
Out[9]=

相关范例

de en es fr ja ko pt-br ru