วิทยาศาสตร์การคำนวณ

ถามตอบสำหรับนักวิทยาศาสตร์ที่ใช้คอมพิวเตอร์เพื่อแก้ปัญหาทางวิทยาศาสตร์

4
มีเครื่องมือหรือวิธีการใดบ้างที่สามารถเพิ่มความเร็วให้กับโค้ดที่เขียนใน Python
แบ็คกราวน์:ฉันคิดว่าฉันอาจต้องการพอร์ตโค้ดบางอย่างที่คำนวณเมทริกซ์เอ็กซ์โปเนนเชียล - เวกเตอร์ผลิตภัณฑ์โดยใช้วิธีการย่อย Krylov จาก MATLAB ถึง Python (โดยเฉพาะฟังก์ชั่นexpmvpของJitse Niesenซึ่งใช้อัลกอริทึมที่อธิบายไว้ในบทความนี้) อย่างไรก็ตามฉันรู้ว่าถ้าฉันใช้ฟังก์ชั่นจำนวนมากจากโมดูลที่ได้มาจากไลบรารีที่รวบรวม (เช่นฉันใช้ raw Python เท่านั้น ในฟังก์ชั่น) แล้วมันอาจจะค่อนข้างช้า คำถาม:มีเครื่องมือหรือวิธีการใดบ้างที่สามารถช่วยฉันเร่งความเร็วโค้ดที่ฉันเขียนใน Python เพื่อประสิทธิภาพการทำงาน โดยเฉพาะอย่างยิ่งฉันสนใจเครื่องมือที่ทำให้กระบวนการเป็นไปโดยอัตโนมัติมากที่สุดแม้ว่าวิธีการทั่วไปจะได้รับการต้อนรับเช่นกัน หมายเหตุ:ฉันมีอัลกอริทึมของ Jitse รุ่นเก่ากว่าและไม่ได้ใช้ในขณะนี้ มันง่ายมากที่จะทำให้รหัสนี้เร็ว แต่ฉันรู้สึกว่ามันจะเป็นตัวอย่างที่ดีและเกี่ยวข้องกับงานวิจัยของฉันเอง การถกเถียงวิธีการของฉันสำหรับการใช้อัลกอริทึมเฉพาะนี้ใน Python เป็นคำถามอื่นทั้งหมด

7
กฎของกลศาสตร์ควอนตัมจะพังลงในสถานการณ์จำลองที่ไหน?
ในฐานะที่เป็นคนที่สำเร็จการศึกษาระดับปริญญาตรีสาขาฟิสิกส์ผมค่อนข้างอับอายเมื่อฉันเริ่มทำงานกับการจำลองโมเลกุล มันเป็นเรื่องน่าตกใจที่ค้นพบว่าแม้แต่การจำลองที่มีรายละเอียดและมีราคาแพงที่สุดก็ไม่สามารถทำซ้ำพฤติกรรมเชิงปริมาณของน้ำได้อย่างสมบูรณ์จากหลักการแรก ก่อนหน้านี้ฉันอยู่ภายใต้ความประทับใจว่ากฎพื้นฐานของกลศาสตร์ควอนตัมเป็นปัญหาที่แก้ไขได้ (นอกเหนือจากแรงโน้มถ่วงซึ่งโดยปกติจะถือว่าไม่เกี่ยวข้องในระดับโมเลกุล) อย่างไรก็ตามดูเหมือนว่าเมื่อคุณพยายามที่จะขยายกฎหมายเหล่านั้นและนำไปใช้กับสิ่งที่ใหญ่กว่าหรือซับซ้อนกว่าอะตอมไฮโดรเจนพลังงานการทำนายของพวกเขาก็เริ่มพังทลายลง จากมุมมองทางคณิตศาสตร์ฉันเข้าใจว่าคลื่นทำงานอย่างรวดเร็วซับซ้อนเกินกว่าจะแก้ได้และการประมาณนั้น (เช่น Born-Oppenheimer) จำเป็นต้องทำให้คลื่นทำงานได้ง่ายขึ้น ฉันยังเข้าใจด้วยว่าการประมาณเหล่านั้นทำให้เกิดข้อผิดพลาดซึ่งแพร่กระจายมากขึ้นเรื่อย ๆ เมื่อเวลาและสเกลเชิงพื้นที่ของระบบเพิ่มขึ้นภายใต้การศึกษา ธรรมชาติของข้อผิดพลาดการประมาณที่ใหญ่ที่สุดและสำคัญที่สุดเหล่านี้คืออะไร? ฉันจะเข้าใจความผิดพลาดเหล่านั้นได้อย่างไร สิ่งสำคัญที่สุดคือเราจะไปยังวิธีการ ab-initio ที่จะช่วยให้เราสามารถจำลองโมเลกุลทั้งหมดและประชากรของโมเลกุลได้อย่างถูกต้องอย่างไร ปัญหาที่ใหญ่ที่สุดที่ยังไม่แก้ที่หยุดยั้งผู้คนจากการพัฒนาแบบจำลองเหล่านี้คืออะไร?

