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

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

2
แก้ปัญหา
ฉันกำลังย้ายรหัสที่มีอยู่จาก MATLAB ไปยัง C ++ และมีระบบเชิงเส้นเพื่อแก้ไข (แทนที่จะเป็นรูปแบบทั่วไปA x = b )xA=bxA=bxA=bAx=bAx=bAx=b เมทริกซ์นั้นหนาแน่นและอยู่ในรูปแบบทั่วไป แต่ไม่ใหญ่กว่า 1,000x1000 ดังนั้นใน MATLAB คำตอบคือฟังก์ชั่นหรือสัญกรณ์ไปข้างหน้าAAAmrdivide(b,A)x = b/A; ฉันจะแก้ไขปัญหานี้ในรหัส C ++ ของฉันโดยใช้รูทีน BLAS และ LAPACK ได้อย่างไร ฉันคุ้นเคยกับกิจวัตรประจำวัน LAPACK DGESVซึ่งจะช่วยแก้x = BสำหรับxAx=bAx=bAx=bxxx ดังนั้นหนึ่งคิดว่าฉันต้องทำกิจวัตรบางอย่างโดยใช้ตัวแปลงสัญญาณเมทริกซ์: (xA)T=bT(xA)T=bT(xA)^T=b^T ATxT=bTATxT=bTA^T x^T = b^T xT=(AT)−1bTxT=(AT)−1bTx^T = (A^T)^{-1} b^T แล้วแก้รูปแบบสุดท้ายใช้DGESVการดำเนินงานในการขนย้ายT (ดังนั้นค่าใช้จ่ายในการเคลื่อนย้ายAและค่าใช้จ่ายในการแก้ไขระบบ)ATATA^TAAA มีวิธีการที่มีประสิทธิภาพมากกว่าหรือดีกว่าอย่างอื่นหรือไม่? ฉันทำงานกับเมทริกซ์และคลาสเวกเตอร์รวมถึงการใช้ BLAS จากไลบรารี BOOST uBLAS …

3
ตัวแก้เชิงเส้นเบาบางสำหรับหลาย ๆ มือขวา
ฉันจำเป็นต้องแก้ปัญหาระบบเชิงเส้นแบบกระจัดกระจาย (300x300 ถึง 1,000x1000) ที่มีด้านขวามือจำนวนมาก (300 ถึง 1,000) นอกเหนือจากปัญหาแรกนี้ฉันยังต้องการที่จะแก้ปัญหาระบบที่แตกต่างกัน แต่ด้วยองค์ประกอบที่ไม่เป็นศูนย์เหมือนกัน (ค่าที่แตกต่างกัน) ซึ่งเป็นระบบที่ห่างเหินจำนวนมากที่มีรูปแบบการกระจายอย่างต่อเนื่อง เมทริกซ์ของฉันไม่มีกำหนด ประสิทธิภาพของการแยกตัวประกอบและการกำหนดค่าเริ่มต้นไม่สำคัญ แต่ประสิทธิภาพของขั้นตอนการแก้คือ ขณะนี้ฉันกำลังพิจารณา PaStiX หรือ Umfpack และฉันอาจจะเล่นกับ Petsc (ซึ่งรองรับทั้งนักแก้ปัญหา) มีห้องสมุดที่สามารถใช้ประโยชน์จากความต้องการเฉพาะของฉัน (vectorization, multi-threading) หรือฉันควรพึ่งพานักแก้ปัญหาทั่วไปและ อาจแก้ไขได้เล็กน้อยตามความต้องการของฉัน เกิดอะไรขึ้นถ้าเมทริกซ์กระจัดกระจายมีขนาดใหญ่ขึ้นถึง ?106× 106106×10610^6 \times 10^6

