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

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

2
เกณฑ์การหยุดสำหรับตัวแก้เชิงเส้นแบบวนซ้ำที่ใช้กับระบบเกือบเอกพจน์
A x = bAx=ขAx=bAAAλ0λ0\lambda_0AAARn: = b - A xnRn=ข-Axnr_n:=b-Ax_nn v λ 0 A v = λ 0 v∥ rn∥ / ∥ r0∥ &lt; t o l‖Rn‖/‖R0‖&lt;เสื้อโอล.\|r_n\|/\|r_0\|<tolnnnโวลต์โวลต์vλ0λ0\lambda_0A v = λ0โวลต์Aโวลต์=λ0โวลต์Av=\lambda_0v. สมมติว่าส่วนที่เหลือเริ่มต้นR0R0r_0มีขนาดใหญ่แล้วมันอาจเกิดขึ้นที่เราหยุดที่∥ rn∥ / ∥ r0∥ &lt; t o l‖Rn‖/‖R0‖&lt;เสื้อโอล.\|r_n\|/\|r_0\|<tolแต่ข้อผิดพลาดxn- xxn-xx_n-xยังคงมีขนาดใหญ่ ตัวบ่งชี้ข้อผิดพลาดที่ดีกว่าคืออะไรในกรณีนี้ คือ∥ xn- xn - 1∥‖xn-xn-1‖\|x_{n}-x_{n-1}\|ผู้สมัครที่ดี?

5
ข้อได้เปรียบของ multigrid เหนือสิ่งที่จำเป็นสำหรับการย่อยสลายโดเมนและในทางกลับกันคืออะไร?
นี่เป็นจุดประสงค์หลักสำหรับ PDEs รูปไข่ผ่านโดเมนนูนเพื่อให้ฉันได้ภาพรวมที่ดีของทั้งสองวิธี

6
ข้อ จำกัด ที่เกี่ยวข้องกับ
สมมติ นาทีv e c (คุณ)ขึ้นอยู่กับ Uฉัน, J≤ สูงสุด{ Uฉัน, k, Uk , j} ,i , j , k = 1 , … , nminAvec(U)subject to Ui,j≤max{Ui,k,Uk,j},i,j,k=1,…,n\begin{align*} \min A &\mathrm{vec}(U) \\ &\text{subject to } U_{i,j} \leq \max\{U_{i,k}, U_{k,j}\}, \quad i,j,k = 1, \ldots, n \end{align*} โดยที่เป็นเมทริกซ์n × nแบบสมมาตรและv e c ( …

1
เงื่อนไขขอบเขตควรใช้อย่างไรเมื่อใช้วิธีไฟไนต์วอลโวลุ่ม?
จากคำถามก่อนหน้านี้ฉันพยายามใช้เงื่อนไขขอบเขตกับตาข่ายปริมาณ จำกัด ที่ไม่สม่ำเสมอนี้ ฉันต้องการใช้เงื่อนไขขอบเขตประเภทโรบินกับ lhs ของโดเมน ( x=xL)x=xL)x=x_L)เช่นนั้น σL=(dux+au)∣∣∣x=xLσL=(dux+au)|x=xL \sigma_L = \left( d u_x + a u \right) \bigg|_{x=x_L} โดยที่เป็นค่าขอบเขต a , dคือสัมประสิทธิ์ที่กำหนดบนขอบเขต, การพาและการแพร่ตามลำดับ; คุณx = ∂ คุณσLσL\sigma_La,da,da, d , คืออนุพันธ์ของu ที่ประเมินที่ขอบเขตและuคือตัวแปรที่เรากำลังแก้ux=∂u∂xux=∂u∂xu_x = \frac{\partial u}{\partial x}uuuuuu แนวทางที่เป็นไปได้ ฉันสามารถนึกถึงสองวิธีในการใช้เงื่อนไขขอบเขตนี้บนตาข่ายปริมาณ จำกัด ข้างต้น: วิธีเซลล์ผี เขียนเป็นความแตกต่างอัน จำกัด รวมถึงเซลล์ผี σ L = d u 1 …

