码迷,mamicode.com
首页 > 其他好文 > 详细

【RL系列】蒙特卡罗方法——Soap Bubble

时间:2018-07-21 14:26:28      阅读:132      评论:0      收藏:0      [点我收藏+]

标签:mon   开始   bsp   提高   ble   soap   蒙特卡罗   lock   坐标   

“肥皂泡”问题大致的描述如下:

用一个铁丝首尾相连组成闭合曲线,浸入肥皂泡液,拿起后,可以发现肥皂泡液以这个闭合曲线为边界形成了一个曲面。如何将这个曲面描述出来,便是肥皂泡问题的核心。

若想使得肥皂泡液形成一个稳固的曲面,肥皂泡上的每一个点所受到的合力均为0,所以这意味着该点所处的位置是周边所有点位置的均值(在这里忽略重力的影响,肥皂泡的密度量级与空气相当)。所以在计算曲面时,可以先将闭合曲线投影到x-y平面上,然后用一个点的高度(坐标z)来表示曲面上该点周边所有点位置的均值(该点位置的x,y值是不变的)。

常用的方法是迭代法,依次迭代求解投影到x-y平面上的闭合曲线包围的点的高度值。不过当计算某一个或某几个点的高度时可以使用Monte Carlo Method提高计算效率。

先来尝试一下迭代法求解,这里直接给出算法流程:

  1. 投影闭合曲线到x-y平面
  2. 从闭合曲线内的第一个点开始迭代
  3. 当前被迭代的点在x-y平面上的位置为(x, y),则高度hight,$ H(x, y) $可用该公式计算:$$ H(x, y) = \frac{1}{4}(H(x + 1, y) + H(x - 1, y) + H(x, y + 1) + H(x, y - 1)) $$
  4. 到达闭合曲线内的最后一个点,判断高度$ H $是否收敛,如未收敛继续迭代。

 

【RL系列】蒙特卡罗方法——Soap Bubble

标签:mon   开始   bsp   提高   ble   soap   蒙特卡罗   lock   坐标   

原文地址:https://www.cnblogs.com/Jinyublog/p/9346252.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!