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

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

1
ใน MATLAB ความแตกต่างระหว่าง linsolve และ mldivide คืออะไร
ใน matlab ทั้งlinsolveและmldivideใช้สำหรับการแก้ระบบสมการเชิงเส้นในทุกกรณีที่กำหนด อ่านเอกสารของพวกเขาฉันสงสัยว่าความแตกต่างระหว่างพวกเขาคืออะไร? พวกเขาใช้อัลกอริธึมเดียวกันของการแยกตัวประกอบแบบเมทริกซ์และสามเหลี่ยมในเกือบสามกรณีหรือไม่? ถ้า A มีคุณสมบัติใน opts, linsolve จะเร็วกว่า mldivide เนื่องจาก linsolve ไม่ได้ทำการทดสอบใด ๆ เพื่อตรวจสอบว่า A มีคุณสมบัติที่ระบุ mldivide ทำการทดสอบเดียวกันเพื่อตรวจสอบว่า A มีคุณสมบัติพิเศษหรือไม่ หรือ mldivide เพียงแค่ถือว่าพวกเขาเป็นกรณีทั่วไปโดยไม่มีคุณสมบัติพิเศษ ขอบคุณ!

1
เงื่อนไขขอบเขตในการจำลองของเหลว
ผมทำงานเกี่ยวกับซิมของเหลว 2D โดยใช้อนุภาคน้ำวน / "vortons" ตามที่อธิบายในการจำลองของไหลสำหรับวิดีโอเกม ซึ่งฉันคิดว่าเป็นสิ่งเดียวกันกับ "วิธี vortex แยก" โดยทั่วไปคุณเป็นตัวแทนของของเหลวที่มีการสะสมของอนุภาคที่มีความ vorticity ที่กำหนดและคำนวณความเร็วของของเหลวที่จุดโดยการสรุปความเร็วที่เหนี่ยวนำให้เกิดขึ้นของ Vortons ทั้งหมดโดยใช้กฎหมายของ Biot – Savart (เช่น:โดยที่คือความแตกต่างของตำแหน่งระหว่างจุดตัวอย่างและกระแสน้ำวนคือความแปรปรวน (ปริมาณเวกเตอร์ในรูปแบบ 3 มิติ) และคือระยะทางแบบยุคลิดระหว่าง vorton และจุดตัวอย่าง)v=ω×(p2−p1)4πr3v=ω×(p2−p1)4πr3v = \frac{\omega \times (p_2-p_1)}{4\pi r^3}p2−p1p2−p1p_2-p_1wwwrrr ฉันพยายามที่จะแนะนำกล่องเข้าไปในของไหลและให้มันเคลื่อนที่ไปมาและมีอิทธิพลต่อของไหล ซึ่งหมายถึงการคำนึงถึงเงื่อนไขขอบเขตการไม่ลื่นและไม่ผ่านสำหรับกล่อง (นั่นคือการมีความเร็วของของไหลสัมพัทธ์เท่ากับ 0 อยู่ที่ขอบเขตของกล่อง) ตอนนี้ฉันสุ่มตัวอย่างความเร็วสัมพัทธ์ของกล่องและของไหลที่ 80 คะแนนรอบปริมณฑลของกล่อง ฉันยังมี vortons 80 อันวางไว้ใกล้กับขอบด้านนอกของกล่อง แต่ชดเชยออกไปเล็กน้อย ฉันสร้างเมทริกซ์ขนาดใหญ่และแก้ปัญหาค่า vorticity ซึ่ง vortons จำเป็นต้องต่อต้านความเร็วของของเหลวที่จุดตัวอย่าง นี้เกือบจะทำงาน แต่ฉันได้สังเกตเห็นว่าการแก้ปัญหาที่ผมได้รับกลับมาสูงขึ้นอยู่กับรูปแบบที่แน่นอนของจุดตัวอย่างและ …