1
อัลกอริทึม * full * multigrid ทำงานอย่างไร
ดังนั้นฉันจึงเข้าใจ (หรืออย่างน้อยฉันเชื่อว่าฉันทำ) วิธี V-cycle ทำงาน ฉันได้เขียนใน Matlab รุ่น 1-D รุ่นเวียนรอบของ V-cycle อย่างไรก็ตามเมื่อฉันรันโค้ดสำหรับ FMG โซลูชันของฉันไม่ได้มาบรรจบกัน ฉันเชื่อว่าปัญหาของฉันอยู่ที่การเข้าใจส่วน FMG ที่แท้จริง สิ่งที่ฉันรู้ในขณะนี้คือ: ก่อนการแก้ไข FMG ฉันได้ผ่อนคลายวิธีแก้ปัญหาของยูuu แก้ไขทั้งข้อผิดพลาดและ (?)ยูuu ดำเนินการ v-cycle 2 กริดส่งผ่านข้อผิดพลาดไปยัง v-cycle (?) คลายข้อผิดพลาด (บนตารางที่หยาบที่สุดอันดับ 2) สอดแทรกและข้อผิดพลาดยูuu อัพเดต โดยการเพิ่มข้อผิดพลาดเข้าไปยูuu เรียกใช้ v-cycle จากนั้นทำซ้ำจากขั้นตอนที่ 4 ฉันไม่แน่ใจเกี่ยวกับการสั่งซื้อ แต่ฉันก็อาจผิดเกี่ยวกับสิ่งที่ฉันแก้ไขและส่งผ่านไปยังวงจรของฉัน หากฉันขาดอะไรจากอัลกอริทึมโปรดแจ้งให้เราทราบ
12 multigrid 

5
การแก้ซ้ำ ๆ ด้วย ,
ฉันกำลังใช้ MATLAB เพื่อแก้ปัญหาที่เกี่ยวข้องกับการแก้A x = bAx=b\mathbf{A} \mathbf{x}=\mathbf{b}ทุก ๆ เวลาที่ขb\mathbf{b}เปลี่ยนแปลงไปตามกาลเวลา ตอนนี้ฉันกำลังทำสิ่งนี้โดยใช้ MATLAB mldivide: x = A\b ฉันมีความยืดหยุ่นในการทำให้เป็น precomputations มากที่สุดเท่าที่จำเป็นเพื่อให้ผมสงสัยว่าถ้ามีวิธีที่เร็วขึ้นและ / mldivideหรือความถูกต้องมากกว่า โดยทั่วไปแล้วจะทำอะไรที่นี่ ขอบคุณทุกคน!

