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

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

2
พีชคณิต Multigrid: เพราะเหตุใดผลิตภัณฑ์ของการแก้ไขและข้อ จำกัด จึงไม่ส่งผลในบางสิ่งด้วย norm 1
ขณะนี้ฉันกำลังทำงานกับ "A Multigrid Tutorial" โดย Briggs et al, บทที่ 8 การก่อสร้างของผู้ดำเนินการแก้ไขได้รับ: จากนั้นจะมีการสร้างตัวควบคุมข้อ จำกัด และตัวดำเนินการตารางแบบละเอียดดังนี้ สมมติว่าเรามีจุดกริดสามจุด x0, x1, x2 โดยที่ตรงกลางหนึ่ง x1 นั้นใช้ได้และส่วนอื่น ๆ จะหยาบ x1 = x0*w0 + x2*w2หนึ่งกลางหยันโดย ดังนั้นตัวดำเนินการแก้ไขคือ (ใน Matlab): I = [1, 0, 0; w0, 0, w2; 0, 0, 1] I = [ 1, 0, 0] [ w0, …

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

3
ปกติแล้วจะไม่มีการตรวจสอบคอนเวอร์เจนซ์ใน Multigrid หรือไม่?
ฉันเพียงแค่อ่านบทที่ 3 ในระดับ "A multigrid สอน" โดยบริกส์ / เฮนสัน / แมค ลิงค์ ข้อความเกี่ยวกับวงจร Multigrid เช่น V-cycle, mu-cycle, FMG สิ่งที่ดึงดูดสายตาของฉัน: ในขั้นตอนการวนซ้ำมากที่สุดคนหนึ่งตรวจสอบว่ามันได้แปรสภาพเป็นความอดทน / ความแม่นยำที่ต้องการหรือไม่ แต่ Briggs / Henson / McCormick ไม่ได้ใช้การตรวจสอบคอนเวอร์เจนซ์ใด ๆ ในรูปแบบที่นำเสนอ จำนวนการวนซ้ำและการเรียกซ้ำเป็นเพียงฮาร์ดโค้ดและเราต้องมั่นใจว่าโครงร่างจะมาบรรจบกัน ดังนั้นวิธีนี้ทำได้ใน Multigrid ปกติ? เป็นเรื่องปกติหรือไม่ที่จำนวนการวนซ้ำ / การเรียกซ้ำซ้ำซ้อน ฉันกลัวว่าฉันจะเสียเวลาในการคำนวณมากเพราะฉันแม่นยำเกินไปหรือในทางกลับกันความแม่นยำจะไม่ดีในหลายกรณีเมื่อฉันเลือกการวนซ้ำ / การเรียกซ้ำที่ต่ำกว่า
12 multigrid 

3
ทางเลือกของ Comsol Multiphysics
นี่อาจเป็นคำถามที่เหมาะสมกว่าสำหรับคำแนะนำด้านซอฟต์แวร์ของ SE แต่ฉันเชื่อว่าผู้ที่ส่วนนี้ของ SE บ่อยครั้งมีแนวโน้มที่จะสามารถตอบคำถามนี้ได้มากขึ้น ฉันกำลังมองหาฟรี (ไม่เพียง แต่เป็นเสรีภาพใน) ทางเลือกที่จะ Comsol Multiphysics นี่คือบิตที่ยากลำบาก: ฉันไม่ได้มองหาแพ็คเกจการสร้างแบบจำลองและแบบจำลองซึ่งมีจำนวนมาก แต่ฉันกำลังมองหาโซลูชันฟรีที่มีไวยากรณ์คล้ายกับ Comsol มากที่สุด อาจจะมีบางแพ็คเกจที่คุณสามารถใช้งานร่วมกับ Octave ได้? ถ้าเป็นเช่นนั้นฉันไม่ได้พบมัน ความช่วยเหลือใด ๆ จะได้รับการชื่นชมอย่างมาก! ขอบคุณ! [แก้ไข] ฉันต้องการซอฟต์แวร์สำหรับการสร้างแบบจำลองเชิงตัวเลขและการจำลอง ของเหลวที่ไหลระหว่างภาชนะต่าง ๆ การนำความร้อน ฯลฯ การจำลองการแก้ปัญหาให้กับ PDE ต่างๆในระยะสั้น ฟังก์ชั่นหลักที่ฉันกำลังมองหาซอฟต์แวร์ตัวอื่นสำหรับนกแก้วคือ Comsols Model Wizard

3
สถิติที่ถูกต้องสำหรับการรายงานผลการเร่งความเร็ว
สมมติว่าฉันมีโค้ดบางเวอร์ชันที่ช้าและเร็วและต้องการรายงานตัวเลขเร่งความเร็วเปรียบเทียบกับทั้งสอง ผมใช้รุ่นช้าครั้งและรวดเร็วรุ่นมครั้งครั้งการผลิต( s 1 , ... , s n )และ( ฉ1 , ... , ฉม ) วิธีที่ง่ายที่สุดในการสร้างความเร็วคือการเฉลี่ยค่าเฉลี่ย: ˉ snnnmmm(s1,…,sn)(s1,…,sn)(s_1, \ldots, s_n)(f1,…,fm)(f1,…,fm)(f_1, \ldots, f_m) อย่างไรก็ตามสิ่งนี้ไม่ได้คำนึงถึงค่าผิดปกติs¯f¯=m∑i&lt;nsin∑j&lt;mfjs¯f¯=m∑i&lt;nsin∑j&lt;mfj\frac{\bar{s}}{\bar{f}} = \frac{m \sum_{i<n} s_i}{n \sum_{j<m} f_j} คำถาม : สถิติที่ดีที่สุดที่จะใช้เมื่อรายงานตัวเลขการเร่งความเร็วคืออะไร

2
การรวมเชิงตัวเลขในตัวแปรหลายตัว
ให้และf ( → x ) : [ 0 , 1 ] n → Cเป็นฟังก์ชันในตัวแปรเหล่านี้x⃗ = ( x1, x2, … , xn) ∈ [ 0 , 1 ]nx→=(x1,x2,…,xn)∈[0,1]n\vec{x} = (x_1, x_2, \dots, x_n) \in [0,1]^nf(x⃗ ):[0,1]n→Cf(x→):[0,1]n→Cf(\vec{x}): [0,1]^n \to \mathbb{C} มีรูปแบบแบบเรียกซ้ำสำหรับอินทิกรัลแบบวนซ้ำนี้หรือไม่? ∫[0,1]n∏dxif(x⃗ )∫[0,1]n∏dxif(x→)\int_{[0,1]^n} \prod dx_i \;f(\vec{x}) ถ้าและฉันแบ่ง[ 0 , 1 ]ออกเป็น 100 …

2
เกี่ยวกับการสร้างความแตกต่างโดยอัตโนมัติซอร์สโค้ด - การแปลง (STC) มีประสิทธิภาพมากกว่าตัวดำเนินการโอเวอร์โหลด (OO) หรือไม่
เรากำลังทำงานกับแบบจำลอง Bayesian สำหรับกระบวนการ space-time และกำลังใช้ตัวเก็บตัวอย่าง No-U-Turn (NUTS) ที่ต้องใช้แบบจำลองสำหรับความน่าจะเป็นในการบันทึกและการไล่ระดับสีตามพารามิเตอร์ของแบบจำลอง ยิ่งไปกว่านั้นเรามีฟังก์ชั่นความน่าจะเป็นบันทึกที่ค่อนข้างซับซ้อน , ที่เกี่ยวข้องกับการแจกแจงเชิงสถิติ, ผลิตภัณฑ์ kronecker, เลขชี้กำลัง, อัตราส่วน, คำแถลง if-else เป็นต้นและจำเป็นต้องจัดให้มัน แพ็คเกจจำนวนมาก ( MCMC ของสแตนเลย์และ จูเลีย ) ใช้ตัวดำเนินการมากเกินไป (เพื่อความรู้ที่ดีที่สุดของฉัน) เพื่อรับการไล่ระดับสีโดยอัตโนมัติf:Rn→Rf:Rn→Rf : \mathbb{R}^n \rightarrow \mathbb{R} หากเราสามารถสร้างฟังก์ชั่นการไล่ระดับสีของเราเองได้บางทีอาจใช้เครื่องมือกระจายรหัสอัตโนมัติการแปลงซอร์สโค้ดเราจะได้ประสิทธิภาพที่ดีขึ้นหรือ OO ดีหรือดีกว่าหรือไม่

1
ดันเป็นตัวคูณลากรองจ์
ในสมการเนเวียร์ - สโตกส์ที่ไม่สามารถบีบอัดได้ แรงกดดันมักเรียกกันว่าตัวคูณลากรองจ์บังคับให้ เงื่อนไขการบีบอัดρ(ut+(u⋅∇)u)∇⋅u=−∇p+μΔu+f=0ρ(ut+(u⋅∇)u)=−∇p+μΔu+f∇⋅u=0\begin{align*} \rho\left(\mathbf{u}_t + (\mathbf{u} \cdot \nabla)\mathbf{u}\right) &= - \nabla p + \mu\Delta\mathbf{u} + \mathbf{f}\\ \nabla\cdot\mathbf{u} &= 0 \end{align*} นี่เป็นความจริงในแง่ใด มีสูตรของสมการเนเวียร์ - สโตกที่ไม่สามารถบีบอัดได้ซึ่งเป็นปัญหาการหาค่าเหมาะที่สุดภายใต้ข้อ จำกัด ของ ถ้าเป็นเช่นนั้นมีตัวเลขแบบอะนาล็อกที่สมการการไหลของของไหลที่อัดไม่ได้ถูกแก้ไขภายในกรอบการหาค่าเหมาะที่สุดหรือไม่?

2
เป็นวิธีที่เร็วที่สุดในการคำนวณค่าลักษณะเฉพาะทั้งหมดของเมทริกซ์ adjacency ใหญ่และเบาบางในงูใหญ่คืออะไร?
ฉันพยายามที่จะคิดออกว่ามีวิธีที่เร็วกว่าในการคำนวณค่าลักษณะเฉพาะและ eigenvector ทั้งหมดของเมทริกซ์ adjacency ขนาดใหญ่มากและกระจัดกระจายกว่าการใช้ scipy.sparse.linalg.eigsh เท่าที่ฉันรู้วิธีการนี้ใช้เพียงการกระจายและ คุณลักษณะสมมาตรของเมทริกซ์ เมทริกซ์คำวิเศษณ์เป็นเลขฐานสองสิ่งที่ทำให้ฉันคิดว่ามีวิธีที่เร็วกว่าที่จะทำ ฉันสร้างเมทริกซ์ adjacency แบบสุ่มขนาด 1000x1000 และเปรียบเทียบระหว่างหลายวิธีในแล็ปท็อป x230 ubuntu 13.04 ของฉัน: scipy.sparse.linalg.eigs: 0.65 วินาที scipy.sparse.linalg.eigsh: 0.44 วินาที scipy.linalg.eig: 6.09 วินาที scipy.linalg.eigh: 1.60 วินาที ด้วยการกระจัดกระจาย eigs และ eigsh ฉันตั้ง k จำนวนค่าลักษณะเฉพาะและ eigenvectors ที่ต้องการให้เป็นอันดับของเมทริกซ์ ปัญหาเริ่มต้นด้วยเมทริกซ์ที่ใหญ่กว่า - บนเมทริกซ์ 9000x9000 ใช้เวลา scipy.sparse.linalg.eigsh 45 นาที!

3
ตัวเลือกขนาดขั้นตอนโดยใช้ ODE ใน matlab
เฮ้มีและขอบคุณที่ให้เวลาเพื่อดูคำถามของฉัน นี่เป็นคำถามที่ฉันได้โพสต์ก่อนหน้านี้ใน physics.stackexchange.com ขณะนี้ฉันกำลังศึกษาสปินทริปปินเตอร์ 2 มิติ Bose-Einstein Condensate และอยากรู้เกี่ยวกับสถานะพื้นฐานของระบบนี้ วิธีการทางคณิตศาสตร์ของการเดินทางไปสภาพพื้นดินที่เรียกว่าวิธีการที่เวลาจินตนาการ วิธีนี้ง่ายมากที่เวลาในกลศาสตร์ควอนตัมถูกแทนที่ด้วยจินตภาพหนึ่ง ทดแทนนี้ทำให้อนุภาคพลังงานสูงในระบบของฉันสลายตัวเร็วกว่าพลังงานต่ำ การทำให้จำนวนอนุภาคกลับมาเป็นปกติในทุกขั้นตอนของการคำนวณเราจะจบลงด้วยระบบของอนุภาคพลังงานต่ำสุดหรือที่รู้จัก สภาพพื้นดินt = - i τt=−iτ t = -i \tau สมการ (s) ในคำถามเป็นเชิงเรียกว่าไม่เชิงเส้นSchrödingerสมบางครั้งสม Gross-Pitaevskii เพื่อแก้ปัญหาที่ฉันใช้ Matlabs ode45 ซึ่งวิวัฒนาการระบบไปข้างหน้าในเวลาและในที่สุดก็ถึงสภาพพื้นดิน บันทึก! สมการไม่เชิงเส้นSchrödingerรวมถึง laplacian และคำที่แตกต่างอื่น ๆ ในอวกาศ ทั้งหมดนี้ได้รับการแก้ไขโดยใช้การแปลงฟูริเยร์ที่รวดเร็ว ในที่สุดเรามีเวลาเพียง ODE * * * * ปัญหาและคำถามของฉัน:การคำนวณไปจากเพื่อt_fode45 ถูกใส่ไว้ในfor for loop ดังนั้นมันจึงไม่คำนวณเวกเตอร์ยักษ์ในเวลาเดียวกัน รอบแรกจะเริ่มต้นด้วย ode45 …

2
ฉันควรใช้เงื่อนไขล่วงหน้า (และตัวแก้ไข) ใน PETSc สำหรับระบบสมมาตรไม่ จำกัด
ระบบของฉันเป็นปัญหา FE ที่สมมาตรกับตัวคูณแบบลากรองจ์ (เช่นการไหลของ Stokes ที่ไม่สามารถบีบอัดได้): ( กBBTค)(ABTBC)\begin{pmatrix}A & B^T \\ B & C\end{pmatrix} โดยที่เป็นกรณีทั่วไป (ฉันแน่ใจด้วยซ้ำว่าสมการนั้นมีการกำหนดหมายเลขเพื่อให้ตัวคูณ Lagrange ปรากฏขึ้นครั้งสุดท้าย) ระบบมีขนาดค่อนข้างใหญ่ (+ 100k บรรทัด)ค= 0C=0C = 0 เมื่ออ่านคำตอบของคำถามนี้ฉันได้รับความประทับใจว่ามีปัจจัยเบื้องต้นที่เหมาะสมที่สามารถใช้กับปัญหา FE ที่หลากหลายได้ การใช้ PETSc ฉันได้จัดการแก้ปัญหาด้วย MINRES ( -ksp_type minres -pc_type none -mat_type sbaij) แม้ว่าความแม่นยำจะไม่ดี (ทำให้นิวตันซ้ำหลายครั้งสำหรับปัญหาเชิงเส้น) ดูเหมือนว่าไม่มีการรวมกันของ preconditioner และ ksp-solver อื่น ๆ มีการรวมกันของการตั้งค่าสถานะสำหรับ PETSc ที่จะแก้ปัญหาระบบนี้ได้เร็วกว่าเพียงแค่ …

2
ความผันผวนในปัญหาการกระจัดกระจายปฏิกิริยาแปลกประหลาดกับองค์ประกอบ จำกัด
เมื่อ FEM-discretizing และการแก้ปัญหาการแพร่ปฏิกิริยาเช่น ด้วย 0 &lt; ε « 1 (ก่อกวนเอกพจน์) การแก้ปัญหาของปัญหาที่เกิดขึ้นต่อเนื่องมักจะแสดงชั้นแกว่งใกล้กับเขตแดน ด้วย Ω = ( 0 , 1 ) , ε = 10 - 5และเชิงเส้นองค์ประกอบ จำกัด , การแก้ปัญหายูเอชดูเหมือน−εΔu+u=1 on Ωu=0 on ∂Ω−εΔu+u=1 on Ωu=0 on ∂Ω - \varepsilon \Delta u + u = 1 \text{ on } \Omega\\ u = …

1
ใช้การทำซ้ำจุดคงที่เพื่อแยกระบบของ pde
สมมติว่าฉันมีปัญหาค่าขอบเขต: d2udx2+dvdx=f in Ωd2udx2+dvdx=f in Ω\frac{d^2u}{dx^2} + \frac{dv}{dx}=f \text{ in } \Omega dudx+d2vdx2=g in Ωdudx+d2vdx2=g in Ω\frac{du}{dx} +\frac{d^2v}{dx^2} =g \text{ in } \Omega u=h in ∂Ωu=h in ∂Ωu=h \text{ in } \partial\Omega เป้าหมายของฉันคือการสลายการแก้ปัญหาของคู่นี้ให้เป็นลำดับของ PDE ที่ไม่แยกตัว ในการแยกระบบออกฉันใช้การวนซ้ำแบบจุดคงที่กับลำดับการประมาณ(uk,vk)(uk,vk)(u^k,v^k)เช่นนั้น d2ukdx2+dvk−1dx=fd2ukdx2+dvk−1dx=f\frac{d^2u^k}{dx^2} + \frac{dv^{k-1}}{dx}=f duk−1dx+d2vkdx2=gduk−1dx+d2vkdx2=g\frac{du^{k-1}}{dx} +\frac{d^2v^k}{dx^2} =g ในทางทฤษฎีสิ่งนี้จะช่วยให้ฉันแก้สมการทั้งสองเป็น PDE ของรูปไข่อย่างหมดจด อย่างไรก็ตามฉันไม่เคยเห็นการทำซ้ำจุดคงที่มาใช้กับ PDE ในวิธีนี้ ฉันได้เห็นการวนซ้ำจุดคงที่ที่ใช้กับสมการที่แยกด้วยตัวเลข (วิธีผลต่างอันตะ …

1
การเลือกวิธีสำหรับการสร้างพื้นที่สี่เหลี่ยมจัตุรัสเป็นตัวเลข
มีวิธีการหลายตระกูลสำหรับการสร้างพื้นที่สี่เหลี่ยมจัตุรัสที่เป็นตัวเลข หากฉันมีคลาสรวมเฉพาะฉันจะเลือกวิธีในอุดมคติได้อย่างไร คำถามที่เกี่ยวข้องที่จะถามทั้งสองเกี่ยวกับการรวม (เช่นมันราบรื่นหรือไม่มันมีเอกพจน์) และปัญหาการคำนวณ (เช่นการยอมรับข้อผิดพลาดงบประมาณการคำนวณ)? คำตอบสำหรับคำถามเหล่านี้ออกกฎหรือส่งเสริมครอบครัวของวิธีการต่าง ๆ ได้อย่างไร เพื่อความง่ายให้พิจารณาเพียงอินทิกรัลเดี่ยวหรือมิติต่ำ ตัวอย่างเช่นบทความ Wikipedia เกี่ยวกับ QUADPACKระบุว่าQAGSรูทีนทั่วไปค่อนข้างเป็นธรรม" ใช้การสร้างพื้นที่สี่เหลี่ยมจัตุรัสที่ปรับได้ทั่วโลกโดยใช้การสร้างพื้นที่สี่เหลี่ยมจัตุรัส Gauss – Kronrod 21 จุดในแต่ละช่วงย่อยโดยเร่งด้วยอัลกอริทึม epsilon ของ Peter Wynn " การตัดสินใจครั้งนี้เป็นอย่างไร เราจะตัดสินใจคล้ายกันได้อย่างไรเมื่อรู้มากกว่า
12 quadrature 

1
วิธีแก้ไขปัญหาขอบเขตของ Dirichlet-Neumann ไม่เสถียร - วิธีแก้ไขแรงดัน
ฉันกำลังจำลองการไหลที่ไม่บีบอัดของกระบอกสูบที่ Reynold จำนวน 500 ฉันกำลังแก้สมการเนเวียร์สโตคส์โดยใช้วิธีการแก้ไขแรงดัน โซลูชันของฉันไม่เสถียรหลังจากระยะเวลาหนึ่ง (ประมาณ 5 วินาที) ฉันได้ลองปรับ mesh ของฉัน, stepsize (0.05) (ทำให้แน่ใจว่า CFL ของฉัน &lt;1 แม้ว่าฉันจะใช้วิธีการโดยนัย) เงื่อนไขขอบเขตของฉันตาข่ายและผลลัพธ์ที่ไม่เสถียรแสดงในรูปที่แนบมา โดเมนมีขนาดใหญ่กว่าเส้นผ่านศูนย์กลางกระบอกสูบประมาณ 25 เท่า ฉันลองจำลองตาราง O ปัญหานี้ (ซึ่งไม่เสถียรเกือบจะทันที) ลิงค์ต่อไปนี้มีรูปภาพของเงื่อนไขขอบเขตและผลลัพธ์ ฉันจะขอบคุณถ้าใครสามารถแบ่งปันความคิด / ประสบการณ์ของพวกเขาเกี่ยวกับปัญหานี้ ขอบคุณมาก. editted: ขออภัยในความผิดพลาดในการพิมพ์: ฉันใช้เงื่อนไขขอบเขตต่อไปนี้: ขอบเขตของ Neumann ∂ยู⃗ ∂n- n⃗ p = 0 ;∂u→∂n−n→p=0;\frac{\partial \vec{u}} {\partial n} - \vec{n} p …

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