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

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

3
ต้นทุนการคำนวณในไลบรารีมาตรฐานคืออะไร
หนึ่งในประเด็นสำคัญที่เราต้องจัดการในการจำลองโมเลกุลคือการคำนวณแรงขึ้นกับระยะทาง ถ้าเราสามารถ จำกัด แรงและระยะทางฟังก์ชั่นที่จะมีอำนาจแม้กระทั่งของระยะห่างแล้วเราก็สามารถคำนวณตารางของระยะทางและไม่ต้องกังวลเกี่ยวกับการวิจัยหากมีอำนาจแปลก แต่แล้วเราต้องจัดการกับ2}RrrR2= r ⋅ rr2=r⋅rr^2 = {\bf r \cdot r}Rrrr = r2--√r=r2r = \sqrt{r^2} คำถามของฉันคือ: การคำนวณมีราคาแพงเพียงใดในห้องสมุดที่ใช้ภาษาทั่วไป (C / C ++, Fortran, Python) และอื่น ๆ ? มีการปรับปรุงประสิทธิภาพจำนวนมากโดยการปรับโค้ดสำหรับสถาปัตยกรรมเฉพาะหรือไม่?x--√x\sqrt{x}
26 efficiency 

10
คำแนะนำและประสบการณ์ในการเลือกใช้ซอฟต์แวร์
นักพัฒนาซอฟต์แวร์มีทางเลือกในการเลือกใบอนุญาตที่เหมาะสมตามเป้าหมายของงาน ใครบ้างที่สามารถให้คำแนะนำ / ประสบการณ์เกี่ยวกับการเลือกใช้ซอฟต์แวร์ อะไรคือข้อดี / ข้อเสียของ "การแจก" งานเขียนทั้งหมดเป็นรหัสโอเพนซอร์ส? วิธีจัดการกับผู้เล่นอุตสาหกรรมที่ต้องการได้รับประโยชน์จากรหัสการวิจัย?
26 software 

10
อัลกอริทึมที่แข็งแกร่งสำหรับ
อัลกอริธึมง่ายๆสำหรับการคำนวณ SVD ของเมทริกซ์คืออะไร?2×22×22 \times 2 เป็นการดีที่ฉันต้องการอัลกอริทึมที่มีประสิทธิภาพเป็นตัวเลข แต่ฉันต้องการเห็นการใช้งานที่เรียบง่ายและไม่ง่าย ยอมรับรหัส C การอ้างอิงใด ๆ กับเอกสารหรือรหัส?

9
การบีบอัดข้อมูลทศนิยม
มีเครื่องมือใดที่ออกแบบมาเป็นพิเศษสำหรับการบีบอัดข้อมูลทางวิทยาศาสตร์จุดลอยตัวหรือไม่? หากฟังก์ชั่นราบรื่นมีความสัมพันธ์กันอย่างชัดเจนระหว่างตัวเลขที่แสดงถึงฟังก์ชันนั้นดังนั้นข้อมูลควรบีบอัดได้ดี Zipping / gzipping ข้อมูลเลขทศนิยมแบบไบนารีไม่ได้บีบอัดข้อมูล ฉันสงสัยว่ามีวิธีที่พัฒนาขึ้นเป็นพิเศษสำหรับการบีบอัดข้อมูลจุดลอย ที่ต้องการ: การบีบอัดแบบไม่สูญเสียข้อมูลหรือความเป็นไปได้ในการระบุจำนวนตัวเลขขั้นต่ำที่จะเก็บ (สำหรับบางแอปพลิเคชันdoubleอาจมากกว่าสิ่งที่เราต้องการในขณะที่floatอาจมีความแม่นยำไม่เพียงพอ) เครื่องมือการทำงานที่ผ่านการทดสอบเป็นอย่างดี (ไม่ใช่แค่กระดาษที่อธิบายวิธีการทางทฤษฎี) เหมาะสำหรับการบีบอัดข้อมูลตัวเลข 1D (เช่นอนุกรมเวลา) ข้ามแพลตฟอร์ม (ต้องทำงานบน Windows) มันจะต้องเร็ว --- โดยเฉพาะอย่างยิ่งไม่ช้ากว่า gzip ฉันพบว่าหากฉันมีตัวเลขที่เก็บไว้เป็น ASCII การบีบอัดไฟล์สามารถเพิ่มความเร็วในการอ่านและประมวลผล (เนื่องจากการดำเนินการอาจเป็น I / O ที่ถูกผูกไว้) โดยเฉพาะอย่างยิ่งฉันต้องการได้ยินจากผู้ที่ใช้เครื่องมือดังกล่าว

