คนวิทยาศาสตร์การคำนวณ:
ฉันโพสต์คำถามนี้ที่ Math Stack Exchangeและมีคนแสดงความคิดเห็นว่าฉันอาจได้รับคำตอบ "ดีกว่า" ที่นี่:
ฉันเป็นสามเณรด้วยวิธีการเชิงตัวเลขและ Matlab ฉันพยายามประเมินผลรวมของสามอินทิกรัลสองอันดังต่อไปนี้ (สามารถเขียนได้ง่ายกว่า แต่คุณยังไม่สามารถประเมินได้ว่าเป็นสัญลักษณ์ (?)) ฉันมีปัญหาในการทำให้ทำงานที่นี่ดังนั้นฉันลังเลที่จะแยกมันออกเป็นชิ้น ๆ ที่นี่: ฉันต้องการค้นหาผลรวมของ
และ
ที่ไหน
และ
แก้ไข (2 มีนาคม 2013): มีคนตอบว่าได้รับ Mathematica เพื่อทำอินทิกรัลเป็นสัญลักษณ์ ฉันพยายามทำสิ่งนี้ (ด้วยอินทิกรัลเวอร์ชันที่ง่าย) และ Mathematica สามารถทำได้เพียงสองส่วนนอกของอันแรกและหยุดชะงักในอันที่สอง ฉันขอขอบคุณความช่วยเหลือ นี่คือสิ่งที่ฉันทำ:
ฉันพยายามประเมิน
รวม [r1 ^ 3 / r2 ^ 3 * t ^ 2 * Exp (-t ^ 2), {t, 0, r2 - r1}, {r1, 1, r2}, {r2, 1, 2}]
และ Mathematica กลับมา (ฉันมีปัญหากับที่นี่เพราะผลยาวฉันแบ่งมันเป็นสองสมการถ้าใครรู้วิธีที่ดีในการแสดงโปรดบอกฉัน):
จากนั้นฉันก็พยายามประเมิน
การใช้
รวม [(r1 + r2 - t) ^ 4 * (t ^ 2 + 2 * t * (r1 + r2) - 3 * (r2 - r1) ^ 2) ^ 2) Exp [-t ^ 2] / r1 ^ 3 / r2 ^ 3, {r2, 1, 2}, {r1, 1, r2}, {t, r2-r1, r2 + r1}]
ตอนนี้และ Mathematica ยังไม่ได้รับคำตอบหลังจากนั้นประมาณครึ่งชั่วโมง (แต่ตอนนี้ฉันมีปัญหาเครือข่ายคอมพิวเตอร์และพวกเขาอาจจะถูกตำหนิ)
[สิ้นสุดการแก้ไขเดือนมีนาคม 2]
ฉันใช้คำสั่ง "triplequad" ของ Matlab โดยไม่มีตัวเลือกพิเศษ ฉันจัดการขีด จำกัด ตัวแปรของการรวมด้วยฟังก์ชั่นหนักเพราะฉันไม่รู้วิธีอื่นที่จะทำ Matlab ให้ฉัน0.007164820144202
ฉันรู้ว่า Matlab เป็นซอฟต์แวร์ที่ดี แต่ฉันได้ยินมาว่าตัวเลขอินทิกรัลสามตัวนั้นยากที่จะทำอย่างถูกต้องและนักคณิตศาสตร์จะไม่เชื่อดังนั้นฉันต้องการวิธีที่จะยืนยันความถูกต้องของคำตอบนี้ อินทิกรัลให้คุณค่าที่คาดหวังของการทดลองบางอย่าง (ถ้าใครต้องการฉันสามารถแก้ไขคำถามนี้เพื่ออธิบายการทดลอง): ฉันใช้การทดลองใน Matlab โดยใช้ตัวเลขที่สร้างขึ้นแบบสุ่มล้านครั้งและเฉลี่ยผลลัพธ์ ฉันทำขั้นตอนนี้ซ้ำสี่ครั้ง นี่คือผลลัพธ์ (ฉันต้องขออภัยถ้าฉันใช้คำว่า "ทดลอง" ไม่ถูกต้อง):
การทดลองที่ 1:
การทดลองที่ 2:
การทดลองที่ 3:
การทดลองที่ 4:
การทดลองที่ 5:
แม้ว่าการทดลองแต่ละครั้งจะใช้ตัวอย่างเป็นล้านตัวอย่างค่าการจำลองจะเห็นด้วยในหลักสำคัญแรกเท่านั้น พวกเขาไม่ใกล้กันมากพอที่ฉันจะตัดสินว่าอินทิกรัลเชิงตัวเลขสามตัวนั้นถูกต้องหรือไม่
มีใครบอกฉันได้ไหมว่าฉันสามารถเชื่อถือผลลัพธ์ของ "triplequad" ที่นี่ได้หรือไม่และภายใต้สถานการณ์ใดที่เราสามารถเชื่อถือได้โดยทั่วไป
ข้อเสนอแนะข้อหนึ่งที่ฉันได้ที่ Math Stack Exchange คือการลองใช้ซอฟต์แวร์อื่นเช่น Mathematica, Octave, Maple และ SciPy นี่เป็นคำแนะนำที่ดีหรือไม่? ผู้คนทำงานเชิงตัวเลขใน Mathematica และ Maple จริงหรือไม่ อ็อกเทฟเป็นโคลน Matlab ดังนั้นฉันจะถือว่ามันใช้อัลกอริทึมการรวมเดียวกันได้หรือไม่? ฉันไม่เคยได้ยินเรื่อง SciPy มาก่อนและจะขอบคุณความคิดเห็นใด ๆ
UPDATE: ใครบางคนจากคณิตศาสตร์ Stack แลกเปลี่ยนไม่ได้ในเมเปิลและได้0.007163085468นั่นคือข้อตกลงกับสามตัวเลขที่สำคัญ นั่นเป็นสัญญาณที่ดี
นอกจากนี้ฉันขอขอบคุณข้อเสนอแนะเกี่ยวกับวิธีป้อนนิพจน์หลายบรรทัดแบบยาวในใน Stack Exchange คุณสามารถใช้สภาพแวดล้อม "ชิด" ที่นี่ได้ไหม? ฉันลองแล้วก็ใช้งานไม่ได้