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

ประเด็นที่เกี่ยวข้องกับการแสดงปริมาณตัวเลขในการแทนค่า จำกัด ในฐานที่กำหนดซึ่งแตกต่างจากค่าทางคณิตศาสตร์ที่แน่นอน

17
มีตัวแก้ปัญหาการเขียนโปรแกรมแบบไม่เชิงเส้นคุณภาพสูงสำหรับ Python หรือไม่?
ฉันมีปัญหาการเพิ่มประสิทธิภาพทั่วโลกที่ไม่ท้าทายเพื่อแก้ปัญหา ปัจจุบันผมใช้กล่องเครื่องมือเพิ่มประสิทธิภาพของ MATLAB (โดยเฉพาะfmincon()กับอัลกอริทึม = 'sqp') ซึ่งมีประสิทธิภาพมาก อย่างไรก็ตามรหัสของฉันส่วนใหญ่อยู่ใน Python และฉันก็ชอบที่จะเพิ่มประสิทธิภาพใน Python ด้วยเช่นกัน มีตัวแก้ NLP ที่มีการผูก Python ที่สามารถแข่งขันได้fmincon()หรือไม่ มันจะต้อง สามารถรับมือกับความไม่เสมอภาคและความไม่เท่าเทียมกันได้ ไม่ต้องการให้ผู้ใช้จัดหายาโคบ ไม่เป็นไรหากไม่รับประกันว่าจะมีประสิทธิภาพระดับโลก ( fmincon()ไม่) fmincon()ฉันกำลังมองหาบางสิ่งบางอย่างที่ทนทานลู่ไปยังท้องถิ่นที่เหมาะสมแม้สำหรับความท้าทายปัญหาและแม้ว่ามันจะช้ากว่าเล็กน้อย ฉันได้พยายามแก้หลายที่ให้บริการผ่าน OpenOpt และพบว่าพวกเขาจะด้อยกว่าของ fmincon/sqpMATLAB เพียงเพื่อเน้นฉันมีสูตรเวิ้งว้างและแก้ปัญหาที่ดี เป้าหมายของฉันคือการเปลี่ยนภาษาเพื่อให้เวิร์กโฟลว์มีความคล่องตัวมากขึ้น เจฟฟ์ชี้ให้เห็นว่าคุณลักษณะบางอย่างของปัญหาอาจเกี่ยวข้องกัน พวกเขาคือ: 10-400 ตัวแปรการตัดสินใจ 4-100 ข้อ จำกัด ความเท่าเทียมกันของพหุนาม (ดีกรีพหุนามมีช่วงตั้งแต่ 1 ถึงประมาณ 8) จำนวนข้อ จำกัด ของความไม่เท่าเทียมกันที่มีเหตุผลเท่ากับจำนวนตัวแปรการตัดสินใจประมาณสองเท่า ฟังก์ชั่นวัตถุประสงค์เป็นหนึ่งในตัวแปรการตัดสินใจ ชาวจาโคเบียนแห่งข้อ จำกัด ความเท่าเทียมมีความหนาแน่นสูงเช่นเดียวกับชาวจาโคเบียนแห่งข้อ จำกัด …

6
ปัญหา n-body ความโน้มถ่วงสามารถแก้ไขในแบบคู่ขนานได้อย่างไร?
ปัญหา n-body ความโน้มถ่วงสามารถแก้ไขเป็นตัวเลขแบบขนานได้อย่างไร? การแลกเปลี่ยนความซับซ้อนที่มีความแม่นยำเป็นไปได้หรือไม่? ความแม่นยำมีอิทธิพลต่อคุณภาพของรุ่นอย่างไร

3
อะไรคือสิ่งที่ล้ำสมัยที่สุดในการคำนวณแบบอินทิกรัลแบบผันผวนสูง?
อะไรคือสิ่งที่ล้ำสมัยในการประมาณอินทิกรัลของการแกว่งสูงทั้งในมิติเดียวและมิติที่สูงกว่าเพื่อความแม่นยำตามอำเภอใจ?