2
ทำไมตัวแก้ปัญหาเชิงเส้นย้ำของฉันถึงไม่มาบรรจบกัน?
สิ่งที่ผิดพลาดเมื่อใช้วิธี Krylov แบบ preconditoned จากKSP ( แพคเกจแก้ปัญหาเชิงเส้นของPETSc ) เพื่อแก้ปัญหาระบบเชิงเส้นแบบกระจัดกระจายเช่นที่ได้จากการทำ discretizing และ linearizing สมการเชิงอนุพันธ์บางส่วน? ฉันสามารถใช้ขั้นตอนใดในการพิจารณาว่าเกิดปัญหาอะไรขึ้นกับฉัน ฉันสามารถเปลี่ยนแปลงอะไรได้บ้างเพื่อแก้ปัญหาระบบเชิงเส้นอย่างประสบความสำเร็จและมีประสิทธิภาพ

6
การแสดงกราฟลิงค์ขนาดใหญ่มาก
ฉันกำลังมองหาเครื่องมือในการมองเห็นกราฟลิงค์ทิศทางที่มีขนาดใหญ่มาก ขณะนี้ฉันมี ~ 2million nodes ที่มี ~ 10million edge ฉันได้ลองทำสิ่งที่แตกต่างกันเล็กน้อย แต่ส่วนใหญ่ใช้เวลาเป็นชั่วโมงในการทำกราฟโหนดขนาด 100k สิ่งที่ฉันได้ลอง: ฉันใช้เวลาหนึ่งวันกับ gephi แต่ 80K nodes ใช้เวลาประมาณหนึ่งชั่วโมงในการเพิ่มและแอปพลิเคชันส่วนใหญ่จะไร้ประโยชน์ ข้อเสนอแนะใด ๆ การสร้างภาพข้อมูลเชิงโต้ตอบจะเป็นประโยชน์

3
BFGS เทียบกับวิธีการไล่ระดับสีคอนจูเกต
ฉันควรพิจารณาเรื่องใดบ้างเมื่อเลือกระหว่าง BFGS และการไล่ระดับสีแบบคอนจูเกตเพื่อเพิ่มประสิทธิภาพ ฟังก์ชั่นที่ฉันพยายามปรับให้เข้ากับตัวแปรเหล่านี้คือฟังก์ชันเลขชี้กำลัง อย่างไรก็ตามฟังก์ชั่นวัตถุประสงค์ที่แท้จริงเกี่ยวข้องกับการรวมกลุ่มเหนือสิ่งอื่นใดและมีค่าใช้จ่ายสูงหากช่วยได้

3
ฉันจะติดตั้งคอมไพเลอร์ Fortran บน Mac ได้อย่างไร (OS X 10.x, x> = 4)
คำถามที่เกี่ยวข้อง: สถานะของ Mac OS ใน Scientific Computing และ HPC แพคเกจซอฟต์แวร์จำนวนมากในสาขาวิทยาศาสตร์การคำนวณเขียนใน Fortran และ Fortran จะไม่หายไป คอมไพเลอร์ Fortran ยังจำเป็นต้องมีการสร้างแพ็คเกจซอฟต์แวร์อื่น ๆ (ตัวอย่างหนึ่งที่น่าสังเกตว่าเป็นSciPy ) อย่างไรก็ตาม Mac OS X ไม่รวมคอมไพเลอร์ Fortran ฉันจะติดตั้งคอมไพเลอร์ Fortran บนเครื่องของฉันได้อย่างไร?
25 software  fortran 

