มีทางเลือกอะไรบ้างในการใช้สูตรอาหารตัวเลข [ปิด]


21

ในอดีตหนังสือสูตรอาหารที่มีตัวเลขถือเป็นการอ้างอิงมาตรฐานทองคำสำหรับอัลกอริธึมเชิงตัวเลข Fortran Edition ที่เก่าที่สุดนั้นตามมาด้วยรุ่นต่างๆใน C และ C ++ และอื่น ๆ ซึ่งจะทำให้มีความทันสมัยมากขึ้น ผ่านสิ่งเหล่านี้มันให้รหัสอ้างอิงสำหรับอัลกอริทึม state-of-the-art ของวัน

รุ่นเก่ามีให้บริการออนไลน์ฟรีทุกวันนี้

น่าเสียดายที่ฉันคิดว่าตอนนี้มันมีประโยชน์เป็นส่วนใหญ่เท่านั้นในประวัติศาสตร์โตเม การปฏิบัติของ "วิศวกรรมซอฟต์แวร์" นั้นดูเหมือนว่าล้าสมัยแล้วและเนื้อหาที่แท้จริงยังไม่ทันกับวรรณกรรม

ผู้เขียนโปรแกรมสมัยใหม่ควรมองไปที่การอ้างอิงที่ครอบคลุม แต่ยังเข้าถึงได้ในทำนองเดียวกัน


7
อัลกอรึทึมนั้นดีมากสำหรับการแก้ปัญหาทั่วไป มันคือการใช้งานของพวกเขาที่อาจปล่อยให้บางสิ่งบางอย่างเป็นที่ต้องการ แต่นั่นก็โอเคเพราะรหัสในหนังสือนั้นง่ายพอที่จะดัดแปลงให้เหมาะกับรสนิยมของคุณ การใช้งานในบทที่ค่อนข้าง "อยู่ในตัวเอง" และเป็นอิสระจาก cruft สูตรตัวเลขยังคงเป็นข้อมูลอ้างอิงที่ดีสำหรับเวลาที่คุณจำเป็นต้องใช้สิ่งที่เป็นตัวเลขพื้นฐานบางอย่าง แต่ไม่ต้องการ / ต้องการห้องสมุดหรือกรอบงานที่ซับซ้อนมากหรือมีราคาแพง
Angelo

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

5
ฉันต้องยอมรับว่ารหัส C และ C ++ ที่ให้ไว้ในหนังสือพิสูจน์อีกครั้งว่าโปรแกรมเมอร์ Fortran ที่ดีสามารถเขียนรหัส Fortran ได้ดีในภาษาใด ๆ อย่างไรก็ตามหนังสือเหล่านี้ยังคงเป็นข้อมูลอ้างอิงที่ดี คำอธิบายของอัลกอริทึมชัดเจนมาก รหัสนี้สามารถใช้งานได้นอกกรอบและถ้าหากมันขัดกับความรู้สึกของคุณคุณสามารถเขียนมันใหม่ได้ด้วยตัวเอง มันจะง่ายกว่าการใช้ตั้งแต่เริ่มต้น
Dima

12
โปรดจำไว้ว่าข้อ จำกัด ทางลิขสิทธิ์ของรหัสใน NR นั้นค่อนข้างเข้มงวด คุณได้รับอนุญาตให้ป้อนรหัสส่วนตัวเป็นระยะเวลานานถึงสิบครั้งและคุณไม่ได้รับอนุญาตให้เผยแพร่โปรแกรมที่เป็นผลลัพธ์ให้กับบุคคลอื่นหรือคอมพิวเตอร์ ในสภาพแวดล้อมการทำงานเกือบทั้งหมดหมายความว่าคุณจะต้องนำอัลกอริทึมกลับมาใช้ใหม่ดังนั้นสิ่งที่จะเป็นประโยชน์ของผู้เขียนที่จะนำเสนอ OO หรือการใช้งานที่ซับซ้อน บริการที่จัดทำโดยหนังสือเล่มนี้เป็นคำอธิบายที่ชัดเจนเกี่ยวกับอัลกอริธึมที่สำคัญไม่ใช่การให้บริการของห้องสมุดคณิตศาสตร์ที่แข็งแกร่ง
Charles E. Grant

3
ใครสนใจว่ารหัสเป็นอย่างไร ห่อมันอย่างสวยงามและไม่เคยดูเลย
David Heffernan

คำตอบ:


7

ในแง่ของสูตรเชิงตัวเลขเราต้องการสองสิ่ง - ความเข้าใจว่าอัลกอริธึมแปลไปสู่การนำไปใช้ในการเขียนโปรแกรมและที่สองคืออะไร