2
การเชื่อมต่อระหว่างฟอร์มที่แตกต่างและระเบียบวิธีไฟไนต์วอร์ลำดับที่สอง
การอ่านวันนี้เกี่ยวกับทฤษฎีของรูปแบบที่แตกต่างฉันรู้สึกประทับใจมากที่เตือนให้ฉันทราบถึงลำดับที่สองของระเบียบวิธีไฟไนต์วอลลุ่ม (FVM) ฉันกำลังดิ้นรนเพื่อคิดออกคือการคิดแบบนี้เพียงเล็กน้อยหรือมีการเชื่อมต่อที่ลึกลงไป รูปแบบที่แตกต่างกันทำหน้าที่พูดคุยแนวคิดบางอย่างที่หยั่งรากลึกในลำดับที่สอง FVM เช่นฟลักซ์ของรางน้ำบนพื้นผิวและเราทุกคนเกี่ยวกับฟลักซ์ใน FVM จากนั้นทฤษฎีบทอินทิกรัล (ของสโตกส์) เป็นหนึ่งในวัตถุศูนย์กลางในทฤษฎีของรูปแบบที่แตกต่างกัน มันพิสูจน์แล้วว่าเกี่ยวข้องกับการรวมกันของรูปแบบที่แตกต่างกันในหลาย ๆ ที่ที่มีซิมเพลกซ์ (สามเหลี่ยม, จัตุรมุข ฯลฯ ) ปรากฏขึ้น จริง ๆ แล้ว Manifold ถูก tessellated ในลักษณะเดียวกับที่เราเป็นตัวแทนรูปทรงเรียบซึ่งของเหลวที่ผ่านการใช้เซลล์ที่มีขอบตรง นี่เป็นเพียงบางสิ่งที่คล้ายกัน ความจริงก็คือการอ่านเกี่ยวกับรูปแบบที่แตกต่างกันทำให้ฉันไม่สามารถหยุดคิดเกี่ยวกับ FVM ได้ ระเบียบวิธีไฟไนต์ลำดับที่สองจริง ๆ แล้วเป็นตัวแทนของการรวมตัวกันของทฤษฎีแบบฟอร์มอนุพันธ์หรือไม่?

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

1
การแก้ระบบ Ax = b อย่างง่ายควบคู่ไปกับ PETSc
ฉันยังใหม่กับแพ็คเกจ PETSc ฉันมีเมทริกซ์ ~ 4000x4000 A ในรูปแบบเมทริกซ์ตลาดและฉันต้องการให้ PETSc แก้ปัญหานี้โดยใช้โปรเซสเซอร์หลายตัว ฉันรู้วิธีแก้ปัญหาระบบในโปรเซสเซอร์เดียว แต่ฉันไม่ทราบวิธีการกระจายเมทริกซ์และเวกเตอร์ระหว่างโปรเซสเซอร์ที่แตกต่างกัน มีคำแนะนำง่ายๆในการทำเช่นนี้หรือไม่?
10 petsc  matrix 

4
การเพิ่มฟังก์ชั่นนูน (การย่อฟังก์ชันเว้าให้เล็กสุด) ด้วยข้อ จำกัด เชิงเส้น
ปัญหาคือ maxf(x) subject to Ax=bmaxf(x) subject to Ax=b\max f(\mathbf{x}) \text{ subject to } \mathbf{Ax} = \mathbf{b} โดยที่f(x)=∑Ni=11+x4i(∑Ni=1x2i)2−−−−−−−−−−√f(x)=∑i=1N1+xi4(∑i=1Nxi2)2f(\mathbf{x}) = \sum_{i=1}^N\sqrt{1+\frac{x_i^4}{(\sum_{i=1}^{N}x_i^2)^2}} , x=[x1,x2,...,xN]T∈RN×1x=[x1,x2,...,xN]T∈RN×1\mathbf{x} = [x_1,x_2,...,x_N]^T \in \mathbb{R}^{N\times 1}และ A∈RM×NA∈RM×N\mathbf{A} \in \mathbb{R}^{M\times N} เราจะเห็นว่าf(.)f(.)f(.)อยู่ในรูปของ1+y2−−−−−√1+y2\sqrt{1+y^2}และเป็นฟังก์ชันนูน ก็สามารถที่จะแสดงให้เห็นว่า f (.) เป็นที่สิ้นสุดใน[2–√,2][2,2][\sqrt{2}, 2]2] นี่เป็นปัญหาการย่อขนาดเล็กที่สุดด้วยข้อ จำกัด เชิงเส้น อัลกอริธึมมาตรฐานใดที่ใช้เพื่อแก้ไขปัญหาเหล่านี้ การใช้ลักษณะเฉพาะของปัญหาเป็นไปได้หรือไม่ที่จะแก้ปัญหาโดยใช้ซอฟต์แวร์ / แพ็คเกจเพิ่มประสิทธิภาพมาตรฐาน?

