R 隨機模擬計算定積分

2021-10-03 13:37:48 字數 2338 閱讀 7882

題目:分別用隨機投點法與平均值法計算定積分:

▲分析

x h=function(x) #被積函式h(x)

data

ggplot(data,aes(x,h(x)))+geom_area(fill="green")

inte

in_va

#給定積分區間[a,b],h(x)在該區間的最大值為c,隨機數個數為n

f=function(h,a,b,c,n)

a=0b=1

c=exp(1)

p nn

xmat

xmat[,1]

colnames(xmat)

for (i in seq(nrow(xmat)))

xmat

▲結果

referencer語言中隨機模擬的例子(問題八 計算積分問題)

▲分析

▲積分區間為[a,b]

set.seed(123) #設定隨機數種子

h=function(x) #被積分的函式h(x)

i i.true

f=function(h,a,b,n)

c p

n xmat

xmat[,1]

colnames(xmat)

for (i in seq(nrow(xmat)))

xmat

結果:

> xmat

n 積分估計值 隨機模擬誤差 95%誤差界

[1,] 1e+02 1.454480 -0.0041276735 0.271038708

[2,] 1e+03 1.449414 0.0044823251 0.085709965

[3,] 1e+04 1.458422 -0.0070815831 0.027103871

[4,] 1e+05 1.463130 0.0006053228 0.008570997

[5,] 1e+06 1.462153 -0.0002039007 0.002710387

▲積分區間為[0,1]
set.seed(111) #設定隨機數種子

h=function(x) #被積分的函式h(x)

ii i.true

f=function(n)

n xmat

xmat[,1]

colnames(xmat)

for (i in seq(nrow(xmat)))

xmat

結果:

> xmat

n 積分估計值 隨機模擬誤差 rmse mae mre 95%誤差界

[1,] 1e+02 1.428934 4.086051e-02 0.0501545105 0.0312008578 0.0236432426 0.8720956

[2,] 1e+03 1.445884 -6.023022e-03 0.0144318733 0.0121586553 0.0082699013 0.9367443

[3,] 1e+04 1.465593 1.196663e-04 0.0047539823 0.0038052839 0.0025772210 0.9483788

[4,] 1e+05 1.463676 -7.219394e-05 0.0015087275 0.0012015586 0.0008211674 0.9468650

[5,] 1e+06 1.462819 -9.094580e-04 0.0004740806 0.0003794884 0.0002596062 0.9482749

reference蒙特卡洛方法與定積分計算-鄧一碩 、r學習之蒙特卡羅積

平均值法計算定積分

include cstdio include time.h using namespace std const unsigned long maxshort 65536l const unsigned long multiplier 1194211693l const unsigned long a...

利用復合梯形公式計算定積分

function i,n fuhe f,a,b,eps if nargin 3 eps 1.0e 4 endn 1 h b a 2 i1 0 i2 subs sym f findsym sym f a subs sym f findsym sym f b h while abs i1 i2 eps ...

2 3 迭代法計算定積分

內容來自王曉華老師 這塊內容有點硬核,先做了解,主要學習如何使用迭代解決問題的步驟 兩種計算數值積分的常用演算法,分別是變步長梯形公式法和變步長辛普森公式法。首先從梯形公式入手來推導出復合梯形公式法,在實現復合梯形公式法的基礎上,再實現變步長梯形公式法。同樣,變步長辛普森公式法也是從辛普森公式入手的...