9
เป็นวิธีที่ดีในการเรียกใช้การศึกษาพารามิเตอร์ใน C ++ คืออะไร
ปัญหา ขณะนี้ฉันกำลังทำงานกับการจำลองสถานการณ์ไฟไนต์เอลิเยร์สโต๊คและฉันต้องการตรวจสอบผลกระทบของพารามิเตอร์ที่หลากหลาย บางพารามิเตอร์ถูกระบุในไฟล์อินพุตหรือผ่านตัวเลือกบรรทัดคำสั่ง มีการระบุพารามิเตอร์อื่น ๆ เป็นแฟล็กใน Makefile เพื่อให้โค้ดของฉันต้องถูกคอมไพล์ใหม่ทุกครั้งที่ฉันเปลี่ยนตัวเลือกเหล่านั้น ฉันสนใจที่จะรับคำแนะนำเกี่ยวกับวิธีที่ดีในการสำรวจพื้นที่พารามิเตอร์อย่างเป็นระบบ มีไลบรารี / กรอบงาน C ++ / Python ที่มีประโยชน์ที่สามารถช่วยแก้ไขสิ่งนี้ได้ไหม? ตัวอย่างเช่นการค้นพบboost.Program_optionsเป็นความช่วยเหลือที่ยิ่งใหญ่เนื่องจากเป็นไปได้ที่จะโอเวอร์โหลดตัวเลือกไฟล์อินพุตด้วยอาร์กิวเมนต์บรรทัดคำสั่ง ฉันเคยเห็นบางคนใช้ไฟล์งานที่อธิบายแต่ละกรณีค่อนข้างมีประสิทธิภาพและเพื่อนร่วมงานแนะนำว่าการเขียนพารามิเตอร์ลงในไฟล์ vtu เนื่องจากบล็อกข้อคิดเห็นสามารถใช้งานได้เช่นกัน บางทีมันอาจไม่คุ้มค่ากับการลงทุนเวลานี้ มันเป็นเพียงสิ่งที่ทำให้ไขว้เขวและเสียเวลาและเป็นวิธีที่ดีที่สุดเพียงแค่กล้ามเนื้อผ่านกระบวนการทดสอบกำลังดุร้ายและเฉพาะกิจ ความคิดบางอย่าง ขณะนี้ฉันกำลังทำสิ่งต่าง ๆ ด้วยมือเป็นส่วนใหญ่และฉันพบปัญหาต่อไปนี้: การตั้งชื่อกรณีทดสอบ Re100_dt02_BDF1...ฉันพยายามเก็บผลในโฟลเดอร์ที่ชื่อมีพารามิเตอร์วิ่งคั่นด้วยขีดเช่น สิ่งเหล่านี้กลายเป็นยาวหรือยากต่อการอ่าน / เข้ารหัสหากพวกมันยากเกินไป นอกจากนี้พารามิเตอร์จำนวนจริงรวมถึงสิ่ง.ที่น่าอึดอัดใจ / น่าเกลียด บันทึกข้อมูลการวิ่ง บางครั้งฉันต้องการเห็นผลลัพธ์ที่เขียนไปยังเทอร์มินัลและบันทึกลงในไฟล์ข้อความ อินสแตนซ์คำตอบจาก StackOverflow นี้ค่อนข้างมีประโยชน์ แต่โซลูชันดูเหมือนจะน่ารำคาญเล็กน้อย พล็อตข้อมูลตามพารามิเตอร์ ใช้เวลาค่อนข้างนานในการรวบรวมข้อมูลที่เกี่ยวข้องจากไฟล์บันทึกต่าง ๆ เป็นไฟล์เดียวซึ่งฉันสามารถทำพล็อตได้ด้วยระบบที่ดีกว่าบางทีนี่อาจจะง่ายขึ้น ความคิดเห็นเกี่ยวกับการบันทึกข้อมูล หลังจากตรวจสอบผลลัพธ์ฉันเขียนข้อคิดเห็นในไฟล์ข้อความ แต่การเก็บข้อมูลนี้เป็นการซิงค์กับโฟลเดอร์ผลลัพธ์บางครั้งก็ยาก