4
อัลกอริทึมแบบขนาน (GPU) สำหรับออโตเซลลูมิเนียมแบบอะซิงโครนัส
ฉันมีคอลเลกชันของแบบจำลองการคำนวณที่สามารถอธิบายได้ว่าเป็นออโตมาติกเซลลูลาร์แบบอะซิงโครนัส แบบจำลองเหล่านี้มีลักษณะคล้ายกับรุ่น Ising แต่มีความซับซ้อนกว่าเล็กน้อย ดูเหมือนว่ารุ่นดังกล่าวจะได้ประโยชน์จากการใช้งานบน GPU แทนที่จะเป็นซีพียู น่าเสียดายที่มันไม่ตรงไปตรงมาที่จะขนานโมเดลดังกล่าวและมันก็ไม่ชัดเจนเลยสำหรับฉันเกี่ยวกับมัน ฉันรู้ว่ามีวรรณกรรมเกี่ยวกับเรื่องนี้ แต่ดูเหมือนว่าทั้งหมดจะมุ่งเป้าไปที่นักวิทยาศาสตร์คอมพิวเตอร์ที่ไม่ยอมใครง่ายๆที่สนใจในรายละเอียดของความซับซ้อนของอัลกอริทึมมากกว่าคนอย่างฉันที่ต้องการคำอธิบายสิ่งที่ฉันสามารถนำไปใช้ได้ ดังนั้นฉันพบว่ามันค่อนข้างจะไม่น่าสนใจ เพื่อความชัดเจนฉันไม่ได้มองหาอัลกอริธึมที่เหมาะสมที่สุดเท่าที่ฉันสามารถนำไปใช้ใน CUDA ได้อย่างรวดเร็วซึ่งมีแนวโน้มว่าจะเพิ่มความเร็วในการใช้งาน CPU อย่างมีนัยสำคัญ เวลาโปรแกรมเมอร์เป็นปัจจัย จำกัด มากกว่าเวลาคอมพิวเตอร์ในโครงการนี้ ฉันควรอธิบายด้วยว่าออโตเมติกเซลลูลาร์แบบอะซิงโครนัสค่อนข้างแตกต่างจากซิงโครนัสและเทคนิคในการซิงโครนัส CA แบบขนาน (เช่นชีวิตของคอนเวย์) ไม่สามารถดัดแปลงกับปัญหานี้ได้อย่างง่ายดาย ข้อแตกต่างคือ CA แบบซิงโครนัสจะอัปเดตทุกเซลล์พร้อมกันในทุกขั้นตอนในขณะที่อะซิงโครนัสหนึ่งจะอัปเดตภูมิภาคที่เลือกแบบสุ่มในทุกขั้นตอนตามที่อธิบายไว้ด้านล่าง แบบจำลองที่ฉันต้องการให้ขนานนั้นถูกนำไปใช้กับโครงตาข่าย (โดยปกติจะเป็นรูปหกเหลี่ยม) ประกอบด้วยเซลล์ประมาณ 100000 เซลล์ (แม้ว่าฉันต้องการใช้มากกว่านี้) และอัลกอริทึมที่ไม่ขนานกันสำหรับการใช้งานมันมีลักษณะดังนี้: เลือกคู่ของเซลล์ที่อยู่ใกล้เคียงโดยการสุ่ม คำนวณฟังก์ชัน "พลังงาน"ตามพื้นที่ใกล้เคียงรอบ ๆ เซลล์เหล่านี้Δ EΔE\Delta E ด้วยความน่าจะเป็นที่ขึ้นอยู่กับ (ด้วยพารามิเตอร์ a) ไม่ว่าจะสลับสถานะของเซลล์ทั้งสองหรือไม่ทำอะไรเลย βอี- βΔ Ee−βΔEe^{-\beta \Delta E}ββ\beta …

2
กลยุทธ์สำหรับวิธีการของนิวตันเมื่อจาโคเบียนที่ทางออกเป็นเอกพจน์
ฉันพยายามแก้ระบบสมการต่อไปนี้สำหรับตัวแปรและ (ทั้งหมดเป็นค่าคงที่):P,x1P,x1P,x_1x2x2x_2 A(1−P)2−k1x1=0AP2−k2x2=0(1−P)(r1+x1)4L1−P(r1+x2)4L2=0A(1−P)2−k1x1=0AP2−k2x2=0(1−P)(r1+x1)4L1−P(r1+x2)4L2=0\frac{A(1-P)}{2}-k_1x_1=0 \\ \frac{AP}{2}-k_2x_2=0 \\ \frac{(1-P)(r_1+x_1)^4}{L_1}-\frac{P(r_1+x_2)^4}{L_2}=0 ฉันสามารถเห็นว่าฉันสามารถเปลี่ยนระบบสมการนี้เป็นสมการเดียวของตัวแปรเดียวโดยการแก้สมการ 1 และ 2 สำหรับและตามลำดับและแทนพวกเขาเป็นสมการ 3 ในการทำเช่นนั้นฉันสามารถใช้ matlab's คำสั่งเพื่อค้นหาวิธีแก้ไข โดยใช้พารามิเตอร์ ,และผมพบว่าวิธีการแก้ปัญหาที่แท้จริงจะเป็นP(P)(P)(P)x1x1x_1x2x2x_2fzerok1=k2=1k1=k2=1k_1=k_2=1r1=r2=0.2r1=r2=0.2r_1=r_2=0.2A=2A=2A=2P=x1=x2=0.5P=x1=x2=0.5P=x_1=x_2=0.5 อย่างไรก็ตามเมื่อฉันใช้วิธีของนิวตันนำไปใช้กับระบบสมการ 3 แบบเดิม - 3 สมการการวนซ้ำไม่เคยมาบรรจบกันกับการแก้ปัญหาไม่ว่าฉันจะเริ่มใกล้ทางออกจริงมากแค่ไหน*) x∗=(P∗,x∗1,x∗2)=(0.5,0.5,0.5)x∗=(P∗,x1∗,x2∗)=(0.5,0.5,0.5)x^*=(P^*,x_1^*,x_2^*)=(0.5,0.5,0.5) ตอนแรกฉันสงสัยว่าบั๊กของฉันในการใช้วิธีการของนิวตัน หลังจากตรวจสอบหลายครั้งฉันไม่พบข้อผิดพลาด จากนั้นฉันลองใช้การคาดเดาเริ่มต้นและเห็น: Jacobian เป็นเอกพจน์ ฉันรู้ว่าจาโคเบียนที่เป็นเอกเทศสามารถลดลำดับการรวมตัว แต่ฉันไม่คิดว่ามันจะช่วยป้องกันการลู่เข้าสู่ทางออกที่แท้จริงได้ x0=x∗x0=x∗x_0=x^* ดังนั้นคำถามของฉันคือว่าจาโคเบียนของระบบที่ทางออกที่แท้จริงคือเอกพจน์: มีเงื่อนไขอื่นใดอีกบ้างที่จำเป็นในการพิสูจน์ว่าวิธีการของนิวตันจะไม่มาบรรจบกับราก? กลยุทธ์โลกาภิวัตน์ (เช่นการค้นหาบรรทัด) รับประกันการบรรจบกันแม้ว่าจาโคเบียนจะเป็นเอกเทศหรือไม่

