บทความนี้ผมจะพาผู้อ่านไปเขียนโปรแกรมแก้สมการเชิงเส้นด้วย SymPy กับภาษาไพทอนกันครับ
เนื่องจากภาษาไพทอนได้มีโมดูลสารพัดประโยชน์ที่ภาษาอื่นอาจไม่มี คือ โมดูล SymPy เป็นโมดูลด้านระบบพีชคณิตคอมพิวเตอร์ในภาษาไพทอน
สามารถอ่านรายละเอียดโมดูล SymPy ได้จากบทความ คำนวณสัญลักษณ์พีชคณิตใน Python
บทความนี้ใช้ความรู้จาก เรื่อง Python Regular Expressions
ก่อนอื่นเรามาศึกษาการหาคำตอบจากสมการเชิงเส้นด้วยโมดูล SymPy กันก่อนครับ
เริ่มด้วยการ import โมดูลเข้ามา
from sympy import *
from sympy.solvers import solve
from sympy.parsing.sympy_parser import parse_expr
ในสมการ หากเราใช้ตัวแปร x , y เราต้องประกาศตัวแปรเหล่านี้ก่อนด้วยคำสั่ง
x,y = symbols('x y')
แล้วเราจะได้ตัวแปร x , y ที่พร้อมนำไปใช้ในการทำงานกับโมดูล SymPy
หาคำตอบจากสมการ ใช้คำสั่ง
solve(สมการเชิงเส้นที่จัดให้ = 0)
ตัวอย่างเช่น
print(solve(x+4-5)) #มาจากสมการ x+4=5
ผลลัพธ์
[1]
แต่หากเราไม่ต้องการย้ายข้างสมการให้ = 0 สามารถใช้คำสั่ง
print(solve(Eq(x+4,5))) #มาจากสมการ x+4=5 โดยเปลี่ยนจาก = เป็น , แทน
ผลลัพธ์
[1]
คำสั่งที่ควรรู้ คือ คำสั่ง parse_expr เป็นคำสั่ง parse จากสตริงออกมาเป็นตัวแปรที่โมดูล SymPy ยอมรับ (คำสั่ง solve ไม่ยอมรับการแก้สมการจากข้อมูลที่อยู่ในสตริง)
เรามาลงมือเขียนโปรแกรมแก้สมการเชิงเส้นด้วย SymPy กับภาษาไพทอนกันได้เลยครับ
มีโจทย์สมการเชิงเส้นโดยมีตัวแปร x , y ดังนี้
2*x+y=23
4*x-y=19
ผมต้องการหาค่า x , y มาลงมือเขียนโค้ดกันเลยครับ
ผลลัพธ์
{x: 7, y: 9}
การนำไปประยุกต์ต่อยอด
มาถึงขั้นนี้แล้ว ผู้อ่านคงนึกอะไรออกแล้ว ลองลงมือทำเลยครับ
หาเอกสารหลักของโมดูล SymPy ได้ที่ http://docs.sympy.org/latest/index.html
ติดตามบทความต่อไปนะครับ
ขอบคุณครับ
0 ความคิดเห็น:
แสดงความคิดเห็น
แสดงความคิดเห็นได้ครับ :)