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

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

2
เครื่องมือที่มีประสิทธิภาพสำหรับลาครังเจียนเสริม
ฉันต้องการที่จะแก้ปัญหาที่ไม่ใช่เชิงเส้นด้วยข้อ จำกัด ความไม่เท่าเทียมกันเชิงเส้นและฉันใช้ลากรองจ์ที่เพิ่มขึ้นด้วยคำว่าการทำให้เป็นระเบียบแบบลงโทษซึ่งเป็นที่รู้จักกันดีคือทำลายจำนวนเงื่อนไขของระบบเชิงเส้นของฉัน . ยิ่งมีเงื่อนไขการลงโทษมากเท่าใดก็ยิ่งเลวร้ายขึ้นเท่านั้น ใครจะรู้วิธีที่มีประสิทธิภาพในการกำจัดเงื่อนไขที่ไม่ดีนี้ในกรณีที่เฉพาะเจาะจงหรือไม่ จะเจาะจงมากขึ้นฉันใช้ lagrangian เติมคลาสสิกเพราะฉันมีข้อ จำกัด มากมายซึ่งโดยทั่วไปอาจซ้ำซ้อน ดังนั้นการรวมข้อ จำกัด direclty สุ่มสี่สุ่มห้าในตัวแปรแรกจึงสะดวกมาก ฉันลองใช้วิธีการที่ซับซ้อนมากขึ้นโดยใช้การกำจัดตัวแปรหรือปัจจัยพื้นฐานที่มีประสิทธิภาพบนระบบ KKT โดยตรง แต่เนื่องจากข้อ จำกัด ที่ซ้ำซ้อนฉันจึงมีปัญหาบางอย่าง ปัญหาเกี่ยวกับตัวแปรถูกจัดทำขึ้นตามลากรองจ์ของฉันในรูปแบบ L ( U , λ ) : = W ( U ) + ρ λ Tu=[u1,⋯,un]u=[u1,⋯,un]\mathbf u =[u_1,\cdots,u_n]L(u,λ):=W(u)+ρλTc(u)+ρ2c2(u)L(u,λ):=W(u)+ρλTc(u)+ρ2c2(u)\mathcal L(\mathbf u,\lambda):= \mathcal W(\mathbf u) + \rho \lambda^T \,c(\mathbf u) …