1
ทางเลือกแทน hdf5
ฉันใช้ HDF5 มาหลายปีแล้ว แต่เมื่อขนาดของชุดข้อมูลเพิ่มขึ้นฉันก็เริ่มพบปัญหาเดียวกันกับที่ระบุไว้ที่นี่ http://cyrille.rossant.net/moving-away-hdf5/ คุณสามารถชี้ให้ฉันเป็นรูปแบบเช่น HDF5 ด้วย - การสนับสนุนที่ดีสำหรับการเขียนแบบขนาน - สนับสนุนการเข้าถึงเมทริกซ์ขนาดใหญ่แบบ chunked กรณีใช้งานทั่วไปของฉันคือเมทริกซ์จำนวนเต็ม 100k x 100k ฉันต้องการที่จะให้มันเป็นไฟล์ทั้งหมดจากมุมมองเชิงตรรกะ แต่ฉันต้องเขียนมันด้วยการทำงานกับคนทำงานคู่ขนาน

2
ตัวเลือกสำหรับการแก้ปัญหาระบบ ODE บน GPU หรือไม่
ฉันต้องการทำฟาร์มแก้ปัญหาระบบของ ODE บน GPU ในการตั้งค่าแบบขนานเล็กน้อย ตัวอย่างเช่นทำการวิเคราะห์ความไวด้วยชุดพารามิเตอร์ที่แตกต่างกัน 512 ชุด ฉันอยากจะแก้ปัญหา ODE ด้วยสมาร์ทแวร์จับเวลาที่ปรับเปลี่ยนได้อย่างชาญฉลาดเช่น CVODE แทนที่จะเป็นไทม์สเตจคงที่เช่น Forward Euler แต่ใช้มันบน GPU NVIDIA แทนซีพียู มีใครทำเช่นนี้? มีห้องสมุดหรือเปล่า
16 ode  gpu 

3
การแข่งขันการเขียนโปรแกรมทางวิทยาศาสตร์
ฉันมักจะแข่งขันกันอย่างต่อเนื่องในชื่อ "การแข่งขันการเขียนโปรแกรม" ซึ่งคุณแก้ปัญหาอัลกอริทึมที่ยากกับรหัสของคุณเองและทักษะการแก้ปัญหาในช่วงเวลา จำกัด สำหรับตัวอย่างอ้างอิงของสิ่งที่อาจมีหน้าตาให้ค้นหาการแข่งขันเช่น Google Code Jam หรือ ACM-ICPC (ถ้าคุณรู้ว่าการแข่งขันการเขียนโปรแกรมคืออะไรคุณสามารถข้ามย่อหน้าต่อไปนี้) ในการแข่งขันเหล่านี้คุณสามารถแข่งขันเป็นรายบุคคลหรือเป็นทีมได้ที่ไซต์จริงหรือออนไลน์และเป้าหมายคือการแก้ปัญหาให้ได้มากที่สุดก่อนการแข่งขันจะสิ้นสุดลง ปัญหาแต่ละข้อเกี่ยวข้องกับข้อ จำกัด บางอย่างที่โซลูชันของคุณต้องปฏิบัติตามเช่นเวลาใช้งานหน่วยความจำที่ใช้ ฯลฯ ปัญหานั้นอาจมีตั้งแต่ "วิธีแก้ปัญหาที่ชัดเจน" ถึง "ต้องการความรู้ที่ดี เป้าหมายหลักคือความสนุก แต่บางครั้งความสำเร็จอาจนำไปสู่รางวัลเงินสดเกียรติยศและบางทีแม้กระทั่งการสัมภาษณ์กับนายหน้าของ บริษัท ชั้นนำอย่าง Google (ถ้าคุณข้ามย่อหน้าข้างต้นหยุดข้ามเพราะคำถามของฉันมาที่นี่) ผ่านการแข่งขันการเขียนโปรแกรมฉันสามารถพัฒนาความสนใจของแท้สำหรับอัลกอริทึมวิทยาการคอมพิวเตอร์โดยทั่วไปและความหมายโดยรวมของความหมายเมื่อมันมาถึงการเขียนโปรแกรมและพัฒนาทักษะการแก้ปัญหาของฉัน ฉันต้องการทำเช่นนั้นในการคำนวณทางวิทยาศาสตร์เช่นกัน คำถาม: มีการแข่งขันใด ๆ ในหลอดเลือดดำเดียวกันกับชนิดอัลกอริธึมล้วนๆหรือไม่ แต่เน้นที่การวิเคราะห์เชิงตัวเลขการปรับให้เหมาะสมและอื่น ๆ หรือไม่? ฉันลองใช้ Google แล้ว แต่หาไม่เจอในแวบแรก ... ภาคผนวก:ฉันได้รับคำแนะนำให้ตรวจสอบ Project Euler แต่นั่นไม่ใช่สิ่งที่ฉันกำลังมองหา สิ่งที่ฉันต้องการคือเวทีที่จะฝึกการใช้ตัวเลขที่ "สกปรก" มากกว่าเช่นการสร้างสรรค์ด้วยวิธีการแก้ปัญหาของ pde การแก้ปัญหาการหาค่าเหมาะที่สุดและอื่น ๆ …

