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

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

1
การจับคู่กำลังสองน้อยที่สุดในการหมุนล้วนๆ
ใครสามารถแนะนำวิธีการสำหรับปัญหากำลังสองน้อยที่สุดต่อไปนี้: R ∈ R3 × 3R∈R3×3R \in \mathbb{R}^{3 \times 3}RΣi = 0ยังไม่มีข้อความ( R xผม- ขผม)2→ ขั้นต่ำ∑i=0N(Rxi−bi)2→min\sum\limits_{i=0}^N (Rx_i - b_i)^2 \rightarrow \minRRR ฉันสามารถหาวิธีแก้ปัญหาโดยประมาณโดยย่อΣi = 0ยังไม่มีข้อความ( A xผม- ขผม)2→ ขั้นต่ำ∑i=0N(Axi−bi)2→min\sum\limits_{i=0}^N (Ax_i - b_i)^2 \rightarrow \min (โดยพลการA ∈ R3 × 3A∈R3×3A \in \mathbb{R}^{3 \times 3} ) เมทริกซ์AAAและ: คำนวณ SVD: A=UΣVTA=UΣVTA = U \Sigma …

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

6
มีการใช้งานระดับอ้างอิงของ BLAS ใน C / C ++ หรือไม่
การใช้งาน netlib BLAS เป็นข้อมูลอ้างอิงที่ยอดเยี่ยมโดยส่วนใหญ่จะไม่ได้รับการปรับปรุงและจัดทำเอกสารอย่างดี (เช่นzgemm ) อย่างไรก็ตามมันอยู่ใน Fortran 77 ทำให้ไม่สามารถเข้าถึงผู้ที่มีการศึกษาการเขียนโปรแกรมที่ทันสมัย มีการใช้งานระดับอ้างอิงของ BLAS เช่น netlib ใน C / C ++ หรือไม่
11 blas  education 

2
ฉันจะพล็อตพื้นผิวของพล็อต 4D ได้อย่างไร
ฉันพยายามพล็อตฟังก์ชั่นคลื่นสำหรับอนุภาคในกล่อง 3 มิติ ฉันต้องการพล็อต 4 ตัวแปร: x, y, z แกนและฟังก์ชันความหนาแน่นของความน่าจะเป็น ฟังก์ชันความหนาแน่นของความน่าจะเป็นคือ: abs((np.sin((p*np.pi*X)/a))*(np.sin((q*np.pi*Y)/b))*(np.sin((r*np.pi*Z)/c)))**2 ฉันใช้np.arange()สำหรับ X, Y และ Z ฉันได้อ่านสิ่งนี้แล้วคุณต้องพล็อตผิวของพล็อต 4D นี่คือสิ่งที่ควรจะเป็น:

