24
ه سازی مونت کارلومک شبیه انتگرال به ک محاسب مدرس: آرمان ریبدی آماری دکتر دانشجویشگاه بیرجند دان1 مکه انتگرال به ک محاسبه سازی مونت شبی کارلوfaradars.org/fvst9407 ﻓﺮادرسFaraDars.org

آموزش محاسبه انتگرال به کمک شبیه سازی مونت کارلو

Embed Size (px)

Citation preview

Page 1: آموزش محاسبه انتگرال به کمک شبیه سازی مونت کارلو

محاسبه انتگرال به کمک شبیه سازی مونت کارلو

:مدرس

آرمان ری بددانشجویی دکتری آمار

دانشگاه بیرجند

1

محاسبه انتگرال به کمک کارلوشبیه سازی مونت

faradars.org/fvst9407

فرادرس

FaraDars.org

Page 2: آموزش محاسبه انتگرال به کمک شبیه سازی مونت کارلو

روش های محاسبه انتگرال

روش تحلیلی•براساس قواعد انتگرال گیری–

روش هندسی•براساس تقریب سطح زیر منحنی–

روش ذوزنقه ای•روش نیوتون راپسون••...

روش شبیه سازی•مونت کارلو–زنجیره مارکوف مونت کارلو ––...

2

محاسبه انتگرال به کمک کارلوشبیه سازی مونت

faradars.org/fvst9407

فرادرس

FaraDars.org

Page 3: آموزش محاسبه انتگرال به کمک شبیه سازی مونت کارلو

a b

روش تحلیلی

(قواعد انتگرال)محاسبه انتگرال معین با توجه به مفهوم حد جمع •

3

n