1
ประโยชน์ขององค์ประกอบที่มีความเสถียรขึ้นอยู่กับตาข่าย
หลังจากทำคณิตศาสตร์บางอย่างเกี่ยวกับความมั่นคงขององค์ประกอบในปัญหา 3D Stokes ฉันก็ตกใจเล็กน้อยที่รู้ว่าP2- P1P2-P1P_2-P_1ไม่เสถียรสำหรับตาข่าย tetrahedral โดยพลการ แม่นยำยิ่งขึ้นในกรณีที่คุณมีองค์ประกอบที่โหนดทั้งหมดและสามในสี่ด้านอยู่ในขอบเขตของโดเมนที่มีเงื่อนไข Dirichlet คุณจะได้เมทริกซ์เอกพจน์ ในความเป็นจริงแล้วเป็นเรื่องเล็กน้อยที่จะสรุปจากรูปแบบที่อ่อนแอของระบบสโตกส์ ฉันทดสอบรหัส Stokes เชิงพาณิชย์เพียงตัวเดียวที่ฉันสามารถเข้าถึง (COMSOL) และอนุญาตให้ฉันสร้างตาข่ายดังกล่าว เมื่อคลิกแก้ฉันได้รับ 'ข้อผิดพลาด: เมทริกซ์เอกฐาน' ตามที่คาดไว้ (ฉันอยู่ภายใต้การแสดงผลที่ COMSOL ใช้สำหรับโมดูลการไหลแบบคืบคลาน)P2- P1P2-P1P_2-P_1 เพื่อทดสอบเพิ่มเติมว่าปัญหาไม่เกี่ยวข้องกับการกำหนดค่าอื่นฉันลองใช้ตาข่ายต่อไปนี้และทุกอย่างทำงานตามที่คาดไว้ คำถาม:ข้อ จำกัด ประเภทนี้ถูกนำมาพิจารณาในเครื่องกำเนิดตาข่าย (แบบปรับตัวหรือไม่ปรับตัว) หรือไม่? ฉันเห็นจากรายงานการวิจัยต่าง ๆ ว่าองค์ประกอบนี้ดูเหมือนจะเป็นที่นิยมมาก ความไม่แน่นอนของขอบเขตแบบนี้โดยทั่วไปไม่สนใจว่าไม่มีนัยสำคัญเมื่อเลือกวิธีการใช้หรือไม่? ที่สำคัญกว่านั้นจริง ๆ แล้วมันหมายความว่าอย่างไรที่จะมีองค์ประกอบ จำกัด แน่นอนเช่นชนิดของความไม่แน่นอนขึ้นอยู่กับตาข่ายมีมากเกินไปเพื่อให้เราสรุปได้ว่าวิธีการที่ไม่ดี?