5
อนุพันธ์เชิงตัวเลขและสัมประสิทธิ์ผลต่างอันตะ จำกัด : การปรับปรุงใด ๆ ของวิธีการ Fornberg?
เมื่อต้องการคำนวณอนุพันธ์เชิงตัวเลขวิธีที่นำเสนอโดย Bengt Fornberg ที่นี่ (และรายงานที่นี่ ) สะดวกมาก (ทั้งแม่นยำและง่ายต่อการใช้งาน) ในฐานะที่เป็นกระดาษดั้งเดิมวันที่จากปี 1988 ฉันต้องการที่จะรู้ว่ามีทางเลือกที่ดีกว่าในวันนี้ (เป็น (หรือเกือบ) ง่ายและแม่นยำยิ่งขึ้น?

1
วิธีการเชิงตัวเลขสำหรับการแปลงอินทิกรัลอินทิกรัลเปลี่ยน?
ฉันพยายามแปลงการแปลงอินทิกรัลให้เป็นตัวเลข F(y)=∫∞0yexp[−12(y2+x2)]I0(xy)f(x)dxF(y)=∫0∞yexp⁡[−12(y2+x2)]I0(xy)f(x)dxF(y) = \int_{0}^{\infty} y\exp{\left[-\frac{1}{2}(y^2 + x^2)\right]} I_0\left(xy\right)f(x)\;\mathrm{d}x ดังนั้นสำหรับฉันต้องประมาณf ( x ) โดยที่:F(y)F(y)F(y)f(x)f(x)f(x) และ F ( y )เป็นจริงและเป็นบวกf(x)f(x)f(x)F(y)F(y)F(y)(คือการแจกแจงความน่าจะเป็นแบบต่อเนื่อง) เป็นจริงและเป็นบวกx , yx,yx,y(เป็นขนาด) ฉันมีวิธีการบังคับยุ่งและดุร้ายมากสำหรับการทำสิ่งนี้ในนาที: ฉันกำหนดและเส้นโค้งมากกว่าชุดของจุดค่าของจุดขบที่มี 'เดา' จากการสุ่มแบบซึ่งอัตราผลตอบแทนที่คาดการณ์F ( Y ) อัลกอริทึมทางพันธุกรรมพื้นฐานที่ฉันเขียนช่วยลดความแตกต่างระหว่างอาร์เรย์F ( y )ที่คาดการณ์และวัดได้ จากนั้นฉันใช้f ( x )ซึ่งอัลกอริทึมมาบรรจบกันเป็นคำตอบสำหรับการผกผันฉ( x )f(x)f(x)F( y)F(y)F(y)F( y)F(y)F(y)ฉ( x )f(x)f(x) วิธีการนี้ใช้งานได้ดีสำหรับกรณีง่าย ๆ บางอย่าง แต่มันก็ทำให้ฉันรู้สึกยุ่งและไม่แข็งแรงเป็นพิเศษ ใครสามารถให้แนวทางแก่ฉันในการแก้ไขปัญหานี้ได้ดีขึ้น? ขอบคุณสำหรับเวลาและความช่วยเหลือของคุณ! [x โพสต์ที่วิทยาการคอมพิวเตอร์]

2
กลศาสตร์ที่เป็นของแข็งที่มีความแตกต่างแน่นอน: วิธีการจัดการ "โหนดมุม"?
ฉันมีคำถามเกี่ยวกับเงื่อนไขขอบเขตการเข้ารหัสสำหรับกลไกที่เป็นของแข็ง (ความยืดหยุ่นเชิงเส้น) ในกรณีพิเศษฉันต้องใช้ความแตกต่างอัน จำกัด (3D) ฉันใหม่มากในหัวข้อนี้ดังนั้นบางทีคำถามต่อไปนี้อาจเป็นพื้นฐาน เพื่อนำไปสู่ปัญหาเฉพาะของฉันก่อนอื่นฉันต้องการแสดงสิ่งที่ฉันดำเนินการแล้ว (เพื่อให้ชัดเจนฉันจะใช้ 2D เท่านั้น) 1. ) ผมมีความต่อเนื่องต่อไปนี้dฉันv ( σ) = 0dผมโวลต์(σ)=0div(\sigma) = 0แสดงองค์ประกอบแรกของความแตกต่าง∂σx x∂x+ ∂σx y∂Y= 0∂σxx∂x+∂σxY∂Y=0\frac{\partial\sigma_{xx}}{\partial x} + \frac{\partial\sigma_{xy}}{\partial y} = 0: ฉันใช้กริดที่ไม่มีการส่ายดังนั้น Ux และ Uy จึงถูกกำหนดไว้ในที่เดียวกัน 2. ) ขั้นตอนต่อไปคือการรักษาขอบเขตที่ฉันใช้ "โหนดผี" ตามที่σ∙ n = t* * * *σ∙n=เสื้อ* * * *\sigma \bullet n …

2
โครงสร้างพื้นฐานของการทำงานของรหัสทางวิทยาศาสตร์คืออะไร?
พิจารณาคอมพิวเตอร์สองเครื่องที่มีการกำหนดค่าฮาร์ดแวร์และซอฟต์แวร์ที่แตกต่างกัน เมื่อเรียกใช้รหัส Navier-Stokes ที่เหมือนกันในแต่ละแพลตฟอร์มจะใช้เวลา x และ y ในการดำเนินการซ้ำหนึ่งครั้งสำหรับคอมพิวเตอร์ 1 และ 2 ตามลำดับ ในกรณีนี้คือความแตกต่างของเวลาการวนซ้ำระหว่างคอมพิวเตอร์ 1 และคอมพิวเตอร์ 2Δ=x−yΔ=x−y\Delta = x-y สิ่งที่อาจส่งผลกระทบต่อขนาดของ ? ผู้สมัครที่ชัดเจนคือ CPU คำถามหลักของฉันคือมีปัจจัยอื่น ๆ ที่อาจส่งผลกระทบในลำดับเดียวกับความแตกต่างของฮาร์ดแวร์ระหว่าง CPU หรือไม่ΔΔ\DeltaΔΔ\Delta

