bin/spark-submit \
--class org.apache.spark.examples.sparkpi \
--master yarn \
--deploy-mode cluster \
--driver-memory 6g\
--executor-memory 8g \
--executor-cores 4 \
--num-executor 10 \
./examples/jars/spark-examples_2.11-2.1.1.jar 100
上面最後乙個數字100為隨機投點次數,我們會發現,如果這個數字越大,那麼計算出pi的結果越準確,那麼內部到底是怎樣原理。
** 2. 蒙特卡洛演算法**
蒙特卡洛演算法主要理論是:在乙個正方形中,以正方形中心畫乙個圓,然後向此正方形中隨機投點,計算落在圓內的概率,然後根據公式計算出π的值。
例如:a.乙個邊長為2的正方形,那麼它的面積s1=4 ,在此正方形內畫乙個圓,那麼這個圓的半徑r=1,圓的面積s2=πr²=π
b.此時開始隨機投點,例如總投點數為sum,落在圓內的點數為count,那麼可以認為圓的面積佔正方形的面積比例為:v=count/sum
c.由此得知,正方形s1=4,圓形s2=π,圓形面積佔正方形比例為v,s1與v的值都是乙個常量,那麼可以得出s2=s1v;那麼s2的面積就可以求出來了,進而就得出了π的值。
val conf: sparkconf = new sparkconf(
"getpi"
).setmaster(
"local[*]"
) val sc = new sparkcontext(conf)
//n總投點數
val sum = int.maxvalue
//count為落在圓內的點數
val count = sc.parallelize(1 until sum).map .reduce(_ + _)
println(s"π的值是: $"
) sc.stop(
)
原始碼路徑: 蒙特卡洛演算法
從今天開始要研究sampling methods,主要是mcmc演算法 contents 1.蒙特卡洛介紹 2.蒙特卡洛的應用 3.蒙特卡洛積分 1.蒙特卡洛介紹 蒙特卡羅方法 monte carlo method 也稱統計模擬方法,是二十世紀四十年代中期由於科學技術的 發展和電子計算機的發明,而被...
蒙特卡洛演算法
問題描述 在數值積分法中,利用求單位圓的1 4的面積來求得pi 4從而得到pi。單位圓的1 4面積是乙個扇形,它是邊長為1單位正方形的一部分。只要能求出扇形面積s1在正方形面積s中佔的比例k s1 s就立即能得到s1,從而得到pi的值。怎樣求出扇形面積在正方形面積中佔的比例k呢?乙個辦法是在正方形中...
python蒙特卡洛求定積分 蒙特卡洛定積分(一)
一 蒙特卡洛模擬法分類 蒙特卡洛法模擬法從其應用方面來劃分,可以分成以下三種形式 1 直接蒙特卡洛模擬。採用隨機數學咧來模擬複雜隨機過程的效應。2 蒙特卡洛定積分 間接蒙特卡洛模擬 利用隨機數序列計算積分的方法。積分維數越高,該方法的積分效率就越高。3 metropolis蒙特卡洛模擬。以 馬爾可夫...