abx,dx)x(fx)x(f

b

a

n

i

i

nlim

1

f(xi)

x

محاسبه انتگرال به کمک کارلوشبیه سازی مونت

faradars.org/fvst9407

فرادرس

FaraDars.org

Page 4: آموزش محاسبه انتگرال به کمک شبیه سازی مونت کارلو

روش هندسی

میانینقطهروش•

4

121021

1

n,...,,,k,/]x)k(a,xka[c

,n

abx,dx)x(fx)c(f

i

n

i

i

a b

محاسبه انتگرال به کمک کارلوشبیه سازی مونت

faradars.org/fvst9407

فرادرس

FaraDars.org

Page 5: آموزش محاسبه انتگرال به کمک شبیه سازی مونت کارلو

شبیه سازی

.می شودمشخصاحتمالبراساسمقادیرشکهمتغیری:تصادفیمتغیر•

.می افتنداتفاقمثبتاحتمالباکهتصادفیمتغیرمقادیرمجموعه:تصادفیمتغیرگاهتکیه•

.می کندمشخصرااحتمالتصادفیمتغیرمقدارهربرایکهاحتمالیتابع:تصادفیمتغیرتوزیع•

تصادفیمتغیرتوزیعبراساساعدادتولید:خاصتوزیعیکبراساستصادفیاعدادسازیشبیه•

5

محاسبه انتگرال به کمک کارلوشبیه سازی مونت

faradars.org/fvst9407

فرادرس

FaraDars.org

Page 6: آموزش محاسبه انتگرال به کمک شبیه سازی مونت کارلو

شبیه سازی مونت کارلو

عادیسازیشبیهباکارلومونتسازیشبیهتفاوت•

توزیعازاعدادیتولید:سکهیکبرایخطیاشیرسازیشبیه:دلخواهتوزیعبراساستصادفیاعدادتولید:سازیشبیه–

.می گیریمنظردرخطاینصورتغیردروشیرراپرتابنتیجهباشد،0.5ازبیشمقداراگر.U(0,1)یکنواخت

ویرهاشتعدادشمارش.است½بابرابرهاپرتابکلبهشیرهانسبتاست؟اریبنابحثموردسکهآیا:کارلومونتروش–

سازیشبیهتوسطتولیدیهایخط

مقادیرازیبعضردو(شیرهاتعداد)مقادیرازبعضیقبول-تصادفیاعدادتولید(کارلومونتروشبهسازیشبیه)ترکیب–

سکهنارایبیتعیین.شدهتولیداعدادکلبهشیرهاتعدادنسبتمحاسبه.(هاخط)

6

محاسبه انتگرال به کمک کارلوشبیه سازی مونت

faradars.org/fvst9407

فرادرس

FaraDars.org

Page 7: آموزش محاسبه انتگرال به کمک شبیه سازی مونت کارلو

روش شبیه سازی

Monte-کارلومونت• Carlo

پیعددمحاسبه–

rتا0بیندرتصادفیاعدادایجاد–

(مساحت)دایرهقطاعدروناعدادیتعداد–

(مربعمساحت)نقاطکلبهقطاعدروننقاطتعدادنسبت–

7

2

2

44 r

A,

rA

r

A

r2

محاسبه انتگرال به کمک کارلوشبیه سازی مونت

faradars.org/fvst9407

فرادرس

FaraDars.org

Page 8: آموزش محاسبه انتگرال به کمک شبیه سازی مونت کارلو

روش مونت کارلو

rتا0فاصلهدرتصادفیاعدادایجاد•

شدهایجاداعدادردوقبول•

نظرموردمحاسبهانجام•

8

222 ryx

dotstotal

circleindots

محاسبه انتگرال به کمک کارلوشبیه سازی مونت

faradars.org/fvst9407

فرادرس

FaraDars.org

Page 9: آموزش محاسبه انتگرال به کمک شبیه سازی مونت کارلو

شبیه سازی

Rزبانبهسازیشبیهبرنامه•

odds <- function(n) {

x <- runif(n,0,1)

return(sum(x < 0.5)/n)

}

> odds(1000)

[1] 0.48

9

محاسبه انتگرال به کمک کارلوشبیه سازی مونت

faradars.org/fvst9407

فرادرس

FaraDars.org

Page 10: آموزش محاسبه انتگرال به کمک شبیه سازی مونت کارلو

Piشبیه سازی و محاسبه عدد

محاسباتیکد•

10

MCPI <- function(N,r) {

x <- runif(N,0,r)

y <- runif(N,0,r)

d2<- (x^2 + y^2)

return(4*sum(d2 < r^2) / N)

}

> MCPI(10000,2)

[1] 3.1628

محاسبه انتگرال به کمک کارلوشبیه سازی مونت

faradars.org/fvst9407

فرادرس

FaraDars.org

Page 11: آموزش محاسبه انتگرال به کمک شبیه سازی مونت کارلو

محاسبه انتگرال به روش مونت کارلو

کارلومونتروشبهانتگرالمحاسبه•

انتگرالحلهدف–

تابعبازنویسی–

W(x) = h(x).(b-a) f(x) = 1/(b-a) f ~U(a,b)

11

b

a

dx)x(hI

))X(w(Edx)x(f)x(wdx)x(hI f

b

a

b

a

محاسبه انتگرال به کمک کارلوشبیه سازی مونت

faradars.org/fvst9407

فرادرس

FaraDars.org

Page 12: آموزش محاسبه انتگرال به کمک شبیه سازی مونت کارلو

محاسبه انتگرال به روش مونت کارلو

بزرگاعدادقانون•

میانگیناهآنگباشند،ثابتومتناهیواریانسومیانگینباتوزیعهممستقلتصادفیمتغیرهایازمتناهیدنباله ایاگر–

.می کندمیلتوزیعمیانگینبهدنبالهآنمقادیر

بزرگاعدادقانونانیمیشن•

12

I))X(w(E)x(wN

IpN

i

i

^

1

1

محاسبه انتگرال به کمک کارلوشبیه سازی مونت

faradars.org/fvst9407

فرادرس

FaraDars.org

Page 13: آموزش محاسبه انتگرال به کمک شبیه سازی مونت کارلو

محاسبه انتگرال به روش مونت کارلو

کارلومونتروشبهانتگرالمحاسبه•

w(x) =x3(1-0)

f(x)= 1/(1-0) =1

U(0,1)یکنواختتوزیعازتصادفیاعدادتولید•

هاw(x)میانگینمحاسبهکمکبهانتگرالبرآورد•

13

1

0

3dxx

محاسبه انتگرال به کمک کارلوشبیه سازی مونت

faradars.org/fvst9407

فرادرس

FaraDars.org

Page 14: آموزش محاسبه انتگرال به کمک شبیه سازی مونت کارلو

محاسبه انتگرال به روش مونت کارلو

کارلومونتروشبهانتگرالمحاسبهبرنامه

integral<-function(n,a,b)

{

random=runif(n,a,b)

wx=random^3*(b-a)

return(mean(wx))

}

integral(10000,0,1)

[1] 0.2460764

14

محاسبه انتگرال به کمک کارلوشبیه سازی مونت

faradars.org/fvst9407

فرادرس

FaraDars.org

Page 15: آموزش محاسبه انتگرال به کمک شبیه سازی مونت کارلو

محاسبه انتگرال به روش مونت کارلو

کارلومونتروشبهانتگرالمحاسبه•

U(0,1)توزیعازتصادفیاعدادتولید•

)یکوصفربینهایxبرای)هاW(x)میانگینمحاسبهکمکبهانتگرالبرآورد•

15

1

0

dxe x