16
ตัวอย่างที่ดีของ“ สองง่ายง่ายสามยาก” ในวิทยาศาสตร์การคำนวณ
ฉันเพิ่งพบสูตรของปรากฏการณ์เมตา : " สองเป็นเรื่องง่ายสามเป็นเรื่องยาก " (เขียนโดย Federico Poloni ด้วยวิธีนี้) ซึ่งสามารถอธิบายได้ดังนี้: เมื่อปัญหาบางอย่างถูกกำหนดขึ้นสำหรับสองหน่วยงานมันค่อนข้างง่ายที่จะแก้ปัญหา อย่างไรก็ตามอัลกอริทึมสำหรับการเพิ่มขึ้นของเอนทิตีที่สามในความยากลำบากอย่างมากอาจเป็นไปได้ว่าการแก้ปัญหาที่ไม่เป็นไปได้หรือไม่สามารถทำได้ (ฉันยินดีรับข้อเสนอแนะเพื่อทำให้ข้อความที่สวยงามกระชับและถูกต้องมากขึ้น) มีตัวอย่างที่ดีอะไรบ้างในสาขาวิทยาศาสตร์การคำนวณต่าง ๆ (เริ่มจากพีชคณิตเชิงเส้นตรงและจบลงด้วยฟิสิกส์การคำนวณแบบครอบคลุม) คุณรู้หรือไม่?

2
ดีเทอร์มิแนนต์ตัวเล็กบอกนัยว่าการปรับเมทริกซ์ไม่ดีหรือไม่?
det(A)≈0det(A)≈0\det(A) \approx 0 การสนทนาเป็นจริงหรือไม่ เมทริกซ์ที่ไม่มีเงื่อนไขมีปัจจัยเกือบเป็นศูนย์หรือไม่? นี่คือสิ่งที่ฉันลองใน Octave: a = rand(4,4); det(a) %0.008 cond(a)%125 a(:,4) = 1*a(:,1) + 2*a(:,2) = 0.000000001*ones(4,1); det(a)%1.8E-11 cond(a)%3.46E10

5
ผู้ใช้ต้องการคุณลักษณะอะไรบ้างจากอินเทอร์เฟซ MPI C ++
เวอร์ชัน 3.0 ของมาตรฐาน MPI ลบอินเตอร์เฟส C ++ อย่างเป็นทางการ (ก่อนหน้านี้เลิกใช้แล้ว) ในขณะที่การใช้งานอาจยังคงสนับสนุนคุณสมบัติที่ใหม่ใน MPI-3 ไม่มีอินเตอร์เฟส C ++ ที่กำหนดในมาตรฐาน MPI ดูhttp://blogs.cisco.com/performance/the-mpi-c-bindings-what-happened-and-why/สำหรับข้อมูลเพิ่มเติม แรงจูงใจในการลบอินเทอร์เฟซ C ++ ออกจาก MPI คือมันไม่มีค่าใดที่มีนัยสำคัญเหนืออินเตอร์เฟส C มีความแตกต่างน้อยมากนอกเหนือจาก "s / _ / :: / g" และคุณลักษณะหลายอย่างที่ผู้ใช้ C ++ ไม่คุ้นเคยเคยใช้ (เช่นการกำหนดประเภทอัตโนมัติผ่านเทมเพลต) ในฐานะที่เป็นคนที่มีส่วนร่วมในฟอรัม MPI และทำงานกับโปรเจ็กต์ C ++ จำนวนมากที่ใช้อินเทอร์เฟซ C ++ ของตัวเองกับฟังก์ชั่น MPI C ฉันต้องการทราบว่าคุณลักษณะที่พึงประสงค์ของอินเตอร์เฟส C …
28 c++  mpi 