1
การคำนวณทางวิทยาศาสตร์ด้วย Python พร้อม GPU ที่ทันสมัยพร้อมความแม่นยำสองเท่า
มีใครบ้างที่นี่ใช้การคำนวณทางวิทยาศาสตร์ที่มีความแม่นยำสองเท่ากับ GPU รุ่นใหม่ (เช่น K20) ผ่าน Python หรือไม่? ฉันรู้ว่าเทคโนโลยีนี้กำลังพัฒนาอย่างรวดเร็ว แต่วิธีที่ดีที่สุดในการทำสิ่งนี้ในปัจจุบันคืออะไร? GPU อยู่นอกขอบเขตสำหรับห้องสมุด Python ทางวิทยาศาสตร์ที่ได้รับความนิยมจำนวนมากและ scipy และฉันต้องการใช้ theano แต่ดูเหมือนว่าจะใช้ความแม่นยำ float32 เท่านั้นสำหรับ GPU ฉันรู้ว่า Google สามารถให้ผลลัพธ์การค้นหาสำหรับ python gpu ได้ แต่ฉันหวังว่าจะได้ข้อมูลเชิงลึกมากกว่ารายการโครงการที่อาจจะใช่หรือไม่ใช่ในการพบปะกับผู้สร้าง
14 python  gpu  precision 

2
วิธีการคำนวณมุมที่มีเสถียรภาพของตัวเลขระหว่างเวกเตอร์
เมื่อใช้สูตรคลาสสิกสำหรับมุมระหว่างสองเวกเตอร์: α=arccosv1⋅v2∥v1∥∥v2∥α=arccos⁡v1⋅v2‖v1‖‖v2‖\alpha = \arccos \frac{\mathbf{v_1} \cdot \mathbf{v_2}}{\|\mathbf{v_1}\| \|\mathbf{v_2}\|} หนึ่งพบว่าสำหรับมุมเล็ก / เฉียบพลันมากมีการสูญเสียความแม่นยำและผลลัพธ์ไม่ถูกต้อง ดังที่อธิบายไว้ในคำตอบของ Stack Overflow คำตอบเดียวคือใช้อาร์กแทนเจนต์แทน: α=arctan2(∥v1×v2∥,v1⋅v2)α=arctan⁡2(‖v1×v2‖,v1⋅v2)\alpha = \arctan2 \left(\|\mathbf{v_1} \times \mathbf{v_2}\|, \mathbf{v_1} \cdot \mathbf{v_2} \right) และสิ่งนี้ย่อมให้ผลลัพธ์ที่ดีกว่า อย่างไรก็ตามฉันสงสัยว่าสิ่งนี้จะให้ผลที่ไม่ดีกับมุมที่อยู่ใกล้กับπ/2π/2\pi / 2หรือไม่ เป็นอย่างนั้นเหรอ? ถ้าเป็นเช่นนั้นมีสูตรใดที่จะคำนวณมุมอย่างแม่นยำโดยไม่ตรวจสอบความอดทนภายในifสาขาหรือไม่?

2
ทำไมระบบเชิงเส้นที่ไม่มีเงื่อนไขสามารถแก้ไขได้อย่างแม่นยำ?
ตามคำตอบที่นี่หมายเลขเงื่อนไขขนาดใหญ่ (สำหรับการแก้ปัญหาระบบเชิงเส้น) ลดจำนวนรับประกันของตัวเลขที่ถูกต้องในการแก้ปัญหาจุดลอยตัว เมทริกซ์ความแตกต่างของการสั่งซื้อที่สูงขึ้นในวิธี pseudospectral มักจะมีเงื่อนไขที่ไม่ดีมาก ทำไมเป็นเช่นนั้นพวกเขายังคงวิธีการที่แม่นยำมาก? ฉันเข้าใจว่าความแม่นยำต่ำที่มาจากเมทริกซ์ที่ไม่มีเงื่อนไขนั้นเป็นเพียงค่ารับประกันแต่ก็ยังทำให้ฉันสงสัยว่าทำไมเมทริกซ์ที่ไม่ดีนั้นถูกแก้ไขอย่างแม่นยำโดยวิธีการโดยตรงในทางปฏิบัติเช่นLCOLคอลัมน์ของตาราง 3.1 ในหน้า 11 ของWang et al. วิธีการจัดเก็บภาษีแบบมีเงื่อนไขโดยใช้การบูรณาการ PSEUDOSPECTRAL MATRIX , SIAM J. Sci คอมพิวเต. 36 (3)

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

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

