คำถามติดแท็ก scipy

1
เมื่อใดที่ Newton-Krylov ไม่ได้เป็นนักแก้ปัญหาที่เหมาะสม?
เมื่อเร็ว ๆ นี้ฉันได้ทำการเปรียบเทียบตัวแก้ปัญหาที่ไม่ใช่เชิงเส้นที่แตกต่างจาก scipyและรู้สึกประทับใจเป็นพิเศษกับตัวอย่างของNewton-Krylov ใน Scipy Cookbookซึ่งพวกเขาแก้สมการเชิงอนุพันธ์อันดับสองกับคำที่ไม่เป็นเชิงเส้นในโค้ดประมาณ 20 บรรทัด ฉันแก้ไขโค้ดตัวอย่างเพื่อแก้สมการปัวซองที่ไม่ใช่เชิงเส้น ( เรียกอีกอย่างว่าสมการปัวซอง - โบลซ์มันน์ดูหน้า 17 ในบันทึกเหล่านี้) สำหรับเซมิคอนดักเตอร์ heterostructures ซึ่งมีรูปแบบ d2φdx2- k ( x ) ( p ( x , ϕ ) - n ( x , ϕ ) + N+( x ) ) = 0d2φdx2-k(x)(พี(x,φ)-n(x,φ)+ยังไม่มีข้อความ+(x))=0 \frac{d^2\phi}{dx^2} - k(x) \left(p(x,\phi) - …

1
จาโคเบียนที่ประมาณด้วยความแตกต่างที่แน่นอนสามารถทำให้เกิดความไม่เสถียรในวิธีการของนิวตันได้หรือไม่?
ฉันใช้ตัวแก้แบบย้อนกลับ - ออยเลอร์ในไพ ธ อน 3 (โดยใช้หมายเลข) เพื่อความสะดวกของฉันและเป็นแบบฝึกหัดฉันยังเขียนฟังก์ชั่นเล็ก ๆ ที่คำนวณความแตกต่างอัน จำกัด ของการไล่ระดับสีเพื่อที่ฉันจะได้ไม่ต้องพิจารณาจาโคเบียนในเชิงวิเคราะห์ (ถ้าเป็นไปได้!) ใช้คำอธิบายที่มีให้ในAscher และ Petzold 1998ฉันเขียนฟังก์ชันนี้ซึ่งกำหนดระดับความลาดชัน ณ จุดที่กำหนด x: def jacobian(f,x,d=4): '''computes the gradient (Jacobian) at a point for a multivariate function. f: function for which the gradient is to be computed x: position vector of the point for …

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 นาที!

1
อัลกอริทึมสมดุลเมทริกซ์
ฉันได้รับการเขียนกล่องเครื่องมือระบบการควบคุมจากรอยขีดข่วนและหมดจดใน Python3 (เสียบด้านหน้า: harold) จากการวิจัยที่ผ่านมาของฉันฉันมักจะบ่นเกี่ยวกับนักแก้ปัญหา Riccati care.mด้วยเหตุผลที่เป็นเทคนิค / ไม่เกี่ยวข้อง ดังนั้นฉันได้เขียนชุดคำสั่งของตัวเอง balance.mสิ่งหนึ่งที่ผมไม่สามารถหาวิธีรอบคือการได้รับขั้นตอนวิธีการสมดุลและมีประสิทธิภาพสูงอย่างน้อยดีเท่า ก่อนที่คุณจะพูดถึงมันxGEBALในครอบครัวเป็นที่เปิดเผยใน SciPy และคุณโดยทั่วไปสามารถโทรจาก SciPy ดังต่อไปนี้สมมติว่าคุณมีชนิดลอย 2D อาร์เรย์A: import scipy as sp gebal = sp.linalg.get_lapack_funcs(('gebal'),(A,)) # this picks up DGEBAL Ab, lo, hi, scaling , info = gebal(A, scale=1 , permute=1 , overwrite_a=0 ) ตอนนี้ถ้าฉันใช้เมทริกซ์ทดสอบต่อไปนี้ array([[ 6. , 0. , …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.