อินทิกรัลประมาณโดยใช้การจำลองมอนติคาร์โลใน R


12

ฉันจะประมาณอินทิกรัลต่อไปนี้โดยใช้การจำลอง MC ได้อย่างไร

1111|xy|dxdy

ขอบคุณ!

แก้ไข (บางบริบท): ฉันกำลังพยายามเรียนรู้วิธีใช้การจำลองเพื่อการอินทิเกรตโดยประมาณและฉันได้รับการฝึกฝนเมื่อฉันประสบปัญหาบางอย่าง

แก้ไข 2 + 3 : อย่างใดฉันก็สับสนและคิดว่าฉันต้องแยกอินทิกรัลเป็นส่วนแยก ดังนั้นฉันคิดออกจริง:

n <- 15000
x <- runif(n, min=-1, max=1)
y <- runif(n, min=-1, max=1)
mean(4*abs(x-y))

2
คุณมาถูกทางแล้ว! คำตอบที่คุณให้นั้นใกล้เคียงกับความถูกต้อง คุณหายไปหนึ่งส่วนเล็ก ๆ ( คำแนะนำ : อะไรคือ pdf ของตัวแปรสุ่ม ) U(1,1)
พระคาร์ดินัล

2
มันคือ 0.5 ดังนั้นฉันจึงต้องคูณสองของ 2 เพื่อให้: 'mean (4 * abs (xy))' ในที่สุดฉันก็ได้รับมาหรือไม่
ชื่อของฉัน

3
(+1) ใช่ ! :) คุณอาจต้องรอสักครู่ (8) ชั่วโมง แต่คุณควรพิจารณากลับมาแล้ววางคำตอบเพื่อให้ผู้ใช้รายอื่น (เช่นฉัน) สามารถโหวตได้ ยินดีต้อนรับสู่เว็บไซต์! ฉันหวังว่าจะเห็นคุณยังคงมีส่วนร่วมที่นี่ ไชโย :)
สำคัญ

1
จุดหนึ่งที่จะเพิ่ม: ฉันพบว่าmaximaมีประโยชน์อย่างมากสำหรับคณิตศาสตร์เชิงสัญลักษณ์ หากฉันต้องทำการคำนวณเชิงวิเคราะห์ด้วยตัวเองฉันจะมีปัญหาเช่นเดียวกับ @EpiGrad แต่ใน maxima คุณสามารถทำได้integrate(integrate(abs(x-y), y, -1, 1), x, -1, 1);และรับคำตอบ 8/3
Karl

2
สำหรับผู้ที่สนใจ R แม้ว่าจะไม่ได้สวยหรูในรหัส maxima ที่โพสต์โดย Karl แต่ก็สามารถทำได้integrate(Vectorize(function(y) integrate(function(x) abs(x-y), -1, 1)$value), -1, 1)และรับการประมาณค่าตัวเลข สามารถใช้แพ็คเกจcubatureadaptIntegrate(function(x) abs(x[1] - x[2]), c(-1, -1), c(1, 1))ได้ นี่เป็นเพียงการให้แนวคิดบางประการสำหรับการประเมินเชิงตัวเลขของอินทิกรัลที่อาจมีประโยชน์เช่นเมื่อทดสอบว่าการจำลองทำงานได้อย่างถูกต้องหรือไม่
NRH

คำตอบ:


1

สำหรับการอ้างอิงอินทิกรัลขนาดต่ำเช่นนั้นมักจะทำได้อย่างมีประสิทธิภาพผ่านการสร้างพื้นที่สี่เหลี่ยมจัตุรัสแทนมอนติคาร์โล Monte Carlo เข้ามาในตัวของมันเองประมาณ 4 ถึง 6 มิติ ต้องเรียนรู้ในระดับต่ำก่อนแน่นอน ...


2
ฉันเดาว่าเป็นสาเหตุที่คำถามนี้ถูกแท็กการบ้าน :-)
whuber

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.