7
วิธีที่เร็วที่สุดในการคำนวณค่าลักษณะเฉพาะที่ใหญ่ที่สุดของเมทริกซ์ทั่วไปคืออะไร
แก้ไข:ฉันกำลังทดสอบว่าค่าลักษณะเฉพาะใดมีขนาดหนึ่งหรือมากกว่า ฉันต้องการหาค่าลักษณะเฉพาะสัมบูรณ์ที่ใหญ่ที่สุดของเมทริกซ์เบาบางขนาดใหญ่ที่ไม่สมมาตร ฉันใช้eigen()ฟังก์ชันของ R ซึ่งใช้ QR algo จาก EISPACK หรือ LAPACK เพื่อค้นหาค่าลักษณะเฉพาะทั้งหมดจากนั้นฉันใช้abs()เพื่อรับค่าสัมบูรณ์ อย่างไรก็ตามฉันต้องทำให้เร็วขึ้น ฉันได้ลองใช้อินเตอร์เฟส ARPACK ในigraphแพ็คเกจ R แล้ว อย่างไรก็ตามมันให้ข้อผิดพลาดสำหรับเมทริกซ์ตัวหนึ่งของฉัน การดำเนินการขั้นสุดท้ายจะต้องสามารถเข้าถึงได้จากอาร์ อาจมีค่าลักษณะเฉพาะหลายค่าที่มีขนาดเท่ากัน คุณมีข้อเสนอแนะใด? แก้ไข: ความแม่นยำจะต้องเป็น1e-11เท่านั้น เป็น "ปกติ" เมทริกซ์ได้รับเพื่อให้ห่างไกล 386 ฉันสามารถทำ QR factorisation กับมันได้ อย่างไรก็ตามมันเป็นไปได้ที่จะมีขนาดใหญ่กว่ามาก ฉันกำลังเริ่มอ่านเกี่ยวกับอัลกอริทึมของ Arnoldi ฉันเข้าใจว่ามันเกี่ยวข้องกับ Lanczsos386 × 386386×386386\times 386 EDIT2:ถ้าฉันมีเมทริกซ์หลายตัวที่ฉัน "ทดสอบ" และฉันรู้ว่ามันมีซับเมทริกซ์ขนาดใหญ่ที่ไม่เปลี่ยนแปลง เป็นไปได้ไหมที่จะเพิกเฉย / ทิ้ง?