3
การอ้างอิงวรรณกรรมสำหรับการสร้างแบบจำลองต้นทุนพลังงานในปัจจุบันและอนาคตของการดำเนินการจุดลอยตัวและการถ่ายโอนข้อมูล
ฉันกำลังค้นหาวรรณกรรมและสไลด์อ้างอิงที่สำคัญที่สุดสำหรับการสร้างแบบจำลองต้นทุนพลังงานในปัจจุบันและอนาคตของการดำเนินการจุดลอยตัวและการถ่ายโอนข้อมูลข้าม CPU หน่วยความจำเครือข่ายและพื้นที่จัดเก็บ ฉันได้ทำเครื่องหมายคำถามนี้ว่าเป็นวิกิชุมชนและฉันต้องการให้คุณ จำกัด คำตอบสำหรับรูปแบบต่อไปนี้: ชื่อเรื่อง, ผู้แต่ง, สถานที่ / การประชุม / วารสาร, ปี, DOI / URL, สรุปว่าข้อมูลหรืองานนำเสนอใดบ้างที่เกี่ยวข้องกับคำขอของฉัน

3
การทดสอบการถดถอยของแบบจำลองเชิงตัวเลข
เมื่อเรามีแบบจำลองเชิงตัวเลขที่แสดงถึงระบบร่างกายจริงและแสดงความโกลาหล (เช่นแบบจำลองพลศาสตร์ของไหลแบบจำลองสภาพภูมิอากาศ) เราจะรู้ได้อย่างไรว่าแบบจำลองนั้นทำงานได้ดีเท่าที่ควร เราไม่สามารถเปรียบเทียบเอาท์พุทแบบจำลองสองชุดได้โดยตรงเนื่องจากแม้แต่การเปลี่ยนแปลงเพียงเล็กน้อยในสภาวะเริ่มต้นจะเปลี่ยนผลลัพธ์ของการจำลองแบบบุคคลอย่างมาก เราไม่สามารถเปรียบเทียบโมเดลเอาต์พุตกับการสังเกตโดยตรงได้เนื่องจากเราไม่สามารถรู้รายละเอียดเงื่อนไขเริ่มต้นของการสังเกตได้อย่างเพียงพอและการประมาณเชิงตัวเลขจะทำให้เกิดความแตกต่างเล็กน้อยที่จะแพร่กระจายผ่านระบบ คำถามนี้ได้รับแรงบันดาลใจบางส่วนจากคำถามของ David Ketcheson เกี่ยวกับการทดสอบหน่วยทางวิทยาศาสตร์ : ฉันสนใจเป็นพิเศษในการทดสอบการถดถอยสำหรับแบบจำลองดังกล่าว หากการเปลี่ยนแปลงเงื่อนไขเริ่มต้นเล็กน้อยสามารถนำไปสู่การเปลี่ยนแปลงที่สำคัญ (ซึ่งอาจยังเป็นตัวแทนที่เพียงพอของความเป็นจริง) แล้วเราจะแยกการเปลี่ยนแปลงเหล่านั้นออกจากการเปลี่ยนแปลงที่เกิดจากการปรับเปลี่ยนพารามิเตอร์หรือการใช้งานรูทีนตัวเลขใหม่ได้อย่างไร
10 testing  numerics 