1
ตัวแก้ PDE สำหรับการกระจายแบบดริฟท์และแบบจำลอง
ฉันพยายามจำลองโมเดลเซมิคอนดักเตอร์พื้นฐานเพื่อวัตถุประสงค์ในการสอน - เริ่มต้นจากแบบจำลองการกระจายแบบดริฟท์ ถึงแม้ว่าฉันไม่ต้องการใช้ตัวจำลองเซมิคอนดักเตอร์แบบ off-the-shelf - ฉันจะเรียนรู้โมเดล (ทั่วไปล่าสุดหรือคลุมเครือ) รุ่นอื่น แต่ฉันต้องการใช้ตัวแก้ PDE แบบปิดชั้นวาง แต่สำหรับกรณี 1D แบบง่ายโมเดลการแพร่กระจายแบบดริฟท์ยังประกอบด้วย PDE ที่ไม่ใช่เชิงเส้นจำนวนมาก: สมการความหนาแน่นกระแส J P = Q P ( x ) μ พีอี( x ) + Q D พี ∇ พีJn= qn ( x ) μnE( x ) + qDn∇ nJn=qn(x)μnE(x)+qDn∇nJ_n = q n(x) \mu_n …
12 pde 

2
มีชนิดข้อมูลที่ดีอะไรบ้างสำหรับรหัส FVM CFD ที่ไม่มีโครงสร้างของเซลล์
ฉันสนใจคำแนะนำสำหรับโครงสร้างข้อมูลที่มีประสิทธิภาพสำหรับการเรียกดูเซลล์ใน CFD ปริมาณ จำกัด บนพื้นฐานของเซลล์ ตัวอย่างหนึ่งที่ฉันพบ (ในรหัสdolfyn cfd ) เป็นเช่นนี้ (ฉันจะแสดงเซ็กเมนต์ที่เกี่ยวข้อง) ดังนั้นเราจึงมีอาร์เรย์ NFaces ซึ่งจำนวนใบหน้าสำหรับแต่ละเซลล์ถูกเก็บไว้ จากนั้น CFace array ซึ่งจับคู่หมายเลขโลคอลโลคอลกับหมายเลขใบหน้าทั่วโลก\begin{listing}do ip=1,Ncel ... do j=1,NFaces(ip) k = CFace(ip,j) ipp = Face(k)%cell1 inn = Face(k)%cell2 if( inn > 0 )then ! internal\end{listing}\begin{listing}do ip=1,Ncel ... do j=1,NFaces(ip) k = CFace(ip,j) ipp = Face(k)%cell1 inn = …