4
การจัดการกับค่าผกผันของเมทริกซ์สมการเชิงบวกที่แน่นอน (ความแปรปรวนร่วม)?
ในสถิติและการใช้งานที่หลากหลายเรามักจะคำนวณเมทริกซ์ความแปรปรวนร่วมซึ่งเป็นค่าบวกแน่นอน (ในกรณีที่พิจารณา) และสมมาตรสำหรับการใช้งานที่หลากหลาย บางครั้งเราต้องการค่าผกผันของเมทริกซ์นี้สำหรับการคำนวณที่หลากหลาย (รูปแบบสมการกำลังสองที่มีค่าผกผันนี้เป็นเมทริกซ์กึ่งกลาง (เท่านั้น) เป็นต้น ด้วยคุณสมบัติของเมทริกซ์นี้และการใช้งานที่ตั้งใจฉันสงสัย อะไรคือสิ่งที่ดีที่สุดในแง่ของความมั่นคงเชิงตัวเลขวิธีที่จะคำนวณหรือใช้ (สมมติว่ารูปแบบสมการกำลังสองหรือการคูณเมทริกซ์ - เวกเตอร์โดยทั่วไป) ผกผันนี้? การแยกตัวประกอบบางอย่างที่สามารถมีประโยชน์ได้บ้าง?

5
มีปัญหา / อัลกอริทึมที่มีชื่อเสียงในการคำนวณทางวิทยาศาสตร์ที่ไม่สามารถเร่งความเร็วด้วยการขนาน
มีปัญหา / อัลกอริทึมที่มีชื่อเสียงในการคำนวณทางวิทยาศาสตร์ที่ไม่สามารถเร่งความเร็วด้วยการขนาน ดูเหมือนว่าฉันในขณะที่อ่านหนังสือเกี่ยวกับ CUDA ว่าสิ่งส่วนใหญ่สามารถ

5
อนุญาตให้เมทริกซ์เข้าแทนที่ในจำนวนที่กำหนด
ฉันต้องการแก้ไขเมทริกซ์การเปลี่ยนตารางหนาแน่นในสถานที่โดยการเปลี่ยนลำดับของแถวและคอลัมน์หลายแห่งโดยใช้ไลบรารี่ของ python ศาสตร์นี้สอดคล้องกับการคูณเมทริกซ์ล่วงหน้าโดยเมทริกซ์การเปลี่ยนแปลง P และการโพสต์การคูณด้วย P ^ -1 = P ^ T แต่นี่ไม่ใช่วิธีการแก้ปัญหาที่สมเหตุสมผล ตอนนี้ฉันกำลังสลับแถวและคอลัมน์ด้วยตนเอง แต่ฉันคาดว่าจะมี numpy ที่มีฟังก์ชั่นที่ดี f (M, v) โดยที่ M มี n แถวและคอลัมน์และ v มีรายการ n ดังนั้นการปรับปรุง f (M, v) M ตามการเปลี่ยนแปลงดัชนี v. บางทีฉันแค่ค้นหาอินเทอร์เน็ตไม่ได้ บางสิ่งเช่นนี้อาจเกิดขึ้นได้กับ "การจัดทำดัชนีขั้นสูง" ของนัมมี่ แต่ความเข้าใจของฉันคือว่าโซลูชันดังกล่าวจะไม่เข้าแทนที่ นอกจากนี้สำหรับสถานการณ์ที่เรียบง่ายบางอย่างมันอาจจะเพียงพอที่จะแยกการติดตามการเปลี่ยนแปลงดัชนี แต่สิ่งนี้ไม่สะดวกในกรณีของฉัน เพิ่ม: บางครั้งเมื่อผู้คนพูดถึงการเรียงสับเปลี่ยนพวกเขาหมายถึงการสุ่มตัวอย่างแบบสุ่มเรียงสับเปลี่ยนเท่านั้นตัวอย่างเช่นเป็นส่วนหนึ่งของกระบวนการเพื่อรับค่า p ในสถิติ หรือพวกมันหมายถึงการนับหรือแจกแจงพีชคณิตที่เป็นไปได้ ฉันไม่ได้พูดถึงสิ่งเหล่านี้ เพิ่มเติม: เมทริกซ์มีขนาดเล็กพอที่จะใส่ลงในเดสก์ท็อปแรม …

8
แพ็คเกจใดที่ฉันควรใช้เพื่อห่อ Modern Fortran Code กับ Python
ฉันรู้และใช้f2py2eเพื่อห่อรหัส Fortran 77 เก่าบางส่วน แต่ความเข้าใจของฉันคือว่ามันไม่ทำงานกับรหัส Fortran 95 ที่ใหม่กว่า ฉันได้ค้นคว้าสิ่งที่ฉันควรใช้และเจอ fwrap และ G3 f2py ซึ่งดูเหมือนจะไม่ให้คำอธิบายใด ๆ เกี่ยวกับสถานะปัจจุบันของพวกเขาหรือวิธีใช้ (นอกเหนือจากการใช้งานพื้นฐาน) ฉันได้เห็นด้วยเช่นกันว่าเวอร์ชันของ f2py มีตัวเลือกให้ใช้รุ่นที่สามของ f2py แต่มันก็มีความเห็นว่าเป็นการใช้งานไม่ได้ รับสิ่งนี้ฉันไม่ทราบว่าโครงการใดที่ฉันควรใช้สำหรับโครงการเดียว ฉันควรใช้รหัสใดกับรหัสใหม่ ป.ล. นี่เป็นคำถามเดียวกันกับhttps://stackoverflow.com/questions/10665717/current-best-method-for-wrapping-modern-fortran-code-with-pythonแนะนำว่าการถามที่นี่อาจให้คำตอบที่ดีกว่า .
27 python  fortran 

2
Crank-Nicolson เป็นโครงร่างการแยกย่อยที่เสถียรสำหรับสมการปฏิกิริยา - การแพร่ - การพา (การพาความร้อน) หรือไม่?
ฉันไม่คุ้นเคยกับรูปแบบการแยกย่อยทั่วไปสำหรับ PDE ฉันรู้ว่า Crank-Nicolson เป็นรูปแบบที่ได้รับความนิยมในการลดทอนสมการการกระจาย ยังเป็นตัวเลือกที่ดีสำหรับคำศัพท์การพา? ฉันสนใจการแก้สมการปฏิกิริยา - การแพร่ -การพา ∂u∂t+∇⋅(vu−D∇u)=f∂u∂t+∇⋅(vu−D∇u)=f\frac{\partial u}{\partial t} + \nabla \cdot \left( \boldsymbol{v} u - D\nabla u \right) = f โดยที่คือสัมประสิทธิ์การแพร่ของสสารและคือความเร็วDDDuuuvv\boldsymbol{v} สำหรับการสมัครเฉพาะของฉันสมการสามารถเขียนได้ในรูปแบบ ∂u∂t=D∂2u∂x2Diffusion+v∂u∂xAdvection (convection)+f(x,t)Reaction∂u∂t=D∂2u∂x2⏟Diffusion+v∂u∂x⏟Advection (convection)+f(x,t)⏟Reaction\frac{\partial u}{\partial t} = \underbrace{D\frac{\partial^2 u}{\partial x^2}}_{\textrm{Diffusion}} + \underbrace{\boldsymbol{v}\frac{\partial u}{\partial x}}_{\textrm{Advection (convection)}} + \underbrace{f(x,t)}_{\textrm{Reaction}} นี่คือโครงร่างข้อเหวี่ยง - นิโคลสันที่ฉันสมัคร un+1j−unjΔt=D[1−β(Δx)2(unj−1−2unj+unj+1)+β(Δx)2(un+1j−1−2un+1j+un+1j+1)]+v[1−α2Δx(unj+1−unj−1)+α2Δx(un+1j+1−un+1j−1)]+f(x,t)ujn+1−ujnΔt=D[1−β(Δx)2(uj−1n−2ujn+uj+1n)+β(Δx)2(uj−1n+1−2ujn+1+uj+1n+1)]+v[1−α2Δx(uj+1n−uj−1n)+α2Δx(uj+1n+1−uj−1n+1)]+f(x,t)\frac{u_{j}^{n+1} - u_{j}^{n}}{\Delta t} …

5
Delangunay triangulation library ที่เร็วที่สุดสำหรับชุดคะแนน 3D
ไลบรารีใดที่เร็วที่สุดสำหรับการแสดงชุดสามเหลี่ยมโดยใช้เดลยูเนย์เป็นล้านหากคะแนน 3D มีรุ่น GPU ด้วยหรือไม่ จากอีกด้านหนึ่งการมี voronoi tessellation ของชุดคะแนนเดียวกันจะช่วย (ในแง่ของประสิทธิภาพ) สำหรับการรับ delaunay triangulation หรือไม่?

3
หนึ่งจะทดสอบการใช้งานตัวแก้ ODE เชิงตัวเลขได้อย่างไร
คำถามนี้ถูกย้ายจาก Mathematics Stack Exchange เนื่องจากสามารถตอบได้ใน Computational Science Exchange Exchange อพยพ 6 ปีที่แล้ว ฉันกำลังจะเริ่มต้นทำงานกับห้องสมุดซอฟต์แวร์ของตัวแก้ ODE ที่เป็นตัวเลขและฉันกำลังดิ้นรนกับวิธีการสร้างแบบทดสอบสำหรับการใช้งานตัวแก้ปัญหา ความใฝ่ฝันของฉันอยู่ที่ห้องสมุดในที่สุดจะรวมถึงการแก้สำหรับทั้งปัญหา nonstiff และแข็งและอย่างน้อยหนึ่งแก้นัย (มากหรือน้อยในหุ้นที่มีความสามารถของกิจวัตรใน Matlab ) เพื่อตอบสนองความต้องการวิธีการทดสอบเพื่อสะท้อนให้เห็นถึงต่างๆ ประเภทของปัญหาและเกณฑ์สำหรับนักแก้ปัญหาต่าง ๆode ปัญหาของฉันตอนนี้คือฉันไม่รู้ว่าจะเริ่มต้นด้วยการทดสอบนี้ได้ที่ไหน ฉันสามารถคิดถึงวิธีที่แตกต่างกันสองสามวิธีในการทดสอบผลลัพธ์ของอัลกอริทึม: ทดสอบปัญหาที่มีโซลูชันวิเคราะห์และตรวจสอบว่าโซลูชันตัวเลขอยู่ในระดับที่ยอมรับได้สำหรับจุดข้อมูลที่ส่งคืนทั้งหมด สิ่งนี้ต้องการความรู้เกี่ยวกับปัญหาการวิเคราะห์จำนวนหนึ่งซึ่งแสดงคุณสมบัติทั้งหมดที่ฉันต้องการให้นักแก้ปัญหาต่าง ๆ ทำงานด้วย (ความแข็ง, ปัญหาโดยปริยาย ฯลฯ ) ซึ่งฉันไม่มีอย่างน้อยก็ไม่ได้อยู่ด้านบนสุดของหัวของฉัน วิธีนี้ทดสอบผลลัพธ์ของวิธีการแก้ปัญหา ดังนั้นจึงไม่มีการรับประกันว่าตัวแก้ปัญหาใช้งานได้จริงเพียง แต่ใช้ได้กับปัญหาการทดสอบที่ระบุ ดังนั้นฉันสงสัยว่าต้องมีปัญหาการทดสอบจำนวนมากเพื่อตรวจสอบอย่างมั่นใจว่าตัวแก้ปัญหาทำงานได้หรือไม่ คำนวณวิธีแก้ปัญหาด้วยตนเองสำหรับขั้นตอนสองสามขั้นตอนโดยใช้อัลกอริทึมที่ฉันตั้งใจจะนำไปใช้แล้วทำเช่นเดียวกันกับตัวแก้ปัญหาและตรวจสอบว่าผลลัพธ์เหมือนกัน สิ่งนี้ไม่ต้องการความรู้ในการแก้ปัญหาอย่างแท้จริงแต่ในทางกลับกันก็ต้องใช้งานจริงมาก ในทางกลับกันวิธีนี้ใช้ทดสอบอัลกอริธึมซึ่งใช้ได้กับฉัน - ถ้ามีคนอื่นพิสูจน์ว่าลำดับที่ 4 ที่Runge-Kutta ทำงานได้ฉันก็ไม่รู้สึกว่าจำเป็นต้องสิ้นหวัง อย่างไรก็ตามฉันกังวลว่ามันจะยุ่งยากมากในการสร้างกรณีทดสอบเนื่องจากฉันไม่รู้วิธีการที่ดีในการสร้างข้อมูลทดสอบ (ยกเว้นอาจใช้มือซึ่งจะทำงานมาก ... …
26 ode 

3
อะไรคือความสัมพันธ์ของ BLAS, LAPACK และห้องสมุดพีชคณิตเชิงเส้นอื่น ๆ ?
ฉันได้ดูไลบรารีพีชคณิตเชิงเส้น C ++ สำหรับโครงการที่ฉันกำลังทำอยู่ สิ่งที่ฉันยังไม่เข้าใจคือการเชื่อมต่อของ BLAS และ LAPACK กับห้องสมุดพีชคณิตเชิงเส้นอื่น ๆ เมื่ออ่านบทความนี้ในห้องสมุดพีชคณิตเชิงเส้นฉันพบว่ามันน่าสนใจที่: ห้องสมุดบางแห่งมีความเป็นอิสระจาก BLAS และ LAPACK บางคนต้องการ BLAS และ LAPACK บางตัวมีอินเตอร์เฟสเสริมสำหรับ BLAS และ LAPACK และอย่างที่ฉันเข้าใจคุณสามารถใช้ BLAS และ LAPACK เพื่อแก้ปัญหาพีชคณิตเชิงเส้นโดยตรง ฉันสามารถจินตนาการได้ว่าบางไลบรารีเป็นเพียงอินเตอร์เฟส C ++ ไปยังไลบรารี BLAS และ LAPACK ที่เขียนใน C และ Fortran และอื่น ๆ ได้ใช้งานรูทีนทดแทนของตัวเอง แต่ อะไรคือความหมายของอินเทอร์เฟซเสริมของ BLAS และ LAPACK? คุณทำอะไรหายโดยการไม่เข้าร่วมและห้องสมุดกำลังทำอะไรแทน ห้องสมุดใดมีมากกว่าอินเตอร์เฟสหรือไม่? ตัวอย่างเช่น …

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