บทนำ
เพื่อประเมินอนุกรมเลจันเดอร์ (Legendre series) ที่จุดอาร์เรย์ x เราสามารถใช้เมธอด polynomial.legendre.legval() ใน NumPy พารามิเตอร์หลักมีดังนี้:
- x: หาก x เป็นลิสต์หรือทูเพิล จะถูกแปลงเป็น ndarray มิฉะนั้นจะคงค่าเดิมและถูกถือว่าเป็นสเกลาร์ (scalar) ในทั้งสองกรณี x หรือองค์ประกอบของมันต้องรองรับการบวกและคูณกับตัวเองและกับองค์ประกอบของ c
- c: อาร์เรย์ของสัมประสิทธิ์ ที่จัดเรียงโดยสัมประสิทธิ์สำหรับพจน์ดีกรี n จะอยู่ใน
c[n]หาก c เป็นมัลติมิติ ดัชนีที่เหลือจะนับพหุนามหลายพหุนาม ในกรณี 2 มิติ สัมประสิทธิ์อาจถูกคิดว่าจัดเก็บในคอลัมน์ของ c - tensor: หากเป็น True รูปทรงของอาร์เรย์สัมประสิทธิ์จะถูกขยายด้วย 1 ด้านขวา หนึ่งต่อมิติหนึ่งของ x สเกลาร์มีมิติ 0 สำหรับการกระทำนี้ ผลลัพธ์คือทุกคอลัมน์ของสัมประสิทธิ์ใน c จะถูกประเมินสำหรับทุกองค์ประกอบของ x หากเป็น False x จะถูก broadcast ไปยังคอลัมน์ของ c สำหรับการประเมิน คีย์เวิร์ดนี้มีประโยชน์เมื่อ c เป็นมัลติมิติ ค่าเริ่มต้นคือ True
ขั้นตอนการทำงาน
1. นำเข้าไลบรารีที่จำเป็น
import numpy as np
from numpy.polynomial import legendre as L
2. สร้างอาร์เรย์สัมประสิทธิ์
c = np.array([1, 2, 3])
3. แสดงอาร์เรย์
print("Our Array...\n", c)
4. ตรวจสอบมิติ
print("\nDimensions of our Array...\n", c.ndim)
5. ตรวจสอบชนิดข้อมูล
print("\nDatatype of our Array object...\n", c.dtype)
6. ตรวจสอบรูปทรง
print("\nShape of our Array object...\n", c.shape)
7. ประเมินอนุกรมเลจันเดอร์ ที่จุดอาร์เรย์ x
x = np.array([[1, 2], [3, 4]])
print("\nResult...\n", L.legval(x, c))
ตัวอย่างโค้ดสมบูรณ์
import numpy as np
from numpy.polynomial import legendre as L
# สร้างอาร์เรย์สัมประสิทธิ์
c = np.array([1, 2, 3])
# แสดงอาร์เรย์
print("Our Array...\n", c)
# ตรวจสอบมิติ
print("\nDimensions of our Array...\n", c.ndim)
# ตรวจสอบชนิดข้อมูล
print("\nDatatype of our Array object...\n", c.dtype)
# ตรวจสอบรูปทรง
print("\nShape of our Array object...\n", c.shape)
# ประเมินอนุกรมเลจันเดอร์ ที่จุดอาร์เรย์ x
x = np.array([[1, 2], [3, 4]])
print("\nResult...\n", L.legval(x, c))
ผลลัพธ์ที่คาดหวัง
Our Array...
[1 2 3]
Dimensions of our Array...
1
Datatype of our Array object...
int64
Shape of our Array object...
(3,)
Result...
[[ 6. 21.5]
[46. 79.5]]