3
การเพิ่มฟังก์ชั่นที่มีเสียงดังที่ไม่รู้จัก
ฉันสนใจในการเพิ่มฟังก์ชั่นที่ Pθ ∈ R Pฉ( θ )f(θ)f(\mathbf \theta)θ ∈ Rพีθ∈Rp\theta \in \mathbb R^p ปัญหาคือฉันไม่รู้รูปแบบการวิเคราะห์ของฟังก์ชันหรืออนุพันธ์ของมัน สิ่งเดียวที่ฉันทำได้คือการประเมินฟังก์ชั่นจุดฉลาดโดยการเสียบค่าและรับการประมาณค่า NOISYณ จุดนั้น ถ้าฉันต้องการฉันสามารถลดความแปรปรวนของประมาณการเหล่านี้ได้ แต่ฉันต้องจ่ายค่าใช้จ่ายในการคำนวณที่เพิ่มขึ้น * F ( θ * )θ* * * *θ∗\theta_*ฉ^( θ* * * *)f^(θ∗)\hat{f}(\theta_*) นี่คือสิ่งที่ฉันได้ลองไปแล้ว: โคตร Stochastic ที่มีความแตกต่างอัน จำกัด : มันสามารถใช้งานได้ แต่ต้องใช้การปรับแต่งมากมาย (เช่นลำดับการได้รับ, ตัวประกอบสเกล) และบ่อยครั้งที่มันไม่เสถียร การอบแบบจำลอง: มันใช้งานได้และมีความน่าเชื่อถือ แต่ก็ต้องใช้การประเมินฟังก์ชั่นมากมายดังนั้นฉันจึงพบว่ามันค่อนข้างช้า ดังนั้นฉันขอคำแนะนำ / ความคิดเกี่ยวกับวิธีการเพิ่มประสิทธิภาพทางเลือกที่เป็นไปได้ที่สามารถทำงานภายใต้เงื่อนไขเหล่านี้ ฉันกำลังทำให้ปัญหาเป็นเรื่องปกติที่สุดเท่าที่จะทำได้เพื่อกระตุ้นข้อเสนอแนะจากงานวิจัยที่แตกต่างจากของฉัน …

3
การเปรียบเทียบสัมพัทธ์ของตัวเลขจำนวนจุดลอยตัว
ฉันมีฟังก์ชั่นเชิงตัวเลขf(x, y)คืนค่าจำนวนจุดลอยตัวสองเท่าที่ใช้สูตรบางอย่างและฉันต้องการตรวจสอบว่ามันถูกต้องกับนิพจน์การวิเคราะห์สำหรับการรวมกันของพารามิเตอร์ทั้งหมดxและyฉันสนใจวิธีที่เหมาะสมในการเปรียบเทียบการคำนวณและ วิเคราะห์จำนวนจุดลอยตัว? สมมติว่าทั้งสองตัวเลขและa bจนถึงตอนนี้ฉันแน่ใจแล้วว่าข้อผิดพลาดทั้งสองอย่าง ( abs(a-b) < eps) และญาติ ( abs(a-b)/max(abs(a), abs(b)) < eps) นั้นน้อยกว่า eps ด้วยวิธีนี้มันจะตรวจจับความไม่ถูกต้องของตัวเลขแม้ว่าตัวเลขจะบอกว่าประมาณ 1e-20 อย่างไรก็ตามวันนี้ฉันค้นพบปัญหาค่าตัวเลขaและค่าการวิเคราะห์bคือ: In [47]: a Out[47]: 5.9781943146790832e-322 In [48]: b Out[48]: 6.0276008792632078e-322 In [50]: abs(a-b) Out[50]: 4.9406564584124654e-324 In [52]: abs(a-b) / max(a, b) Out[52]: 0.0081967213114754103 ดังนั้นข้อผิดพลาดแบบสัมบูรณ์ [50] จึงเล็ก (ชัด) แต่ข้อผิดพลาดสัมพัทธ์ [52] นั้นใหญ่ …