5
มีซอฟต์แวร์ที่สามารถสร้างรูทีนจุด C ที่แม่นยำและเป็นตัวเลขโดยอัตโนมัติจากสูตรสัญลักษณ์หรือไม่?
ได้รับฟังก์ชั่นจริงของตัวแปรจริงมีซอฟต์แวร์ที่สามารถสร้างโค้ดที่มีความแม่นยำเชิงตัวเลขเพื่อคำนวณฟังก์ชั่นของอินพุตทั้งหมดบนเครื่องที่มีการคำนวณทางคณิตศาสตร์ IEEE 754 หรือไม่? ตัวอย่างเช่นถ้าฟังก์ชันจริงที่ต้องประเมินคือ: ซอฟต์แวร์จะพิจารณาการยกเลิกอย่างรุนแรงและอาจค้นหาตารางผลลัพธ์สำหรับชุดอินพุตบางชุดเพื่อหลีกเลี่ยงการสูญเสียความแม่นยำในการคำนวณ อีกทางหนึ่งมีซอฟต์แวร์ที่สามารถสร้างรูทีนการค้นหาตามตารางที่บริสุทธิ์เพื่อคำนวณฟังก์ชันที่กำหนดให้มีความแม่นยำสูงหรือไม่?

6
ปัญหา n-body ความโน้มถ่วงสามารถแก้ไขในแบบคู่ขนานได้อย่างไร?
ปัญหา n-body ความโน้มถ่วงสามารถแก้ไขเป็นตัวเลขแบบขนานได้อย่างไร? การแลกเปลี่ยนความซับซ้อนที่มีความแม่นยำเป็นไปได้หรือไม่? ความแม่นยำมีอิทธิพลต่อคุณภาพของรุ่นอย่างไร

4
วิธีการรวมเชิงตัวเลขของอินทิกรัลสโคปแบบยาก
ฉันจำเป็นต้องประเมินตัวเลขอินทิกรัลด้านล่าง: ∫∞0sinc′(xr)rE(r)−−−−√dr∫0∞sinc′(xr)rE(r)dr\int_0^\infty \mathrm{sinc}'(xr) r \sqrt{E(r)} dr ที่,x∈R+และλ,κ,ν>0 นี่Kคือฟังก์ชัน Bessel ที่แก้ไขของชนิดที่สอง ในกรณีของฉันโดยเฉพาะฉันมีλ=0.00313,κ=0.00825และν=0.33E(r)=r4(λκ2+r2−−−−−−√)−ν−5/2K−ν−5/2(λκ2+r2−−−−−−√)E(r)=r4(λκ2+r2)−ν−5/2K−ν−5/2(λκ2+r2)E(r) = r^4 (\lambda\sqrt{\kappa^2+r^2})^{-\nu-5/2} K_{-\nu-5/2}(\lambda\sqrt{\kappa^2+r^2})x∈R+x∈R+x \in \mathbb{R}_+λ,κ,ν>0λ,κ,ν>0\lambda, \kappa, \nu >0KKKλ=0.00313λ=0.00313\lambda = 0.00313κ=0.00825κ=0.00825\kappa = 0.00825ν=0.33ν=0.33\nu = 0.33 0.33 ฉันใช้ MATLAB และผมก็มีความพยายามในตัวฟังก์ชั่นintegralและquadgkซึ่งจะช่วยให้ฉันมากของข้อผิดพลาด (ดูด้านล่าง) ฉันได้พยายามธรรมชาติสิ่งอื่น ๆ อีกมากมายเช่นกันเช่นการบูรณาการโดยส่วนและข้อสรุปปริพันธ์จากไป( k + 1 ) x πkxπkxπkx\pi(k+1)xπ(k+1)xπ(k+1)x\pi ดังนั้นคุณมีข้อเสนอแนะเกี่ยวกับวิธีที่ฉันควรลองต่อไปหรือไม่ UPDATE (คำถามเพิ่มเติม) ฉันอ่านกระดาษ @Pedro ที่เชื่อมโยงกับและฉันไม่คิดว่ามันยากเกินไปที่จะเข้าใจ อย่างไรก็ตามฉันมีคำถามสองสามข้อ: มันจะโอเคไหมที่จะใช้เป็นองค์ประกอบพื้นฐานψ kในวิธีของ univariate …