2
ค่าสัมบูรณ์ในข้อ จำกัด เชิงเส้น
ฉันมีปัญหาการปรับให้เหมาะสมต่อไปนี้ซึ่งฉันมีค่าสัมบูรณ์ในข้อ จำกัด ของฉัน: x∈Rnx∈Rn\mathbf{x} \in \mathbb{R}^nf0,f1,…,fmf0,f1,…,fm\mathbf{f}_0, \mathbf{f}_1, \ldots, \mathbf{f}_mnnnmins.t.fT0x|fT1x|≤|fT2x|≤…≤|fTmx|minf0Txs.t.|f1Tx|≤|f2Tx|≤…≤|fmTx|\begin{align} \min &\mathbf{f}_0^T \mathbf{x} \notag \\ \text{s.t.} &|\mathbf{f}_1^T \mathbf{x}| \leq |\mathbf{f}_2^T \mathbf{x}| \leq \ldots \leq |\mathbf{f}_m^T \mathbf{x}| \end{align} ฉันรู้ว่าพื้นที่ที่เป็นไปได้จะไม่นูนและฉันอาจต้องใช้ MILP ในการแก้ปัญหา ฉันกำลังมองหาตัวแปรไบนารีจำนวนน้อยที่สุดที่ฉันต้องการและการตั้งค่าที่จะแก้ปัญหา การจัดการกับค่าสัมบูรณ์เป็นเรื่องง่ายเมื่อด้านใดด้านหนึ่งของความไม่เท่าเทียมมีค่าสัมบูรณ์ (http://lpsolve.sourceforge.net/5.1/absolute.htm); กรณีนี้ดูเหมือนว่าจะซับซ้อนกว่า ขอบคุณล่วงหน้า.

1
วิธีเชิงตัวเลขสำหรับสมการชโรดิงเงอร์
เรากำลังเปรียบเทียบประสิทธิภาพของวิธีตัวเลขต่าง ๆ ที่สามารถใช้แก้สมการชโรดิงเงอร์สำหรับอะตอมไฮโดรเจนที่มีปฏิสัมพันธ์กับพัลส์เลเซอร์ที่แรง (แรงเกินกว่าที่จะใช้วิธีการก่อกวน) เมื่อใช้ชุดรูปแบบแยกส่วนสำหรับส่วนรัศมีดูเหมือนว่าคนส่วนใหญ่ (ทั้งหมด) วางอะตอมไว้ในกล่องเพียงแค่ตัดรัศมีออกด้วยค่าที่มีขนาดใหญ่และแก้ไขชุดพื้นฐานเหล่านั้น สิ่งนี้เปรียบเทียบกับการทำแผนที่ตัวแปรเรเดียลกับโดเมนที่ จำกัด แล้วทำการแยกโดเมนนั้นออก (ในกระบวนการโดยทิ้งชุดพื้นฐานส่วนใหญ่ที่มีอยู่) มีเหตุผลที่ดูเหมือนไม่มีใครทำเช่นนั้น?

3
การรวมเชิงตัวเลขของอินทิกรัลหลายมิติพร้อมขอบเขตที่รู้จัก
ฉันมีอินทิกรัลไม่เหมาะสม (2 มิติ) ผม= ∫AW( x , y)F( x , y)d x d yI=∫AW(x,y)F(x,y)dxdyI=\int_A \frac{W(x,y)}{F(x,y)}\,\mbox{d}x\mbox{d}y ที่โดเมนของการรวมมีขนาดเล็กกว่าx = [ - 1 , 1 ] , Y = [ - 1 , 1 ]แต่ต่อไป จำกัด โดยF ( x , Y ) > 0 เนื่องจากFและWราบรื่นและW ≠ 0AAAx = [ - 1 , 1 …

2
การแก้ปัญหากำลังสองน้อยที่สุดด้วยข้อ จำกัด เชิงเส้นใน Python
ฉันต้องการแก้ไข s.t.minx∥Ax−b∥22,∑ixi=1,xi≥0,∀i.minx‖Ax−b‖22,s.t.∑ixi=1,xi≥0,∀i.\begin{alignat}{1} & \min_{x}\|Ax - b\|^2_{2}, \\ \mathrm{s.t.} & \quad\sum_{i}x_{i} = 1, \\ & \quad x_{i} \geq 0, \quad \forall{i}. \end{alignat} ฉันคิดว่ามันเป็นปัญหากำลังสองซึ่งควรแก้ไขด้วยCVXOPTแต่ฉันไม่สามารถหาวิธีได้

1
ค่าใช้จ่ายของการค้นหาและการคำนวณ
ฉันสนใจในการตั้งค่าการคำนวณเพื่อตรวจสอบว่าเป็นเกณฑ์ระยะเป็นที่พอใจนั่นคือระยะห่างระหว่างเวกเตอร์และดอกไม้เวกเตอร์xเจควรจะน้อยกว่าบางค่าR ม x ข้อมูลของฉันถูกแบ่งพาร์ติชันตามตารางพิกัดฉาก เนื่องจากทางลัดของฉันมีขนาดเล็กกว่าระยะทางระหว่างจุดปลายของพิกัดที่ใกล้เคียงที่สุดเพื่อนบ้านฉันต้องการเพิ่มตัวแปร "octant" เพื่อตรวจสอบว่ามีการตั้งค่าอย่างถูกต้องหรือไม่:xixi{\bf x}_ixjxj{\bf x}_jrmaxrmaxr_{\rm max} if octant[j] in allowed_list continue ในฐานะ "ลัดวงจร" ถึง if dist(x[i], x[j]) < r_max คำถามของฉันคือการค้นหาแบบบูลีนและการเปรียบเทียบที่มีประสิทธิภาพอย่างไรเมื่อเปรียบเทียบกับการดำเนินการทศนิยม? สิ่งนี้คุ้มค่าที่จะทำกับสถาปัตยกรรมสมัยใหม่หรือไม่?
12 efficiency 

2
วิธีการสลายตัวสำหรับการแก้ปัญหาการเพิ่มประสิทธิภาพขนาดใหญ่
ฉันสงสัยว่าใครมีคำแนะนำสำหรับข้อความหรือบทความการสำรวจเกี่ยวกับวิธีการสลายตัว (เช่นแรก, คู่, Dantzig – Wolfe สลายตัว) สำหรับการแก้ปัญหาการเขียนโปรแกรมคณิตศาสตร์ขนาดใหญ่ ฉันชอบ"บันทึกย่อเกี่ยวกับวิธีการสลายตัว"ของสตีเฟ่นบอยด์และมันจะเป็นการดีมากถ้าจะหาตัวอย่างเช่นตำราเรียนที่ครอบคลุมหัวข้อนี้โดยละเอียด

3
Blaze ห้องสมุดพีชคณิตเชิงเส้น?
กระดาษ "Expression Templates Revisited: การวิเคราะห์ประสิทธิภาพของระเบียบวิธีปัจจุบัน" ใน SIAM Journal of Scientific Computing อ้างถึงห้องสมุดพีชคณิตเชิงเส้น "Blaze" ฉันไม่เคยได้ยินมาก่อนและดูเหมือนไม่สามารถหาข้อมูลอ้างอิงออนไลน์ได้ (การค้นหา google ที่เห็นได้ชัดกำลังให้กระดาษด้านบนคืน) แล้วห้องสมุดนี้คืออะไรและฉันจะเรียนรู้เพิ่มเติมได้ที่ไหน

2
วิธีการของนิวตันในการหาค่าเหมาะที่สุดเทียบกับการแก้ระบบสมการไม่เชิงเส้น
ฉันขอคำชี้แจงเกี่ยวกับคำถามล่าสุดเกี่ยวกับ minpackและได้รับความคิดเห็นต่อไปนี้: ระบบสมการใด ๆ นั้นเทียบเท่ากับปัญหาการหาค่าเหมาะที่สุดซึ่งเป็นสาเหตุที่วิธีการของนิวตันที่ใช้ในการหาค่าเหมาะที่สุดมีลักษณะคล้ายกับวิธีที่นิวตันใช้สำหรับการแก้ระบบสมการไม่เชิงเส้น สิ่งที่สร้างความสับสนให้ฉันเกี่ยวกับความคิดเห็นนี้ (และที่เกี่ยวข้องกับความคิดเห็นในเชิงลบเกี่ยวกับเฉพาะการไม่เชิงเส้นสี่เหลี่ยมน้อยแก้เช่น minpack) อาจจะดีที่สุดในการอธิบายตัวอย่างของวิธีการผันลาด วิธีนี้เป็นวิธีที่ใช้บังคับกับระบบx = Bมีสมมาตรบวกแน่นอนเมทริกซ์ นอกจากนี้ยังสามารถนำมาใช้ในการแก้ปัญหาทั่วไปอย่างน้อยตารางนาทีx | | A x - b | | 2สำหรับเมทริกซ์AโดยพลการAx=bAx=bAx=bAAAminx||Ax−b||2minx⁡||Ax−b||2\operatorname{min}_x||Ax-b||^2AAAแต่ไม่แนะนำให้ทำเช่นนั้น คำอธิบายอย่างหนึ่งที่ทำไมเราไม่ควรทำเช่นนี้คือจำนวนเงื่อนไขของระบบจะเพิ่มขึ้นอย่างมีนัยสำคัญ แต่ถ้าการเปลี่ยนระบบสมการให้เป็นปัญหาการหาค่าเหมาะที่สุดนั้นถือเป็นปัญหาแม้ในกรณีเชิงเส้นเหตุใดจึงเป็นปัญหาน้อยกว่าสำหรับกรณีทั่วไป ดูเหมือนว่าจะมีความเกี่ยวข้องกับการใช้อัลกอริธึมการหาค่าเหมาะที่สุดแทนการใช้ตัวแก้สแควร์สแบบไม่เชิงเส้นที่มีอายุน้อยกว่าเล็กน้อย แต่ปัญหาที่เกี่ยวข้องกับการทิ้งข้อมูลและการเพิ่มจำนวนเงื่อนไขของระบบค่อนข้างเป็นอิสระจากอัลกอริทึมการเพิ่มประสิทธิภาพที่ใช้จริงหรือไม่

4
การสร้างโปรแกรมแก้ไข / สร้างภาพระดับโมเลกุล: การเขียนโปรแกรมเชิงวัตถุโครงสร้างข้อมูลและโมเลกุล
ฉันยังใหม่กับการเขียนโปรแกรมและฉันพยายามที่จะแก้ปัญหาใหญ่ครั้งแรกของฉันและเขียนโปรแกรมใหญ่ครั้งแรกของฉัน ฉันได้ค้นหาตัวอย่างโค้ดโอเพนซอร์ซที่จะเรียนรู้ แต่จนถึงขณะนี้มีเพียงพบรหัสในภาษาที่ฉันไม่เข้าใจอย่างสมบูรณ์หรือสิ่งที่เกี่ยวข้อง แต่ยังห่างไกลเกินไปที่ฉันจะเรียนรู้จากจริง ๆ ฉันมีปัญหาในการทำตามขั้นตอนบางอย่างที่นี่ ฉันต้องการสร้างซอฟต์แวร์ง่ายๆเพื่อสร้างดัดแปลงและต่อมาเป็นตัวแทนของโมเลกุลอินทรีย์ขนาดเล็ก นี่คือการออกกำลังกายการเรียนรู้เป็นหลัก ผู้ใช้จะให้สตริง SMILES หรือเลือกจากชุดโมเลกุลเริ่มต้นพื้นฐานและจากนั้นสามารถสร้างบนโมเลกุลนั้นทั้งแบบกราฟิกหรือผ่านไวยากรณ์อินพุตข้อความ อย่างไรก็ตามฉันยังไม่ถึงจุดที่ซับซ้อน ฉันไม่เข้าใจอย่างถ่องแท้ถึงวิธีการสร้างคลาส / วัตถุเพื่อจัดเก็บโมเลกุล ดังนั้นคำถามของฉันอย่างชัดเจน: ฉันจะใช้คลาส / วัตถุเพื่อสร้างโมเลกุลในขณะที่เก็บข้อมูลในทุกระดับได้อย่างไรและฉันควรใช้โครงสร้างข้อมูลใดเป็นคุณลักษณะของวัตถุใด และวัตถุสามารถเป็นคุณลักษณะของวัตถุอื่นได้หรือไม่? นี่คือความคิดของฉันจนถึงตอนนี้ฉันกำลังคิดว่าจะมีคลาส "โมเลกุล" จากนั้นก็เป็นคลาส / คลาสย่อย "อะตอม" และคลาสย่อย "บอนด์" และอาจเป็นคลาสย่อย "FunctionalGroup" ด้วย ดูเหมือนจะเป็นจุดเริ่มต้นที่ดี แต่บางทีฉันอาจเข้าใจผิดว่า OOP และนี่เป็นสิ่งที่ไม่ดี แต่แล้วปัญหาของฉันก็ทำให้สับสน (สำหรับฉัน) แม้ว่าฉันจะมีแนวคิด / ความคิด / ชั้นเรียนเหล่านี้ทั้งหมด แต่ฉันไม่เข้าใจอย่างเต็มที่ว่าโครงสร้างข้อมูลใดที่จำเป็นสำหรับการแทนโมเลกุล รายการของอะตอมน่าจะดี รายการนั้นอาจเป็นรายการวัตถุ Atom หรือไม่ ฉันจะต้องมีวิธีในการจัดเก็บการเชื่อมต่อ เมทริกซ์ 2D …

3
สถานะปัจจุบันของศิลปะเกี่ยวกับอัลกอริธึมสำหรับการสลายตัวของค่าเอกพจน์คืออะไร?
ฉันกำลังทำงานกับเมทริกซ์ไลบรารีส่วนหัวเท่านั้นเพื่อให้ความสามารถพีชคณิตเชิงเส้นในระดับที่สมเหตุสมผลในแพคเกจที่ง่ายที่สุดเท่าที่จะเป็นไปได้และฉันพยายามสำรวจว่าสถานะปัจจุบันของศิลปะเป็นอย่างไร: การคำนวณ SVD ของ เมทริกซ์ที่ซับซ้อน ฉันกำลังสลายตัวแบบสองเฟส, การทำ bidiagonalization ตามด้วยการคำนวณค่าเอกพจน์ ตอนนี้ฉันกำลังใช้วิธีคฤหัสถ์สำหรับ bidiagonalization (ผมเชื่อว่า LAPACK ใช้นี้เช่นกัน) และผมคิดว่าเป็นเรื่องที่ดีที่จะได้รับในปัจจุบัน (ยกเว้นกรณีที่มีคนรู้ของอัลกอริทึม สำหรับมัน..). O(N2)O(N2)\mathcal{O}(N^2) การคำนวณค่าเอกพจน์อยู่ถัดไปในรายการของฉันและฉันค่อนข้างจะวนซ้ำกับสิ่งที่อัลกอริทึมทั่วไปสำหรับทำสิ่งนี้ ฉันได้อ่านที่นี่ว่าการวิจัยมุ่งไปที่วิธีผกผันการทำซ้ำที่รับประกันความเป็นเอกเทศกับความซับซ้อน ฉันสนใจที่จะได้ยินเกี่ยวกับเรื่องนั้นหรือความก้าวหน้าอื่น ๆO(N)O(N)\mathcal{O}(N)

2
Octave: คำนวณระยะห่างระหว่างเมทริกซ์สองตัวของเวกเตอร์
สมมติว่าฉันมีเมทริกซ์สองตัว Nx2, Mx2 แทน N, M 2d เวกเตอร์ตามลำดับ มีวิธีที่ง่ายและดีในการคำนวณระยะทางระหว่างเวกเตอร์แต่ละคู่ (n, m) หรือไม่? แน่นอนว่าวิธีที่ง่าย แต่ไม่มีประสิทธิภาพคือ: d = zeros(N, M); for i = 1:N, for j = 1:M, d(i,j) = norm(n(i,:) - m(j,:)); endfor; endfor; คำตอบที่ใกล้เคียงที่สุดที่ฉันพบคือbsxfunใช้เช่น: bsxfun(inline("x-y"),[1,2,3,4],[3;4;5;6]) ans = -2 -1 0 1 -3 -2 -1 0 -4 -3 -2 -1 -5 …

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

1
การนับกราฟที่มาจากการทดสอบแบบ Delaunay ในแบบ 3 มิติ
มีอัลกอริทึมที่แจกแจงกราฟที่สอดคล้องกับจุดแบ่งย่อย Delaunay ของจุดในแบบ 3 มิติหรือไม่? ถ้าเป็นเช่นนั้นจะมีพารามิเตอร์ที่มีประสิทธิภาพของรูปทรงเรขาคณิตที่สอดคล้องกับ "กราฟ Delaunay" ใด ๆ ? ฉันกำลังมองหาที่จะระบุรูปทรงเรขาคณิตที่มีเสถียรภาพทั้งหมดของโมเลกุลขององค์ประกอบที่ระบุโดยไม่ต้องมีความรู้เบื้องต้นของพันธะ ฯลฯ แก้ไข: ให้เป็นชุดของกราฟที่มีจุดยอดปล่อยเป็นแผนที่ของจุดในไปยังกราฟที่สอดคล้องกับ Delessunay tessellation ของจุดที่กล่าวไว้ในแบบ 3 มิติGNGNG_NNNND:R3N→GND:R3N→GND: \mathbb{R}^{3N} \to G_NNNNR3R3\mathbb{R}^3 ฉันจะระบุอย่างมีประสิทธิภาพได้อย่างไรD(R3N)D(R3N)D(\mathbb{R}^{3N}) ยิ่งกว่านั้นเมื่อได้รับกราฟฉันจะกำหนดพารามิเตอร์ (อย่างมีประสิทธิภาพ) ได้อย่างไรg∈Gng∈Gng\in G_nD−1(g)D−1(g)D^{-1}(g) แก้ไข: ตัวอย่างใน 2D: สำหรับ 4 คะแนนมี 2 กราฟ Delaunay 1−╲2|4−╱3 and 1|3−×−2|41−2−3╲|╱4 and 1−2|×|3−4 \begin{matrix} 1 & - & 2 & - …

2
การสร้างจุดรวมและตุ้มน้ำหนักอัตโนมัติสำหรับรูปสามเหลี่ยมและเตตราดรา
โดยทั่วไปแล้วเราจะปรึกษากระดาษหรือหนังสือเพื่อหาจุดรวมและน้ำหนักสำหรับหน่วยสามเหลี่ยมและเตตราฮัดรา ฉันกำลังมองหาวิธีในการคำนวณคะแนนและน้ำหนักดังกล่าวโดยอัตโนมัติ ตัวอย่างโค้ดMathematicaต่อไปนี้คำนวณน้ำหนักและคะแนนการรวมสำหรับองค์ประกอบหน่วยบรรทัด (รูปสี่เหลี่ยม / รูปหกเหลี่ยม): unitGaussianQuadraturePoints[points_] := Sort[x /. Solve[Evaluate[LegendreP[points, x] == 0], {x}], ! OrderedQ[N[{#1, #2}]] &]; unitGaussianQuadratureWeights[points_] := Module[{gps, f, int, integr, vars, eqns}, gps = unitGaussianQuadraturePoints[points]; f[0, 0] := 1; f[0., 0] := 1.; f[x_, n_] := x^n; int = Integrate[f[x, #], x] & /@ Range[0, …

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