5
ทำไมการแก้ปัญหาเชิงตัวเลขของ ODE จึงย้ายออกจากสมดุลที่ไม่เสถียร?
ฉันต้องการจำลองพฤติกรรมของระบบลูกตุ้มแบบสองเท่า ระบบนี้เป็นหุ่นยนต์หุ่นยนต์ 2 องศาอิสระที่ไม่ได้ถูกกระตุ้นและจะทำตัวเป็นเหมือนลูกตุ้มสองเท่าที่ได้รับผลกระทบจากแรงโน้มถ่วง ข้อแตกต่างที่สำคัญเพียงอย่างเดียวกับลูกตุ้มคู่คือประกอบด้วยวัตถุแข็งสองตัวที่มีคุณสมบัติมวลและความเฉื่อยที่จุดศูนย์กลางมวล โดยทั่วไปฉันตั้งโปรแกรมode45ภายใต้ Matlab เพื่อแก้ปัญหาระบบ ODE ของประเภทต่อไปนี้: ⎡⎣⎢⎢⎢10000M110M1200100M120M22⎤⎦⎥⎥⎥⎡⎣⎢⎢⎢x˙1x˙2x˙3x˙4⎤⎦⎥⎥⎥=⎡⎣⎢⎢⎢x2−V1−G1x4−V2−G2⎤⎦⎥⎥⎥[10000M110M1200100M120M22][x˙1x˙2x˙3x˙4]=[x2−V1−G1x4−V2−G2] \left[ \begin{array}{cccc} 1 & 0 & 0 & 0\\ 0 & M_{11} & 0 & M_{12}\\ 0 & 0 & 1 & 0\\ 0 & M_{12} & 0 & M_{22} \end{array} \right] \left[ \begin{array}{c} \dot{x}_1\\ \dot{x}_2\\ \dot{x}_3\\ \dot{x}_4 \end{array} …

1
ทำให้งงพูดเกี่ยวกับภูมิภาคความมั่นคงของวิธี Runge-Kutta ลำดับที่ห้า
ฉันเจอข้อความที่น่าสงสัยในกระดาษ PJ van der Houwen การพัฒนาวิธี Runge-Kutta สำหรับสมการเชิงอนุพันธ์บางส่วน, Appl Num คณิตศาสตร์. 20: 261, 1996 บนบรรทัด 8ff ในหน้า 264, van der Houwen เขียน: "สำหรับพหุนามเทย์เลอร์นี่ก็หมายความว่าช่วงเวลาความมั่นคงในจินตนาการว่างเปล่าสำหรับ "p=1,2,5,6,9,10,⋯p=1,2,5,6,9,10,⋯p = 1, 2, 5, 6, 9, 10, \cdots โดยที่พหุนามเทย์เลอร์อ้างถึงพหุนามความเสถียร (การขยายส่วนปลายของประมาณ ) ของวิธี Runge-Kutta และ p คือลำดับ (ดูหน้า 263) ฉันคิดว่าฉันเข้าใจผิดบางอย่างเพราะวิธี Runge-Kutta ลำดับที่ห้าไม่มีช่วงเวลาของเสถียรภาพในจินตนาการที่ว่างเปล่าเท่าที่ฉันรู้ จากสิ่งที่ฉันจำได้ขีด จำกัด จินตภาพนั้นประมาณ 3.4 หรือมากกว่านั้นexp(x)exp⁡(x)\exp(x)x=0x=0x=0 …

5
อัลกอริธึมการปรับให้เหมาะสมแบบขนานสำหรับปัญหากับฟังก์ชันวัตถุประสงค์ราคาแพงมาก
ฉันเพิ่มประสิทธิภาพการทำงานของตัวแปร 10-20 ข่าวดีก็คือการประเมินแต่ละฟังก์ชั่นมีราคาแพงประมาณ 30 นาทีของการคำนวณแบบอนุกรม ข่าวดีก็คือฉันมีกลุ่มที่มีโหนดการคำนวณไม่กี่โหลในการกำจัดของฉัน ดังนั้นคำถาม: มีอัลกอริธึมการปรับให้เหมาะสมที่จะให้ฉันใช้พลังงานการคำนวณทั้งหมดได้อย่างมีประสิทธิภาพหรือไม่? อีกด้านหนึ่งของสเปกตรัมจะเป็นการค้นหาที่ละเอียดถี่ถ้วน: แบ่งพื้นที่การค้นหาทั้งหมดออกเป็นกริดที่ละเอียดและคำนวณฟังก์ชันที่จุดกริดแต่ละจุดอย่างอิสระ นี่เป็นการคำนวณคู่ขนานอย่างแน่นอน แต่อัลกอริทึมนั้นไม่มีประสิทธิภาพอย่างน่ากลัว อีกด้านหนึ่งของสเปกตรัมจะเป็นอัลกอริธึมกึ่งนิวตัน: ปรับปรุงการประมาณค่าพารามิเตอร์ถัดไปอย่างชาญฉลาดโดยอิงตามประวัติก่อนหน้านี้ นี่เป็นอัลกอริทึมที่มีประสิทธิภาพ แต่ฉันไม่ทราบวิธีที่จะทำให้มันขนานกัน: แนวคิดของ "การประมาณค่าพารามิเตอร์ตามประวัติก่อนหน้า" ฟังดูเหมือนการคำนวณแบบอนุกรม อัลกอริธึมกำลังสองดูเหมือนจะอยู่ตรงกลาง: เราสามารถสร้าง "ตัวแทนจำลอง" เริ่มต้นด้วยการคำนวณค่าจำนวนมากในแบบคู่ขนาน แต่ฉันไม่รู้ว่าการวนซ้ำที่เหลืออยู่นั้นสามารถขนานกันได้หรือไม่ คำแนะนำใด ๆ เกี่ยวกับวิธีเพิ่มประสิทธิภาพการไล่ระดับสีแบบใดที่ทำงานได้ดีในคลัสเตอร์ นอกจากนี้ยังมีการใช้อัลกอริธึมการปรับให้เหมาะสมแบบขนานในปัจจุบันหรือไม่

4
การเลือกจุดที่กระจัดกระจายส่วนใหญ่จากชุดของคะแนน
มีอัลกอริทึมใด ๆ (ที่มีประสิทธิภาพ) ในการเลือกเซตย่อยของ points จากชุดของ points ( ) ที่พวกเขา "ครอบคลุม" พื้นที่ส่วนใหญ่ (เหนือทุกเซตย่อยของขนาด ) หรือไม่?MMMNNNM&lt;NM&lt;NM < NMMM ฉันถือว่าคะแนนอยู่ในระนาบ 2D อัลกอริธึมไร้เดียงสานั้นง่าย แต่มีข้อห้ามในแง่ของความซับซ้อนของเวลา: for each subset of N points sum distance between each pair of points in the subset remember subset with the maximum sum ฉันกำลังมองหาวิธีที่มีประสิทธิภาพมากขึ้นหรือแม้แต่ประมาณ ตัวอย่างนี่คือเครื่องบินที่มีจุดสุ่มอยู่ในนั้น: สำหรับฉันคาดหวังว่าจะได้รับคะแนนจากการเลือกดังนี้:M=5M=5M=5 หมายเหตุจุดที่เลือก (สีแดง) จะกระจายอยู่ทั่วระนาบ ฉันพบบทความ …

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

7
การคำนวณที่แข็งแกร่งของค่าเฉลี่ยของตัวเลขสองตัวในจำนวนทศนิยม?
Let x, yมีสองจำนวนจุดลอยตัว วิธีที่ถูกต้องในการคำนวณค่าเฉลี่ยของพวกเขาคืออะไร? วิธีไร้เดียงสา(x+y)/2อาจส่งผลให้เกิดการล้นเมื่อxและyมีขนาดใหญ่เกินไป ฉันคิดว่า0.5 * x + 0.5 * yอาจจะดีกว่า แต่มันเกี่ยวข้องกับการคูณสองครั้ง (ซึ่งอาจไม่มีประสิทธิภาพ) และฉันไม่แน่ใจว่ามันดีพอ มีวิธีที่ดีกว่า? อีกความคิดหนึ่งที่ผมได้เล่นกับคือถ้า(y/2)(1 + x/y) x&lt;=yแต่อีกครั้งฉันไม่แน่ใจว่าจะวิเคราะห์และพิสูจน์ว่าเป็นไปตามข้อกำหนดของฉัน นอกจากนี้ผมต้องรับประกันว่าค่าเฉลี่ยจะคำนวณและ&gt;= min(x,y) &lt;= max(x,y)ตามที่ระบุไว้ในคำตอบของ Don Hatchอาจเป็นวิธีที่ดีกว่าในการวางคำถามนี้: การใช้ค่าเฉลี่ยของตัวเลขสองตัวที่ให้ผลลัพธ์ที่แม่นยำที่สุดเท่าที่จะเป็นไปได้คืออะไร นั่นคือถ้าxและyเป็นตัวเลข floating-point จะคำนวณตัวเลข floating-point ได้(x+y)/2อย่างไร? ในกรณีนี้หมายถึงการคำนวณโดยอัตโนมัติและ&gt;= min(x,y) &lt;= max(x,y)ดูคำตอบของ Don Hatchสำหรับรายละเอียด หมายเหตุ:ลำดับความสำคัญของฉันคือความแม่นยำที่แข็งแกร่ง ประสิทธิภาพนั้นพอใช้ได้ อย่างไรก็ตามหากมีอัลกอริทึมที่แข็งแกร่งและแม่นยำจำนวนมากฉันจะเลือกที่มีประสิทธิภาพที่สุด

2
มีวิธีใดบ้างที่จะทำ
คำถาม: สมมติว่าคุณมีสองแตกต่างกัน (ปัจจัย) preconditioners สำหรับสมมาตรบวกแน่นอนเมทริกซ์: ≈ B T B และ ≈ C T C , ที่แปรผกผันกันของปัจจัยB , B T , C , C Tมีความง่ายต่อการใช้AAAA ≈ BTBA≈BTBA \approx B^TBA ≈ CTค,A≈คTค,A \approx C^TC,B , BT, C,CTB,BT,ค,คTB, B^T, C, C^T เมื่อใดจึงเป็นไปได้ที่จะใช้ข้อมูลจากทั้ง และCเพื่อสร้างเงื่อนไขเบื้องต้นที่ดีกว่าBหรือCอย่างเดียว?BBBคคCBBBคคC

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