2
“ symplectic” หมายถึงอะไรในการอ้างอิงถึงผู้ประกอบการเชิงตัวเลขและคำสั่งของ SciPy ใช้พวกเขาอย่างไร
ในความคิดเห็นนี้ฉันเขียนว่า: ... ผู้รวมระบบ SciPy ที่เป็นค่าเริ่มต้นซึ่งฉันคิดว่าจะใช้วิธี symplectic เท่านั้น ที่ฉันอ้างถึง SciPy odeintซึ่งใช้วิธีการ "ไม่ใช่แบบแข็ง (Adams)" หรือ "วิธีแข็ง (BDF)" ตามแหล่งที่มา : def odeint(func, y0, t, args=(), Dfun=None, col_deriv=0, full_output=0, ml=None, mu=None, rtol=None, atol=None, tcrit=None, h0=0.0, hmax=0.0, hmin=0.0, ixpr=0, mxstep=0, mxhnil=0, mxordn=12, mxords=5, printmessg=0): """ Integrate a system of ordinary differential equations. Solve a system …

1
การอนุรักษ์ปริมาณทางกายภาพเมื่อใช้เงื่อนไขขอบเขต Neumann นำไปใช้กับสมการการแพร่ - แพร่
ฉันไม่เข้าใจพฤติกรรมที่แตกต่างกันของสมการการแพร่ - การกระจายเมื่อฉันใช้เงื่อนไขขอบเขตที่แตกต่างกัน แรงจูงใจของฉันคือการจำลองปริมาณทางกายภาพที่แท้จริง (ความหนาแน่นของอนุภาค) ภายใต้การแพร่และการพาความร้อน ความหนาแน่นของอนุภาคควรได้รับการอนุรักษ์ในการตกแต่งภายในเว้นแต่จะไหลออกมาจากขอบ โดยตรรกะนี้หากฉันบังคับใช้เงื่อนไขขอบเขตของ Neumann จุดสิ้นสุดของระบบเช่น∂ϕ∂x=0∂ϕ∂x=0\frac{\partial \phi}{\partial x}=0(ทางด้านซ้ายและด้านขวา) จากนั้นระบบควรจะ"ปิด"เช่นถ้าฟลักซ์ที่ขอบเขตเป็นศูนย์จากนั้นไม่มีอนุภาคใด ๆ สำหรับการจำลองด้านล่างทั้งหมดที่ผมได้นำมาใช้ต่อเนื่อง Crank-Nicolson สมพา-การแพร่กระจายและการจำลอง∂ϕ∂x=0∂ϕ∂x=0\frac{\partial \phi}{\partial x}=0เงื่อนไขขอบเขต อย่างไรก็ตามสำหรับแถวแรกและแถวสุดท้ายของเมทริกซ์ (แถวเงื่อนไขขอบเขต) ฉันอนุญาตให้ββ\betaสามารถเปลี่ยนแปลงได้โดยอิสระจากค่าภายใน สิ่งนี้ทำให้จุดสิ้นสุดมีความชัดเจน ด้านล่างนี้ฉันพูดถึงการกำหนดค่าที่แตกต่างกัน 4 แบบหนึ่งในนั้นคือสิ่งที่ฉันคาดไว้ ในตอนท้ายฉันพูดคุยเกี่ยวกับการปฏิบัติ จำกัด การแพร่เท่านั้น ที่นี่ข้อกำหนดการปิดจะถูกปิดโดยการตั้งค่าความเร็วเป็นศูนย์ การแพร่กระจายเท่านั้นที่มี = 0.5 (Crank-Niscolson) ทุกจุดββ\boldsymbol{\beta} ปริมาณไม่ได้รับการอนุรักษ์ตามที่สามารถเห็นได้จากการลดพื้นที่พัลส์ การกระจัดกระจายเท่านั้นโดยมี = 0.5 (Crank-Niscolson) ที่จุดตกแต่งภายในและ = 1 (โดยนัย) ที่ขอบเขตบีตาββ\boldsymbol{\beta}ββ\boldsymbol{\beta} โดยใช้สมการโดยปริยายอย่างเต็มที่ในขอบเขตที่ผมประสบความสำเร็จในสิ่งที่ผมคาดหวัง: ไม่มีอนุภาคหลบหนี คุณสามารถเห็นสิ่งนี้ได้โดยพื้นที่ที่ถูกอนุรักษ์ไว้เมื่ออนุภาคกระจายตัว ทำไมการเลือกที่จุดขอบเขตจึงมีอิทธิพลต่อฟิสิกส์ของสถานการณ์ นี่เป็นข้อบกพร่องหรือคาดหวังββ\beta …

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

3
วัตถุประสงค์ของการใช้การรวมโดยชิ้นส่วนในการทำให้รูปแบบที่อ่อนแอสำหรับ discretization FEM คืออะไร?
เมื่อไปจากรูปแบบที่แข็งแกร่งของ PDE ไปยังรูปแบบ FEM ดูเหมือนว่าเราควรทำสิ่งนี้เสมอโดยระบุรูปแบบความแปรปรวนเป็นครั้งแรก ในการทำเช่นนี้คุณจะคูณแบบฟอร์มที่แข็งแกร่งด้วยองค์ประกอบในพื้นที่ (Sobolev) และรวมเข้ากับภูมิภาคของคุณ ฉันยอมรับได้ สิ่งที่ฉันไม่เข้าใจคือเหตุผลว่าทำไมจึงต้องใช้สูตรของกรีน (หนึ่งหรือหลายครั้ง) ฉันได้ทำงานกับสมการของปัวซงเป็นส่วนใหญ่ดังนั้นถ้าเราใช้มัน (กับเงื่อนไขขอบเขต Dirichlet ที่เป็นเนื้อเดียวกัน) เป็นตัวอย่างเช่น −∇2uu=f,u∈Ω=0,u∈∂Ω−∇2u=f,u∈Ωu=0,u∈∂Ω \begin{align} -\nabla^2u &= f,\quad u\in\Omega \\ u &= 0, \quad u\in\partial\Omega \end{align} มันก็อ้างว่าวิธีที่ถูกต้องในรูปแบบรูปแบบความแปรปรวนคือ ∫Ωfvdx⃗ =−∫Ω∇2uvdx⃗ =∫Ω∇u⋅∇vdx⃗ −∫∂Ωn⃗ ⋅∇uvds⃗ =∫Ω∇u⋅∇vdx⃗ .∫Ωfvdx→=−∫Ω∇2uvdx→=∫Ω∇u⋅∇vdx→−∫∂Ωn→⋅∇uvds→=∫Ω∇u⋅∇vdx→. \begin{align} \int_\Omega fv\,\mathrm{d}\vec{x} &= -\int_\Omega\nabla^2 uv\,\mathrm{d}\vec{x} \\ &=\int_\Omega\nabla u\cdot\nabla v\,\mathrm{d}\vec{x} - \int_{\partial\Omega}\vec{n}\cdot\nabla u …

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