1

)x(f

e)x(w x

محاسبه انتگرال به کمک کارلوشبیه سازی مونت

faradars.org/fvst9407

فرادرس

FaraDars.org

Page 16: آموزش محاسبه انتگرال به کمک شبیه سازی مونت کارلو

محاسبه انتگرال به روش مونت کارلو

کارلومونتروشبهانتگرالمحاسبهبرنامه•

expintegral<-function(n)

{

random=runif(n,0,1)

wx=exp(random)

return(mean(wx))

}

expintegral(1000)

[1] 1.733461

16

محاسبه انتگرال به کمک کارلوشبیه سازی مونت

faradars.org/fvst9407

فرادرس

FaraDars.org

Page 17: آموزش محاسبه انتگرال به کمک شبیه سازی مونت کارلو

محاسبه انتگرال به روش مونت کارلو

کارلومونتروشبهانتگرالمحاسبه•

N(0,1)توزیعازتصادفیاعدادتولید•

)1ازکمترهایxبرای)هاW(x)میانگینمحاسبهکمکبهانتگرالبرآورد•

17

1

2

1 2

2

1dxe

x

2

2

1

2

11

x

e)x(f)x(w

محاسبه انتگرال به کمک کارلوشبیه سازی مونت

faradars.org/fvst9407

فرادرس

FaraDars.org

Page 18: آموزش محاسبه انتگرال به کمک شبیه سازی مونت کارلو

محاسبه انتگرال به روش مونت کارلو

کارلومونتروشبهانتگرالمحاسبهبرنامه•

nintegral<-function(n)

{

random=rnorm(n,0,1)

return(mean(random<1))

}

nintegral(1000)

[1] 0.856

18

محاسبه انتگرال به کمک کارلوشبیه سازی مونت

faradars.org/fvst9407

فرادرس

FaraDars.org

Page 19: آموزش محاسبه انتگرال به کمک شبیه سازی مونت کارلو

اهمیت نمونه گیری-محاسبه انتگرال به روش مونت کارلو

استانداردنرمالتوزیعازتصادفینمونهیکانتخاب:اولروش•

19

3

2

1 2

2

1dxe

x

2

2

1

2

11

x

e)x(f)x(w

محاسبه انتگرال به کمک کارلوشبیه سازی مونت

faradars.org/fvst9407

فرادرس

FaraDars.org

Page 20: آموزش محاسبه انتگرال به کمک شبیه سازی مونت کارلو

اهمیت نمونه گیری-محاسبه انتگرال به روش مونت کارلو

انتگرالمحاسبهبهمربوطبرنامه•

normintegral<-function(n)

{

random=rnorm(n)

return(mean(random>3))

}

normintegral(1000)

[1] 0.002

20

محاسبه انتگرال به کمک کارلوشبیه سازی مونت

faradars.org/fvst9407

فرادرس

FaraDars.org

Page 21: آموزش محاسبه انتگرال به کمک شبیه سازی مونت کارلو

اهمیت نمونه گیری-محاسبه انتگرال به روش مونت کارلو

•Importance sampling

.شودسریع ترمحاسبهباعثکهتصادفیداده هایانتخاب•

1واریانسو3میانگینبانرمالتوزیعازتصادفینمونهیکانتخاب:دومروش•

21

3

2

1 2

2

1dxe

x

2

2

2

32

1

32

1

2

1

2

1

2

1

2

1

)x(

)x(

x

e)x(f

e

e

)x(w

محاسبه انتگرال به کمک کارلوشبیه سازی مونت

faradars.org/fvst9407

فرادرس

FaraDars.org

Page 22: آموزش محاسبه انتگرال به کمک شبیه سازی مونت کارلو

3

اهمیت نمونه گیری-محاسبه انتگرال به روش مونت کارلو

22

.انتخاب به روش دوم باعث انتخاب داده های مناسب تر می شود•

محاسبه انتگرال به کمک کارلوشبیه سازی مونت

faradars.org/fvst9407

فرادرس

FaraDars.org

Page 23: آموزش محاسبه انتگرال به کمک شبیه سازی مونت کارلو

اهمیت نمونه گیری-محاسبه انتگرال به روش مونت کارلو

انتگرالمحاسبهبهمربوطبرنامه•

importance<-function(n)

{

x=rnorm(n,3,1)

wx=dnorm(x)*(x>3)/dnorm(x,3,1)

mean(wx)

}

> importance(1000)

[1] 0.001359719

23

محاسبه انتگرال به کمک کارلوشبیه سازی مونت

faradars.org/fvst9407

فرادرس

FaraDars.org

Page 24: آموزش محاسبه انتگرال به کمک شبیه سازی مونت کارلو

24

این اسالید ها بر مبنای نکات مطرح شده در فرادرس« آموزش محاسبه انتگرال به کمک شبیه سازی مونت کارلو»

.تهیه شده است

برای کسب اطالعات بیشتر در مورد این آموزش به لینک زیر مراجعه .نمایید

faradars.org/fvst9407

محاسبه انتگرال به کمک کارلوشبیه سازی مونت

faradars.org/fvst9407

فرادرس

FaraDars.org