2
โครงสร้างข้อมูลสำหรับรหัสปริมาณ จำกัด : Array กับ Classes
ฉันต้องเขียนรหัสปริมาณ จำกัด สำหรับ Magnetohydrodynamics (MHD) ฉันเขียนโค้ดตัวเลขมาก่อน แต่ไม่ถึงระดับนี้ ฉันแค่อยากจะถามว่าจะเป็นทางเลือกที่ดีใช้โครงสร้างข้อมูล (object orientated approach) กับคลาสหรือใช้หลายอาร์เรย์สำหรับคุณสมบัติที่แตกต่างกันในแง่ของความเร็วความสามารถในการปรับขยายได้ ฯลฯ ฉันวางแผนที่จะเขียนโค้ดในไพ ธ อน ใช้ fortran สำหรับส่วนที่ต้องใช้ตัวเลข ตัวอย่างของคลาสในไพ ธ อนจะเป็น class Cell: def __init__(self, x, y, z, U): อาร์เรย์สามารถนิยามได้ง่ายๆว่า x[nx][ny][nz] y[nx][ny][nz] z[nx][ny][nz] U[nx][ny][nz] เป็นต้น

3
วิธีการที่ดีที่สุดสำหรับการจัดการตาข่ายในการคำนวณองค์ประกอบ จำกัด แบบขนาน?
ขณะนี้ฉันกำลังพัฒนาวิธีการแยกส่วนโดเมนสำหรับการแก้ปัญหาการกระเจิง โดยทั่วไปฉันกำลังแก้ไขระบบของ Helmholtz BVP ซ้ำ ๆ ฉันยกเลิกสมการโดยใช้วิธีไฟไนต์เอลิเมนต์เหนือตาข่ายสามเหลี่ยมหรือเตตราฮีด ฉันกำลังพัฒนารหัสเพื่อวิทยานิพนธ์ของฉัน ฉันรู้ว่ามีไลต์อิลิเมนต์ไลบรารี่บางตัวที่มีอยู่เช่น deal.ii หรือ DUNE และถึงแม้ว่าฉันคิดว่ามันยอดเยี่ยมด้วยการออกแบบที่สร้างแรงบันดาลใจและ API เพื่อการเรียนรู้ฉันต้องการพัฒนาแอปพลิเคชันเล็ก ๆ ฉันอยู่ในจุดที่ฉันมีรุ่นอนุกรมของฉันทำงานและตอนนี้ฉันต้องการขนานพวกเขา ท้ายที่สุดแล้วมันเป็นหนึ่งในจุดแข็งของกรอบการสลายตัวของโดเมนเพื่อกำหนดอัลกอริทึมที่ง่ายต่อการขนานอย่างน้อยก็ในหลักการ อย่างไรก็ตามในทางปฏิบัติมีรายละเอียดมากมายที่เราต้องพิจารณา การจัดการตาข่ายเป็นหนึ่งในนั้น หากแอพพลิเคชั่นนั้นต้องการความละเอียดสูงในขณะที่ปรับขนาดให้กับซีพียูจำนวนมากการจำลองแบบของ mesh ทั้งหมดใน CPU ทุกตัวนั้นไม่มีประสิทธิภาพ ฉันต้องการถามนักพัฒนาเหล่านั้นที่ทำงานในแอปพลิเคชันที่คล้ายกันในสภาพแวดล้อมการคำนวณประสิทธิภาพสูงว่าพวกเขาจัดการกับปัญหานี้อย่างไร มีไลบรารี p4est สำหรับการจัดการเครือข่ายแบบกระจาย ฉันไม่ต้องการ AMR ​​ดังนั้นอาจเป็น overkill เพราะฉันสนใจที่จะใช้ตาข่ายแบบเดียวและฉันไม่แน่ใจว่ามันสามารถปรับแต่งตาข่ายแบบสามเหลี่ยมได้หรือไม่ ฉันสามารถสร้างตาข่ายแบบเดียวจากนั้นป้อนเข้าไปในหนึ่งในตัวแบ่งพาร์ติชันและทำการประมวลผลบางส่วนของผลลัพธ์ วิธีที่ง่ายที่สุดดูเหมือนว่าจะสร้างไฟล์แยกต่างหากสำหรับแต่ละพาร์ติชันที่มีข้อมูลตาข่ายที่เกี่ยวข้องกับพาร์ติชันนั้นเท่านั้น ไฟล์นี้จะถูกอ่านโดยซีพียูตัวเดียวซึ่งจะต้องรับผิดชอบในการประกอบระบบแยกในส่วนของตาข่ายนั้น แน่นอนว่าข้อมูลการเชื่อมต่อ / พื้นที่ใกล้เคียงพาร์ติชันทั่วโลกบางอย่างอาจจำเป็นต้องเก็บไว้ในไฟล์ที่ซีพียูทั้งหมดอ่านเพื่อการสื่อสารระหว่างกระบวนการ มีวิธีอื่นใดอีกบ้าง? หากคุณบางคนสามารถแบ่งปันวิธีการที่ใช้กันทั่วไปในอุตสาหกรรมหรือสถาบันวิจัยของรัฐบาลที่เกี่ยวข้องกับการจัดการปัญหานี้คืออะไร ฉันค่อนข้างใหม่ในการเขียนโปรแกรมตัวแก้องค์ประกอบ จำกัด แบบขนานและฉันต้องการที่จะรู้สึกว่าฉันกำลังคิดเกี่ยวกับปัญหานี้อย่างถูกต้องหรือไม่และคนอื่นกำลังเข้าใกล้มันอย่างไร คำแนะนำหรือคำแนะนำเกี่ยวกับบทความวิจัยที่เกี่ยวข้องจะได้รับการชื่นชมอย่างมาก! ขอบคุณล่วงหน้า!

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

