SymPy - การคำนวณเชิงสัญลักษณ์
การคำนวณเชิงสัญลักษณ์หมายถึงการพัฒนาอัลกอริทึมสำหรับจัดการนิพจน์ทางคณิตศาสตร์และวัตถุทางคณิตศาสตร์อื่น ๆ การคำนวณเชิงสัญลักษณ์ผสมผสานคณิตศาสตร์เข้ากับวิทยาศาสตร์คอมพิวเตอร์เพื่อแก้นิพจน์ทางคณิตศาสตร์โดยใช้สัญลักษณ์ทางคณิตศาสตร์ ระบบพีชคณิตของคอมพิวเตอร์ (CAS) เช่น SymPy จะประเมินนิพจน์เกี่ยวกับพีชคณิตแบบตรงทั้งหมด (ไม่ใช่โดยประมาณ) โดยใช้สัญลักษณ์เดียวกับที่ใช้ในวิธีการแมนนวลแบบดั้งเดิม ตัวอย่างเช่นเราคำนวณรากที่สองของตัวเลขโดยใช้โมดูลคณิตศาสตร์ของ Python ตามที่ระบุด้านล่าง -
>>> import math
>>> print (math.sqrt(25), math.sqrt(7))
ผลลัพธ์สำหรับข้อมูลโค้ดด้านบนมีดังนี้ -
5.0 2.6457513110645907
ดังที่คุณเห็นรากที่สองของ 7 ถูกคำนวณโดยประมาณ แต่ในรากที่สองของ SymPy ของตัวเลขที่ไม่ใช่กำลังสองสมบูรณ์จะถูกปล่อยให้ไม่มีการประเมินโดยค่าเริ่มต้นตามที่ระบุด้านล่าง -
>>> import sympy
>>> print (sympy.sqrt(7))
ผลลัพธ์สำหรับข้อมูลโค้ดด้านบนมีดังนี้ -
sqrt(7)
เป็นไปได้ที่จะลดความซับซ้อนและแสดงผลลัพธ์ของการแสดงออกในเชิงสัญลักษณ์ด้วยข้อมูลโค้ดด้านล่าง -
>>> import math
>>> print (math.sqrt(12))
ผลลัพธ์สำหรับข้อมูลโค้ดด้านบนมีดังนี้ -
3.4641016151377544
คุณต้องใช้ข้อมูลโค้ดด้านล่างเพื่อดำเนินการเดียวกันโดยใช้ sympy -
##sympy output
>>> print (sympy.sqrt(12))
และผลลัพธ์สำหรับสิ่งนั้นมีดังนี้ -
2*sqrt(3)
โค้ด SymPy เมื่อรันในสมุดบันทึก Jupyter ใช้ประโยชน์จากไลบรารี MathJax เพื่อแสดงสัญลักษณ์ทางคณิตศาสตร์ในรูปแบบ LatEx แสดงอยู่ในข้อมูลโค้ดด้านล่าง -
>>> from sympy import *
>>> x=Symbol ('x')
>>> expr = integrate(x**x, x)
>>> expr
ในการดำเนินการคำสั่งด้านบนใน python shell ผลลัพธ์ต่อไปนี้จะถูกสร้างขึ้น -
Integral(x**x, x)
ซึ่งเทียบเท่ากับ
$ \ int \ mathrm {x} ^ {x} \, \ mathrm {d} x $
รากที่สองของกำลังสองที่ไม่สมบูรณ์สามารถแทนด้วย Latex ได้ดังนี้โดยใช้สัญลักษณ์ดั้งเดิม -
>>> from sympy import *
>>> x=7
>>> sqrt(x)
ผลลัพธ์สำหรับข้อมูลโค้ดด้านบนมีดังนี้ -
$ \ sqrt7 $
ระบบการคำนวณเชิงสัญลักษณ์เช่น SymPy ทำการคำนวณทุกประเภท (เช่นอนุพันธ์ปริพันธ์และขีด จำกัด แก้สมการทำงานกับเมทริกซ์) ในเชิงสัญลักษณ์ แพ็คเกจ SymPy มีโมดูลที่แตกต่างกันที่รองรับการพล็อตการพิมพ์ (เช่น LATEX) ฟิสิกส์สถิติการผสมผสานทฤษฎีจำนวนเรขาคณิตตรรกะ ฯลฯ