ดูเหมือนจะไม่มีการรวมกันของซอฟต์แวร์ BOOK + Reference อย่างไรก็ตามมีซอฟต์แวร์อ้างอิงที่ดีอยู่บ้างและบางส่วนก็ให้การอ้างอิงไปยังเอกสารบนพื้นฐานของอัลกอริทึมดังกล่าว

นี่คือรายการของการอ้างอิงบางส่วน (ส่วนใหญ่เป็นโอเพ่นซอร์ส) ห้องสมุดที่อาจช่วยได้:

  1. ห้องสมุดวิทยาศาสตร์ GNU
  2. LAPACKมันมีหนังสือที่ดีเป็นคู่มือผู้ใช้ นอกจากนี้ยังมีLAPACK ++และแพคเกจอื่น ๆ (TNT) ที่ได้รับ / TNT ดูสิ่งนี้สำหรับข้อมูลเพิ่มเติม
  3. เพิ่มพีชคณิตเชิงเส้น
  4. ตัวนิ่ม
  5. หน่าย

สิ่งที่เฉพาะเจาะจงอื่น ๆ คือ

  1. Apopheniaสำหรับแบบจำลองทางสถิติ
  2. เด็กผู้ชายที่อ่อนหัด
  3. FFTW
  4. แพ็คเกจ R - และหนังสือ
  5. OpenCV
  6. ไลบรารีเคอร์เนล Intel Math
  7. สำหรับการจดจำรูปแบบ

นอกจากนี้คุณยังสามารถดู " การวิเคราะห์ข้อมูลด้วยเครื่องมือโอเพนซอร์ส "

นี่คือรายการเปรียบเทียบขนาดใหญ่ แต่ฉันยังไม่ได้ยืนยันทุกอย่าง
http://www.netlib.org/utk/people/JackDongarra/la-sw.html


4

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

สิ่งหนึ่งที่ฉันไม่เคยใช้คือรหัสของพวกเขา ฉันมักจะเขียนการใช้งานของตนเองตามอัลกอริทึมที่อธิบาย ในเรื่องคุณภาพของรหัสนั้นไม่สำคัญ (และเป็นที่น่าสงสัยแน่นอน: ในหนังสือซีรุ่นที่ 2 พวกเขากำหนดกลุ่มของฟังก์ชั่นและมาโครเพื่อจัดทำดัชนีหน่วยอาร์เรย์เนื่องจากผู้เขียนมาจากพื้นหลังของ Fortran) ตัวอย่างเช่นฉันเคยต้องใช้ FFT ใน Objective-C ดังนั้นฉันจึงใช้ NR ใน Fortran เพื่อทำความเข้าใจว่า FFT ทำอะไรได้บ้างและควรดูรหัสอย่างไร

คิดว่า NR เป็นวิธีเดียวกับที่คุณคิดว่า Knuth: คุณจะไม่วางโค้ดจากหนังสือเล่มนั้นลงในโครงการของคุณ


3

ส่วนตัวฉันชอบมันมันเป็นเรื่องเกี่ยวกับระดับที่ฉันสามารถเข้าใจ

รหัสคือ Fortran แปลเป็น 'C' แต่ก็ไม่เป็นไรคุณสามารถแปลมันกลับไปที่ Fortran แล้วเปลี่ยนเป็น C ++ ด้วยตัวคุณเอง! มีข้อดีสำหรับเวอร์ชั่น Fortran หรือ C ที่โค้ดมีอยู่ในตัวเองคุณไม่จำเป็นต้องลากคลาส C ++ เพื่อทำเมทริกซ์คอมเพล็กซ์ ฯลฯ โดยเฉพาะอย่างยิ่งคุณภาพการเข้ารหัสของพวกเขา!

มีผู้คัดค้านการอ้างสิทธิ์อันน่าหัวเราะจากผู้เขียนและฉันรู้ว่ามีอาจารย์จำนวนมากที่สั่งห้ามไม่ให้เข้าเรียนในชั้นเรียนของพวกเขา ในบรรดาผู้เชี่ยวชาญด้านตัวเลขหนังสือก็มีชื่อเสียงในฐานะ "ข้อมูลที่เพียงพอที่จะทำให้คุณเดือดร้อน" แต่โดยทั่วไปข้อเสนอแนะของพวกเขาคือการใช้รหัสส่วนตัวหรือซื้อ NAG

คอลเลกชันที่แนะนำของ libs ตัวเลขคุณภาพสูงสำรองอยู่ที่http://www.netlib.org/

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