4
ผลลัพธ์เล็ก ๆ ที่คาดเดาไม่ได้ในการรันโมเดลที่กำหนดไว้
ฉันมีโมเดลขนาดใหญ่ (~ 5,000 บรรทัด) เขียนด้วย C มันเป็นโปรแกรมอนุกรมที่ไม่มีการสร้างหมายเลขสุ่มใด ๆ มันใช้ไลบรารี FFTW สำหรับฟังก์ชั่นที่ใช้ FFT - ฉันไม่ทราบรายละเอียดของการใช้งาน FFTW แต่ฉันคิดว่าฟังก์ชั่นในนั้นนั้นถูกกำหนดไว้ด้วย (แก้ไขฉันถ้าฉันผิด) ปัญหาที่ฉันไม่เข้าใจคือฉันได้รับความแตกต่างเล็กน้อยในผลลัพธ์สำหรับการทำงานที่เหมือนกันในเครื่องเดียวกัน (คอมไพเลอร์เดียวกันไลบรารีเดียวกัน) ฉันใช้ตัวแปรความแม่นยำสองเท่าและเพื่อผลลัพธ์ผลลัพธ์ในตัวแปรvalueเช่นฉันออก: fprintf(outFID, "%.15e\n", value);หรือ fwrite(&value, 1, sizeof(double), outFID); และฉันจะได้รับความแตกต่างอย่างต่อเนื่องเช่น: 2.07843469652206 4 e-16 กับ 2.07843469652206 3 e-16 ฉันใช้เวลามากในการพยายามหาสาเหตุว่าทำไม ตอนแรกฉันคิดว่าชิปหน่วยความจำตัวหนึ่งของฉันเสียไปแล้วและฉันก็สั่งและเปลี่ยนมันให้เป็นประโยชน์ ต่อมาฉันก็ลองรันโค้ดของฉันบนเครื่อง Linux ของเพื่อนร่วมงานและฉันก็มีความแตกต่างในลักษณะเดียวกัน สิ่งใดที่ทำให้เกิดสิ่งนี้ มันเป็นปัญหาเล็ก ๆ ในตอนนี้ แต่ฉันสงสัยว่ามันเป็น "เคล็ดลับของภูเขาน้ำแข็ง" (ของปัญหาร้ายแรง) ฉันคิดว่าฉันจะโพสต์ที่นี่แทน StackOverflow ในกรณีที่มีคนทำงานกับแบบจำลองตัวเลขอาจเจอปัญหานี้ …

2
เส้นทแยงมุมของเมทริกซ์ปรับสภาพที่ป่วยหนัก
ฉันกำลังพยายามที่จะทำให้เมทริกซ์ที่มีความหนาแน่นและไม่มีเงื่อนไขอยู่ในแนวทแยง ในความแม่นยำของเครื่องผลลัพธ์จะไม่ถูกต้อง (คืนค่าลักษณะลบที่เป็นลบ eigenvector ไม่มีความสมมาตรที่คาดหวัง) ฉันเปลี่ยนไปใช้ฟังก์ชัน Eigensystem [] ของ Mathematica เพื่อใช้ประโยชน์จากความแม่นยำโดยพลการ แต่การคำนวณช้ามาก ฉันเปิดให้โซลูชั่นจำนวนมาก มีแพ็คเกจ / อัลกอริทึมที่เหมาะสมกับปัญหาที่ไม่ดีหรือไม่? ฉันไม่ใช่ผู้เชี่ยวชาญเรื่องการปรับสภาพล่วงหน้าดังนั้นฉันจึงไม่แน่ใจว่าจะสามารถช่วยได้มากแค่ไหน ไม่อย่างนั้นทั้งหมดที่ฉันสามารถนึกได้ก็คือตัวแก้ค่าแบบเฉพาะเจาะจงที่มีความแม่นยำแบบขนาน เพื่อให้พื้นหลังเกี่ยวกับปัญหาเมทริกซ์มีขนาดใหญ่ แต่ไม่ใหญ่มาก (4096x4096 ถึง 32768x32768 มากที่สุด) พวกเขาเป็นจริงสมมาตรและค่าลักษณะเฉพาะถูกล้อมรอบระหว่าง 0 และ 1 (พิเศษ) โดยที่ค่าลักษณะเฉพาะจำนวนมากอยู่ใกล้กับ 0 และไม่มีใครใกล้กับ 1 เมทริกซ์เป็นตัวดำเนินการสังวัตนา ฉันไม่ต้องการทำให้เมทริกซ์ของฉันเป็นเส้นทแยงมุม แต่ยิ่งฉันไปได้มากเท่าไหร่ ฉันสามารถเข้าถึงกลุ่มคอมพิวเตอร์ที่มีโปรเซสเซอร์จำนวนมากและความสามารถในการคำนวณแบบกระจาย ขอบคุณ

