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)