3
ด้วยระบบเชิงเส้นตรงสามมิติของ SPD เราสามารถคำนวณล่วงหน้าเพื่อให้ดัชนีทั้งสามสามารถลิงก์ในเวลา O (1) ได้หรือไม่?
พิจารณาสมมาตรบวกแน่นอนระบบ tridiagonal เชิงเส้น ที่และ n รับสามดัชนี , ถ้าเราถือว่าเฉพาะแถวสมการอย่างเคร่งครัดระหว่างและ hold เราสามารถกำจัดตัวแปรกลางเพื่อรับสมการของรูปแบบ โดยที่0 สมการนี้เกี่ยวข้องกับค่าของถึงเป็นอิสระจากอิทธิพลของ "นอก" (กล่าวว่าถ้ามีข้อ จำกัด ที่ส่งผลต่อ )A ∈ R n × n b ∈ R n 0 ≤ i < j < k < n i k u x i + v x j + w x k = c …

3
ค่าสัมประสิทธิ์ไม่คงที่ควรได้รับการปฏิบัติด้วยวิธีการ จำกัด ลำดับแรกของปริมาณลม
เริ่มต้นด้วยสมการการผกผันในรูปแบบการอนุรักษ์ ยูเสื้อ= ( a ( x ) u )xยูเสื้อ=(a(x)ยู)x u_t = (a(x)u)_x ที่( x )คือความเร็วซึ่งขึ้นอยู่กับพื้นที่และยูเป็นความเข้มข้นของสายพันธุ์ที่เป็นป่าสงวนa ( x )a(x)a(x)ยูยูu การแยกแยะฟลักซ์ (โดยที่ฟลักซ์)ฉ= a ( x ) uฉ=a(x)ยูf=a(x)uถูกกำหนดที่ขอบของเซลล์ระหว่างจุดตาข่าย) ให้, ยูเสื้อ= 1ชั่วโมง( ฉj - 12- ฉj + 12)ยูเสื้อ=1ชั่วโมง(ฉJ-12-ฉJ+12) u_t = \frac{1}{h}\left( f_{j-{\frac{1}{2}}} - f_{j+{\frac{1}{2}}} \right) การใช้ลำดับแรกที่อยู่เหนือลมเราประมาณค่าฟลักซ์เป็น fj−12=a(xj−12)uj−1fj+12=a(xj+12)ujfj−12=a(xj−12)uj−1fj+12=a(xj+12)uj f_{j-{\frac{1}{2}}} = a(x_{j-\frac{1}{2}})u_{j-1} \\ f_{j+{\frac{1}{2}}} = a(x_{j+\frac{1}{2}})u_{j} …