2
เป็นตัวแทนของตัวเลข Eisenstein โดยไม่ต้องลอย
ผมมีโครงการที่ฉันจำเป็นต้องใช้เขตการกำลังสอง โดยเฉพาะตัวเลขของแบบฟอร์มกับ{Q}a+b−3−−−√a+b−3a + b \sqrt{-3}a,b∈Qa,b∈Qa,b \in \mathbb{Q} ตัวอย่างเช่นที่นี่มีจำนวนเฉพาะในจำนวนเต็ม Eisenstein : ฉันไม่ต้องการใช้ปัญญาชน ฉันต้องการเขียนชนิดข้อมูลของตัวเองเพื่อรวมเข้าnumpyด้วยกัน PARI จะมีประโยชน์ - แต่มันเข้ากันไม่ได้กับ Python ส่วนเพิ่มเติมสำหรับวัตถุเหล่านี้ค่อนข้างชัดเจน(a1+b1−3−−−√)+(a2+b2−3−−−√)=(a1+a2)+(b1+b2)−3−−−√(a1+b1−3)+(a2+b2−3)=(a1+a2)+(b1+b2)−3(a_1 + b_1 \sqrt{-3}) + (a_2 + b_2 \sqrt{-3}) = (a_1 + a_2) + (b_1+b_2) \sqrt{-3} การคูณนั้นละเอียดอ่อนกว่าเล็กน้อย แต่เราก็สามารถเขียนโค้ดได้ยากเช่นกัน (a1+b1−3−−−√)×(a2+b2−3−−−√)=(a1a2−3b1b2)+(a1b2+a2b1)−3−−−√(a1+b1−3)×(a2+b2−3)=(a1a2−3b1b2)+(a1b2+a2b1)−3(a_1 + b_1 \sqrt{-3}) \times (a_2 + b_2 \sqrt{-3}) = (a_1 a_2 - 3 b_1 …

2
เลขทศนิยมที่มีความแม่นยำสูงขึ้นใน PDE ที่เป็นตัวเลข
ฉันมีความประทับใจจากแหล่งข้อมูลที่แตกต่างกันมากและพูดคุยกับงานวิจัยว่ามีความต้องการเพิ่มขึ้นสำหรับการคำนวณที่มีความแม่นยำสูงในสมการเชิงอนุพันธ์ย่อยเชิงตัวเลข ที่นี่ความแม่นยำสูงหมายถึงความแม่นยำมากกว่าความแม่นยำมาตรฐาน 64 บิตสองเท่า ฉันสงสัยเกี่ยวกับสถานะของศิลปะของหัวข้อนี้ จากการเปรียบเทียบมีชุมชนอยู่ใน PDE เชิงตัวเลขซึ่งมีเป้าหมายเฉพาะเช่นวิธีมัลติคอร์การขนานขนาดใหญ่หรือการคำนวณ GPU ฉันสงสัยว่ามีชุมชนที่คล้ายกันอยู่หรือเติบโตขึ้นสำหรับวิธีการที่มีความแม่นยำสูงในเชิงตัวเลขและฉันจะสนใจโดยเฉพาะ (และนี่คือประเด็นที่แท้จริงของคำถาม) ในเอกสารเกริ่นนำ ของความเกี่ยวข้องที่แท้จริงของหัวข้อ
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.