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) ฟิสิกส์สถิติการผสมผสานทฤษฎีจำนวนเรขาคณิตตรรกะ ฯลฯ