2
บูรณาการเชิงตัวเลข - การจัดการ NaNs (C / Fortran)
ฉันกำลังจัดการกับอินทิกรัลยุ่งยากที่แสดง NaNs ที่ค่าบางค่าใกล้ศูนย์และในขณะนี้ฉันกำลังจัดการกับพวกเขาค่อนข้างโหดร้ายโดยใช้คำสั่ง ISNAN ซึ่งกำหนดให้ integrand เป็นศูนย์เมื่อเกิดเหตุการณ์นี้ขึ้น ฉันลองสิ่งนี้กับไลบรารี NMS ใน FORTRAN (รูทีน q1da - q1dax ไม่แตกต่างกัน) และกับไลบรารี GSL ใน C (ใช้รูทีน QAGS) ฉันดู CQUAD (ส่วนหนึ่งของไลบรารี GSL สำหรับ C) ซึ่งออกแบบมาโดยเฉพาะเพื่อจัดการ NaNs และ INF ในอินทิเกรต แต่มีข้อมูลที่มีประโยชน์น้อยมากในการอ้างอิงและไม่มีตัวอย่างโปรแกรมออนไลน์ที่ฉันสามารถหาได้ ไม่มีใครรู้รูทีนการรวมตัวเลขอื่น ๆ สำหรับ C หรือ FORTRAN ซึ่งสามารถทำงานได้หรือไม่?
12 quadrature 

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