2
ไลบรารีแบบขนานหน่วยความจำที่แบ่งใช้ตามภารกิจใน Scientific Computing
ในช่วงไม่กี่ปีที่ผ่านมาห้องสมุด / โครงการซอฟต์แวร์หลายแห่งปรากฏว่ามีรูปแบบหรือรูปแบบอื่น ๆ ของการใช้งานร่วมกันของหน่วยความจำที่ใช้ข้อมูลร่วมกันแบบขนาน แนวคิดหลักคือแทนที่จะเขียนโค้ดแบบเธรดอย่างชัดเจนโปรแกรมเมอร์ใช้อัลกอริธึมของพวกเขาเป็นงานที่ต้องพึ่งพาระหว่างกันซึ่งจะถูกกำหนดเวลาแบบไดนามิกโดยมิดเดิลแวร์จุดประสงค์ทั่วไปบนเครื่องหน่วยความจำที่ใช้ร่วมกัน ตัวอย่างของห้องสมุดดังกล่าวคือ: QUARK : เริ่มแรกออกแบบมาสำหรับไลบรารีพีชคณิตเชิงเส้นแบบขนานของMAGMAดูเหมือนว่าจะถูกใช้สำหรับวิธีการ Multipole แบบขนานแบบขนานเช่นกัน Cilkเดิมโครงการ MIT-based สนับสนุนในขณะนี้โดย Intel นำมาใช้เป็นภาษา / นามสกุลคอมไพเลอร์ที่ C ใช้ในCilkchessซอฟต์แวร์คอมพิวเตอร์หมากรุกและทดลองใน FFTW SMP superscalar : พัฒนาที่ Barcelona Supercomputing Center ซึ่งคล้ายกับ Cilk ในหลาย ๆ ด้านตาม#pragmaส่วนขยาย StarPU : "codelets" ซึ่งคล้ายกับห้องสมุดซึ่งสามารถรวบรวมและกำหนดเวลาสำหรับสถาปัตยกรรมที่แตกต่างกันหลายแห่งรวมถึง GPU งาน OpenMP: ตั้งแต่เวอร์ชัน 3.0, OpenMP แนะนำ "งาน" ที่สามารถกำหนดเวลาแบบอะซิงโครนัส (ดูส่วนที่ 2.7 ของข้อกำหนด) …

4
การใช้ความแม่นยำสองเท่าอย่างรวดเร็วและแม่นยำของฟังก์ชันแกมมาที่ไม่สมบูรณ์
อะไรคือวิธีที่ทันสมัยในการใช้งานฟังก์ชั่นพิเศษที่มีความแม่นยำสองเท่า ฉันต้องการอินทิกรัลต่อไปนี้: สำหรับและซึ่งสามารถเขียนได้ในรูปของฟังก์ชันแกมม่าที่ไม่สมบูรณ์ต่ำกว่า นี่คือการใช้ Fortran และ C ของฉัน:เมตร=0,1,2, . . t>0Fม.( t ) = ∫10ยู2 มอี- ทียู2dคุณ= γ( m + 12, t )2 ตันm + 12Fm(t)=∫01u2me−tu2du=γ(m+12,t)2tm+12 F_m(t) = \int_0^1 u^{2m} e^{-tu^2} d u = {\gamma(m+{1\over 2}, t)\over 2 t^{m+{1\over 2}}} ม. = 0 , 1 , 2 , . .m=0,1,2,...m=0, …

