1. 程式人生 > >MATLAB數學建模(6)-蒙特卡洛演算法

MATLAB數學建模(6)-蒙特卡洛演算法

蒙特卡洛演算法是基於概率論的一種計算方法,有些問題直接求解較為困難,但是利用類似做實驗的方法去試探,利用隨機數或”偽隨機數”進行計算的話,問題會變得比較簡單.
1.計算定積分

當然,這個問題比較簡單,用蒙特卡洛方法怎麼做呢?

function result = MentekaluoDingjifen(a,b,m,mm)
%a是積分下限
%b是積分上限
%m是函式的上界
%mm是隨機試驗次數
frq = 0;
xrangnum = unifrnd(a,b,1,mm);
yrangnum = unifrnd(0,m,1,mm);
for ii = 1:mm
    if (cos(xrangnum(1
,ii)) + 2) >= yrangnum(1,ii) frq = frq + 1; end end result = frq*m*(b-a)/mm

看看結果:

>> MentekaluoDingjifen(0,4,4,100000)

result =

    7.2394


ans =

    7.2394

100000次模擬之後,結果與精確解7.2432很接近.

2.計算π的值。

function pijisuan = pi(mm)
frq = 0;
xrandnum = unifrnd(0,1,1,mm);
yrandnum = unifrnd(0
,1,1,mm); for ii = 1:mm if (xrandnum(1,ii)^2 + yrandnum(1,ii)^2 <= 1) frq = frq + 1; end end pijisuan = 4*frq/mm

看看效果:

>> pi(100000)
pijisuan =

    3.1370


ans =

    3.1370

相關推薦

MATLAB數學建模(6)-蒙特卡洛演算法

蒙特卡洛演算法是基於概率論的一種計算方法,有些問題直接求解較為困難,但是利用類似做實驗的方法去試探,利用隨機數或”偽隨機數”進行計算的話,問題會變得比較簡單. 1.計算定積分 當然,這個問題比較簡單,用蒙特卡洛方法怎麼做呢? function resu

Matlab數學建模(五):優化模型之標準模型

一、學習目標 (1)瞭解最優化模型。 (2)掌握線性規劃的優化求解。 (3)掌握整數規劃的優化求解。 (4)瞭解Matlab的圖形化應用。 二、例項演練      1、談談你對最優化模型的瞭解。         最優化模型是數學建模大賽中最常見的問題型別之一。一

Matlab 數學建模 方法(四): 機器學習

1. MATLAB機器學習概況 機器學習 ( Machine Learning ) 是一門多領域交叉學科,它涉及到概率論、統計學、電腦科學以及軟體工程。 機器學習是指一套工具或方法,憑藉這套工具和方法,利用歷史資料對機器進行“訓練”進而“學習”到某種模式或規律,並建立預測

BP神經網路演算法原理推導(數學建模進階演算法/機器學習)

       BP神經網路(Back-Propagation Network)演算法原理推導 簡介        反向傳播網路(Back-Propagation Network)簡稱BP網路,基於誤差反向傳播演算法(BP演算法)的一種多層網路。      

Matlab數學建模(六):全域性優化

1、學習目標 (1)以著名的旅行商問題為例,掌握如何使用遺傳演算法。 (2)以經典的Peaks 問題為例,掌握如何使用模擬退火演算法。 2、例項演練 1、旅行商問題。       旅行商問題是城市數量有限,且城市間旅行成本已知的優化問題。我們的目標是為銷售人員找到一

Matlab數學建模學習報告(一)

一、學習目標。 (1)瞭解Matlab與數學建模競賽的關係。 (2)掌握Matlab數學建模的第一個小例項—評估股票價值與風險。 (3)掌握Matlab數學建模的迴歸演算法。 二、例項演練。    1、談談你對Matlab與數學建模競賽的瞭解。         M

數學建模程式與演算法之整數線性規劃

定義 在線性規劃模型中,規劃中的變數限制為整數時稱為整數線性規劃。 變數全部限制為整數,稱為(完全)整數線性規劃 變數部分限制為整數,稱為混合整數線性規劃

給你一個演算法應該怎麼寫程式(數學建模 matlab)

本文寫作初衷:有個可愛的學妹問我在看到一個演算法程式設計時的步驟是什麼,然而作為偽大神的我,感覺並不知道怎麼回答,感覺我程式設計就倆字死磕,錯了咋辦?再來一遍!不行咋辦?換個寫法試試!還不行?百度

