SymPy - ฟังก์ชัน Lambdify ()
ฟังก์ชัน lambdify แปลนิพจน์ SymPy เป็นฟังก์ชัน Python หากต้องประเมินนิพจน์ในช่วงของค่าที่มากฟังก์ชัน evalf () จะไม่มีประสิทธิภาพ lambdify ทำหน้าที่เหมือนฟังก์ชันแลมด้ายกเว้นว่าจะแปลงชื่อ SymPy เป็นชื่อของไลบรารีตัวเลขที่กำหนดโดยปกติจะเป็น NumPy โดยค่าเริ่มต้น lambdify ในการใช้งานในไลบรารีมาตรฐานคณิตศาสตร์
>>> expr=1/sin(x)
>>> f=lambdify(x, expr)
>>> f(3.14)
ข้อมูลโค้ดด้านบนให้ผลลัพธ์ต่อไปนี้ -
627.8831939138764
นิพจน์อาจมีมากกว่าหนึ่งตัวแปร ในกรณีนั้นอาร์กิวเมนต์แรกของฟังก์ชัน lambdify () คือรายการของตัวแปรตามด้วยนิพจน์ที่จะประเมิน
>>> expr=a**2+b**2
>>> f=lambdify([a,b],expr)
>>> f(2,3)
ข้อมูลโค้ดด้านบนให้ผลลัพธ์ต่อไปนี้ -
13
อย่างไรก็ตามในการใช้ประโยชน์จากไลบรารี numpy เป็นแบ็กเอนด์ตัวเลขเราต้องกำหนดเช่นเดียวกับอาร์กิวเมนต์สำหรับฟังก์ชัน lambdify ()
>>> f=lambdify([a,b],expr, "numpy")
เราใช้อาร์เรย์ numpy สองตัวสำหรับอาร์กิวเมนต์ a และ b สองตัวในฟังก์ชันข้างต้น เวลาดำเนินการเร็วมากในกรณีที่อาร์เรย์จำนวนนับ
>>> import numpy
>>> l1=numpy.arange(1,6)
>>> l2=numpy.arange(6,11)
>>> f(l1,l2)
ข้อมูลโค้ดด้านบนให้ผลลัพธ์ต่อไปนี้ -
array([ 37, 53, 73, 97, 125], dtype=int32)