3
วิธีการแสดงข้อมูลเหตุการณ์ในการค้นหาปัญหาด้านประสิทธิภาพ
ฉันพยายามเพิ่มประสิทธิภาพแอปพลิเคชั่น MPI ด้วยรูปแบบการสื่อสารแบบอะซิงโครนัสสูง แต่ละอันดับมีรายการสิ่งที่ต้องคำนวณและส่งข้อความตามที่จำเป็นหากอินพุตหรือเอาต์พุตอยู่ในอันดับที่แตกต่างกัน นอกจากนี้แต่ละระดับจะถูกเธรด (ปัจจุบันมีหนึ่งเธรดการสื่อสารและ 5 คนงาน) ฉันใช้รหัสกับตัวจับเวลาเกี่ยวกับประสิทธิภาพของส่วนต่าง ๆ ของรหัสซึ่งให้รายการของฉัน (เริ่มต้นสิ้นสุดประเภท) อเนกประสงค์สำหรับแต่ละเธรด พล็อตด้วยวิธีที่ชัดเจนโดยมีเวลาเป็นแกนนอนอันดับและเธรดเป็นแนวตั้งและสีที่ระบุว่าแต่ละเธรดกำลังทำอะไรฉันได้รับภาพเช่นนี้สำหรับ 16 อันดับด้วย 6 เธรด / อันดับ: คำถามของฉันคือ: วิธีอื่นในการแสดงข้อมูลนี้ที่อาจช่วยแก้ไขปัญหาด้านประสิทธิภาพคืออะไร ใครบ้างที่มีพล็อตประเภทโปรดที่พวกเขาใช้เมื่อทำโปรไฟล์แอปพลิเคชันแบบอะซิงโครนัส? ชุดข้อมูลนี้มีข้อ จำกัด ในการที่ไม่ทราบว่าโครงสร้างดาต้าโฟลว์ แต่ฉันต้องการทำความเข้าใจให้มากที่สุดก่อนที่จะพยายามรวบรวมสิ่งที่ซับซ้อนมากขึ้น รูปภาพที่ไม่มีการบีบอัดอยู่ที่นี่ในกรณีที่ทุกคนต้องการมองไปรอบ ๆ (ไม่สามารถอัพโหลดผ่านเส้นทางปกติ) น่าเสียดาย Firefox ไม่ยอมรับแม้ว่าฉันจะเชื่อว่ามันถูกต้องอาจเป็นเพราะมันใหญ่เกินไป

3
ลำดับความสำคัญของการเรียนรู้วิธีการคำนวณฉันควรเขียนโค้ดของตัวเองกับการใช้ห้องสมุดเป็นนักศึกษาระดับบัณฑิตศึกษาตอนต้นเมื่อใด
ฉันเริ่มการศึกษาระดับบัณฑิตศึกษาสาขาวิศวกรรมศาสตร์และจะทำงานในโครงการวิทยาศาสตร์การคำนวณ ผมสังเกตเห็นว่ามีการอภิปรายเกี่ยวกับข้อดีและข้อเสียของการใช้อัลกอริทึมของคุณเองที่นี่ การวิเคราะห์ต้นทุน - ผลประโยชน์ของการใช้อัลกอริธึมของคุณเองกับการใช้ห้องสมุดแตกต่างกันเมื่อคุณเป็นนักศึกษาระดับเริ่มต้นหรือไม่?

3
คำตอบของสมการควอร์ติก
มีการใช้ C แบบเปิดสำหรับการแก้สมการควอร์ติกหรือไม่: a x ⁴ + b x ³ + c x ² + dx + e = 0ax⁴+ขx³+คx²+dx+อี=0ax⁴+bx³+cx²+dx+e=0 ฉันคิดว่าจะใช้งานโซลูชันของ Ferrari ในวิกิพีเดียฉันได้อ่านว่าวิธีการแก้ปัญหานั้นมีความเสถียรในการคำนวณสำหรับเครื่องหมายค่าสัมประสิทธิ์ที่เป็นไปได้บางส่วนเท่านั้น แต่บางทีฉันโชคดี ... ฉันมีวิธีแก้ปัญหาอย่างจริงจังโดยการวิเคราะห์เชิงวิเคราะห์โดยใช้ระบบพีชคณิตคอมพิวเตอร์และส่งออกไปยัง C แต่ถ้ามีการติดตั้งใช้งานที่ทดสอบแล้วฉันต้องการใช้สิ่งนี้ ฉันค้นหาวิธีที่รวดเร็วและไม่ต้องการใช้เครื่องมือค้นหารากทั่วไป ฉันต้องการทางออกที่แท้จริงเท่านั้น

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