1
มีใครใช้วิธีการประมาณค่าซอฟต์แวร์ในการวิจัยทางวิทยาศาสตร์คอมพิวเตอร์หรือไม่?
ที่ทำงานฉันทำหน้าที่เป็นที่ปรึกษาอิสระ สำหรับการจัดการและลูกค้าฉันต้องประเมินระยะเวลาที่ต้องใช้ในการพัฒนาซอฟต์แวร์ซึ่งเป็นส่วนหนึ่งของการวิจัยทางวิทยาศาสตร์การคำนวณของฉัน อย่างไรก็ตามการประมาณเวลาของฉันมักจะปิด ฉันรู้ว่ามีวิธีการประเมินเวลาที่ใช้ในการพัฒนาซอฟต์แวร์ วิธีการเหล่านี้จะให้การประมาณการที่แม่นยำสำหรับงานวิจัยหรือไม่ พวกเขามีประโยชน์ในการตั้งค่าการวิจัยหรือไม่? หากไม่เป็นเช่นนั้นมีวิธีที่ดีกว่า "เก็บบันทึกและแก้ไขประมาณการตาม" หรือไม่
11 software 

3
การทดสอบว่าเมทริกซ์ 12x12 สองตัวมีค่าเดียวกัน
12×1212×1212 \times 12QQQdet(Q)=det(12I−Q−J)(1)det(Q)=det(12I−Q−J)(1)\det(Q) = \det(12I-Q-J) \; \; (1)JJJ ฉันกำลังทำสิ่งนี้กับห้องสมุดตัวนิ่มแต่มันกลับช้าไปหน่อย สิ่งที่ฉันต้องทำคือทำล้านล้านเมทริกซ์และปรากฎว่าการคำนวณสองปัจจัยคือคอขวดของโปรแกรมของฉัน ดังนั้นฉันมีสองคำถาม มีเคล็ดลับใดบ้างที่ฉันสามารถใช้เพื่อคำนวณดีเทอร์แนนต์ได้เร็วขึ้นเมื่อฉันรู้ขนาดของมัน? อาจเป็นการขยายตัวที่ยุ่งเหยิงสำหรับเมทริกซ์12×1212×1212 \times12ที่สามารถทำงานได้ในกรณีนี้? มีวิธีอื่นที่มีประสิทธิภาพในการทดสอบความเท่าเทียมกันหรือไม่(1)(1)(1) แก้ไข เพื่อตอบความคิดเห็น ฉันจำเป็นต้องคำนวณกราฟที่ไม่เกี่ยวข้องกับตัวเองที่เชื่อมต่อทั้งหมดGGGของคำสั่ง131313เช่นGGGและG¯¯¯¯G¯\overline{G}มีจำนวนของต้นไม้ทอด แรงจูงใจสำหรับสิ่งนี้สามารถพบได้ในโพสต์mathoverflowนี้ สำหรับเครื่องฉันใช้งานเครื่อง 8 คอร์ 3.4GHh พร้อมกัน แก้ไข ฉันสามารถลดเวลาทำงานที่คาดไว้ได้ถึง 50% โดยการทำโปรแกรม C เพื่อคำนวณปัจจัยเฉพาะของ12×1212×1212 \times 12เมทริกซ์ ข้อเสนอแนะยังคงยินดีต้อนรับ

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