數學建模(14)——MATLAB實現最小生成樹(Prim與Kruskal演算法

Prim演算法 連通賦權圖如上 鄰接矩陣如下 0 50 60 0 0 0 0 0 0 0 65 4

數學建模演算法 一 簡述(1)蒙特卡洛演算法

蒙特卡羅方法概述 蒙特卡羅方法又稱統計模擬法、隨機抽樣技術,是一種隨機模擬方法,以概率和統計理論方法為基礎的一種計算方法,是使用隨機數(或更常見的偽隨機數)來解決很多計算問題的方法。將所求解的問題同一定的概率模型相聯絡,用電子計算機實現統計模擬或抽樣,以獲得問

【轉】MATLAB實現構造Euler環遊圖的演算法——數學建模

   我們專業課(數學建模)講的東西由七橋堡問題而來的Euler環遊。    如下圖,要將其變為Euler環遊圖。 %首先給出一個矩陣(相鄰表示1,不相鄰表示0),用來表示圖1。 v =      0     1     0     0     0     0     0     1    

數學建模--matlab基礎知識

ssa env 管理 更換 ceil recent font 必須 ray 雖然python也能做數據分析,不過參加數學建模,咱還是用專業的 1. Matlab-入門篇:Hello world! 程序員入門第一式: disp(‘hello world!’) 2. 基本

[數學建模(六)]使用MATLAB實現插值

數值 font 多項式 not new pie 插值法 包含 data 常用的插值:拉格朗日多項式插值、牛頓插值、分段線性插值、Hermite 插值和三次樣條插值。 1.拉格朗日插值法 function y=lagrange(x0,y0,x); n=length(x0)

[數學建模(八)]使用MATLAB繪圖1

基本 barh 分享 com 自定義 subplot mes 1.2 img 目錄 1..二維圖 1.1 基本畫圖功能 1.2 plot參數說明 :線條類型,點類型,顏色 1.3 坐標軸定標和圖形說明 1.4 子圖 :subplot 1.5 其他類型的二維圖

MATLAB數學建模中的應用(三)

dash 以及 cxf 原始的 計算 而後 輸入輸出變量 tran fcm optimset函數 功能:創建或編輯優化選項參數結構。 語法: 1 options = optimset(‘param1’,value1,’para

MATLAB數學建模中的應用

整數規劃 ... .net 6.4 2.4 down 課本 sdn 曲線 接下來的三周都會研讀《MATLAB在數學建模中的應用》這本書,在此把敲過的課本習題代碼,以及更詳細的代碼註釋Po出。 插值與擬合 1)指定函數的擬合 1

數學建模入門之MATLAB實現人口預測

人口問題是我國最大社會問題之一,估計人口數量和發展趨勢是我們制定一系列相關政策的基礎。從人口統計年鑑,可查我國從1990年至2010年人口資料資料如下,試根據表中資料,分析人口增長的規律,並以此預測2011年和2012年的人口數量,然後與實際人口數量做對比,評價模型的優劣,並對我國人口政策提出建

數學建模 of python(用遺傳演算法解決TSP問題)

吉吉: 在這個問題中,我們的個體就是一條一條的路線了,其目的就是找到一條總距離最短的路線。基本步驟與前兩篇文章基本類似,不過在本問題中,我們用城市路線中每個城市的經緯度來表示個體(城市路線)的DNA。 在產生後代的過程中,需要注意的是,因為我們的個體是路線,所以不能將兩個

數學建模:圖論模型-Floyd演算法

緊接著來介紹一下圖論模型的另一種演算法——Floyd演算法,然後介紹其在MATLAB中的實現方法: Floyd演算法:Floyd演算法是一個經典的動態規劃演算法。用通俗的語言來描述的話,首先我們的目標是尋找從點i到點j的最短 路徑。從動態規劃的角度看問題,我們需要為這個目標重新做一個詮釋(這個詮

數學建模:圖論模型-Dijkstra演算法

下面來介紹一下圖論模型中的Dijkstra演算法的基本原理和在MATLAB中的建模模擬; 圖論模型-Dijkstra演算法:Dijkstra演算法能求一個頂點到另一頂點最短路徑。它是由Dijkstra於1959年提出的。實際它能出始點到 其它所有頂點的最短路徑。Dijkstra演算法是一種標號法