4
ความแม่นยำตามอำเภอใจการจำลองเชือกที่ปรับขนาดได้
ฉันพยายามจำลองวัตถุเชือก สูตรที่ฉันเข้าใจคืออาร์เรย์ของอนุภาคเชื่อมต่อกันด้วยสปริง สปริงเหล่านี้มีค่า k ที่มีขนาดใหญ่มากดังนั้นเส้นจึงเปลี่ยนรูป แต่ยืดน้อยมาก ฉันได้ข้อสรุปว่าการแก้ปัญหานี้เป็นหน้าที่ของเวลาเป็นไปไม่ได้ในรูปแบบปิดเพราะเชือกเป็นลักษณะทั่วไปของลูกตุ้ม (ซึ่งไม่ใช่รูปแบบปิด) การชำระสำหรับโซลูชันโดยประมาณแล้ว ฉันต้องการอัลกอริทึมที่ปรับขนาดได้ดี ตัวอย่างที่ฉันได้เห็นใช้การรวมกลุ่มของออยเลอร์อย่างชัดเจนหรือโดยปริยายเพื่อเคลื่อนย้ายอนุภาค สิ่งนี้ไม่ได้ปรับขนาด หากต้องการดูสิ่งนี้ให้พิจารณาเชือกที่มีโหนด n ใช้แรงขนาดใหญ่กับปลายด้านหนึ่ง เนื่องจากเชือกไม่ควรยืดมากนักความเร่งที่ปลายอีกด้านจะต้องเป็นทันที อย่างไรก็ตามด้วยการรวมกันของ Eulerian การได้รับแรงใด ๆไปยังส่วนอื่น ๆ นั้นจำเป็นต้องมีขั้นตอน n ฉันสังเกตเห็นการหลุดร่วงแบบเอ็กซ์โพเนนเชียล: ถ้าโหนดแรกเร่งจำนวนหนึ่งให้เร็วขึ้นแล้วโหนดที่อยู่ติดกันจะเร่งความเร็วให้น้อยลง (ถ้าพวกเขาเร่งความเร็วในอัตราเดียวกัน ดังนั้นโหนดที่อยู่ติดกับโหนดนั้นก็จะยิ่งช้าลง! ดังนั้นสำหรับโหนดที่อยู่ห่างออกไปการเร่งความเร็วก็เล็กน้อย สิ่งนี้นำไปสู่เชือกที่มีความยาวเหยียด หากคุณต้องการความละเอียดของการจำลองเป็นสองเท่าคุณต้องทำตามขั้นตอนเวลาที่เล็กลงเป็นสิบหรือร้อยเท่าเพื่อให้ได้พฤติกรรมที่คล้ายกัน ฉันกำลังมองหาวิธีง่าย ๆ ที่แก้ปัญหานี้ - นั่นคือการจำลองความละเอียดที่สูงขึ้นมาบรรจบกันกับการแก้ปัญหาด้วยการคำนวณพิเศษพหุนามเวลาเท่านั้น ห้องสมุดเต็มรูปแบบของเมทริกซ์และเทคนิคพีชคณิตเชิงเส้นสามารถใช้ได้ ความรู้เกี่ยวกับกลศาสตร์คลาสสิกของฉันดีมากและฉันรู้การวิเคราะห์เชิงตัวเลข
12 simulation 

1
วิธีรวมนิพจน์พหุนามกับองค์ประกอบ 3D 4-node
ฉันต้องการรวมการแสดงออกพหุนามกับองค์ประกอบ 4-node ใน 3D หนังสือหลายเล่มเกี่ยวกับ FEA ครอบคลุมกรณีที่การบูรณาการจะดำเนินการมากกว่าองค์ประกอบ non-noned แบน 4 โดยพลการ ขั้นตอนปกติในกรณีนี้คือการหา Jacobi matrix และใช้มันเป็นตัวกำหนดเพื่อเปลี่ยนพื้นฐานการรวมเป็นหนึ่งในมาตรฐานที่ฉันมีข้อ จำกัด การรวมง่ายกว่า [-1; 1] และเทคนิคการสร้างพื้นที่สี่เหลี่ยมจัตุรัส Gauss-Legendre ในคำอื่น ๆ∫Sf(x,y) dxdy∫Sf(x,y) dxdy\displaystyle\int_S f(x,y)\ \mathrm{d}x\,\mathrm{d}y\, จะลดลงเป็นรูปแบบของ∫−11∫−11f~(e,n) |det(J)|dedn∫1−1∫1−1f~(e,n) |det(J)|dedn\displaystyle\int^{-1}_{1}\int^{-1}_{1} \tilde{f}(e,n)\ \left|\det(J)\right|\,\mathrm{d}e\,\mathrm{d}n แต่ในกรณี 2D ฉันเปลี่ยนองค์ประกอบตามอำเภอใจแบนเป็นรูปทรงแบน แต่รูปทรงสี่เหลี่ยมจัตุรัส 2 คูณ 2 องค์ประกอบ 4 มิติแบบ 3 มิติไม่แบนโดยทั่วไป แต่ฉันคิดว่ามันยังสามารถแมปกับระบบพิกัด 2D ซึ่งเกี่ยวข้องกับระบบพิกัดคาร์ทีเซียน ฉันไม่สามารถหาวิธีแสดง {x, y, …

1
ทำความเข้าใจกับเงื่อนไข Wolfe สำหรับการค้นหาสายที่ไม่แน่นอน
ตาม Nocedal ไรท์ &amp; หนังสือเชิงตัวเลขการเพิ่มประสิทธิภาพ (2006) เงื่อนไขของวูล์ฟสำหรับการค้นหาสายไม่แน่นอนจะหาทิศทางเชื้อสาย ,ppp ลดลงอย่างเพียงพอ: โค้งสภาพ: ∇ f ( x + α p ) T p ≥ c 2 ∇ f ( x ) T p สำหรับ0 &lt; c 1 &lt; c 2 &lt; 1f(x+αp)≤f(x)+c1αk∇f(x)Tpf(x+αp)≤f(x)+c1αk∇f(x)Tpf(x+\alpha p)\le f(x)+c_1\alpha_k\nabla f(x)^T p∇f(x+αp)Tp≥c2∇f(x)Tp∇f(x+αp)Tp≥c2∇f(x)Tp\nabla f(x+\alpha p)^Tp\ge c_2 \nabla f(x)^T p0&lt;c1&lt;c2&lt;10&lt;c1&lt;c2&lt;10<c_1<c_2<1 ฉันสามารถดูวิธีการที่เพียงพอสภาพการลดลงของรัฐว่าค่าฟังก์ชั่นที่จุดใหม่ต้องอยู่ภายใต้สัมผัสที่x …

3
ตรวจสอบ Heuristic ของความมั่นคงเชิงตัวเลข
สมมติว่าฉันมีฟังก์ชั่นที่มีคุณค่าจริง ๆของตัวแปรบางตัวx iที่ฉันต้องการประเมินตัวเลข โดยทั่วไปสูตรสำหรับfสามารถมีผลิตภัณฑ์, ปันส่วน, ฟังก์ชั่น trancendental เป็นต้นและจะใช้เวลานานในการตรวจสอบความเสถียรเชิงตัวเลขของการวิเคราะห์ หรืออย่างน้อยก็ต้องใช้เวลาในการฝึกฝน สมมติว่าฉันไม่ได้เทียบเท่าสั้นกว่าที่มีความมั่นคง guaruanteed มีขั้นตอนวิธีการในการวิเคราะห์เสถียรภาพเชิงตัวเลขของf หรือไม่f(x1,…,xN)f(x1,…,xN)f(x_1,\ldots ,x_N)xixix_iffffff. ฉันคิดว่าการเปรียบเทียบกับผลการตกตะกอนโดยพลการที่ได้รับโดยใช้ระบบพีชคณิตของคอมพิวเตอร์ สมมติว่าฟังก์ชั่นนี้จะใช้งานใน C โดยใช้ฟังก์ชั่น stdlib และความแม่นยำเดียวหรือสองครั้ง ฉันควรเปรียบเทียบปริมาณใดกับปริมาณที่ประมาณคุณภาพของการประมาณค่าที่ จำกัด ล่วงหน้า? ฉันจะกำหนดค่าวิกฤตของตัวแปรได้อย่างไร ฉันจะเลือกคอมไพเลอร์และการปรับแต่งคอมไพเลอร์เพื่อให้ผู้อื่นสามารถสร้างผลลัพธ์ได้อย่างง่ายดายได้อย่างไร? ... ฉันรู้ว่าการตั้งค่าปัญหาน่าจะเป็นการทั่วไปเพื่อให้คำตอบที่ดี แต่ฉันก็ยังคิดว่านี่เป็นปัญหาที่พบบ่อยในวิทยาการคอมพิวเตอร์และสงสัยว่ามีการอ้างอิงที่เสนอมาตรฐานเพื่อทำการวิเคราะห์ดังกล่าว
12 stability 

1
อัลกอริทึมสำหรับระบบเชิงเส้นของ ODE
ฉันสงสัยว่า: อัลกอริทึมที่ดีที่สุดในการแก้ โดยที่คือเมทริกซ์จริง A ไม่ได้ขึ้นอยู่กับเวลาอย่างชัดเจนโดยทั่วไปกระจัดกระจาย แต่ไม่จำเป็นต้องมีแถบสี ค่าลักษณะเฉพาะของมันมีชิ้นส่วนจริงที่ไม่เป็นบวก A นั้นเป็นเส้นทแยงมุม แต่อาจมีขนาดใหญ่เกินไปที่จะทำให้เส้นทแยงมุมเต็มประสิทธิภาพdudt=Aududt=Au\begin{equation} \frac{du}{dt} = Au \end{equation}AAAn×nn×nn\times n มีกฎสี่เหลี่ยมคางหมูโดยนัยซึ่งฉันมีประสบการณ์ที่ดี (I−Δt2A)un+1=(I+Δt2A)un(I−Δt2A)un+1=(I+Δt2A)un\begin{equation} \left(I-\frac{\Delta t}{2} A\right) u_{n+1} = \left(I+\frac{\Delta t}{2} A\right) u_{n} \end{equation} วิธีการที่ชัดเจนหรือประมาณ Pade? นอกจากนี้จะมีการเปลี่ยนแปลงอย่างไรถ้ามีการเพิ่มคำที่บังคับให้กับ RHS

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