Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

การประเมินพหุนามที่ระบุโดยรากที่จุด x ใน Python


บทนำ

เพื่อประเมินพหุนามที่ระบุโดยราก (roots) ของมันที่จุด x ให้ใช้เมธอด polynomial.polyvalfromroots() ใน Python NumPy พารามิเตอร์แรกคือ x หาก x เป็นรายการหรือทูเพิล จะถูกแปลงเป็น ndarray มิฉะนั้นจะปล่อยไว้ كماเดิม และถูกถือว่าเป็นสเกลาร์ ในทั้งสองกรณี x หรือองค์ประกอบของมันต้องรองรับการบวกและคูณกับตัวเองและกับองค์ประกอบของ r

พารามิเตอร์ที่สอง r คืออาร์เรย์ของราก หาก r เป็นหลายมิติ ดัชนีแรกคือดัชนีราก ในขณะที่ดัชนีที่เหลือนับพหุนามหลายตัว ตัวอย่างเช่นในกรณี 2 มิติ รากของแต่ละพหุนามอาจถูกคิดว่าจัดเก็บในคอลัมน์ของ r พารามิเตอร์ที่สามคือ tensor หากเป็น True รูปร่างของอาร์เรย์รากจะถูกขยายด้วย ones ด้านขวา หนึ่งสำหรับแต่ละมิติของ x สเกลาร์มีมิติ 0 สำหรับการกระทำนี้ ผลลัพธ์คือทุกคอลัมน์ของสัมประสิทธิ์ใน r จะถูกประเมินสำหรับทุกองค์ประกอบของ x หากเป็น False x จะถูก broadcast ไปยังคอลัมน์ของ r สำหรับการประเมิน คีย์เวิร์ดนี้มีประโยชน์เมื่อ r เป็นหลายมิติ ค่าเริ่มต้นคือ True

ขั้นตอน

ขั้นแรก ให้นำเข้าไลบรารีที่จำเป็น:

from numpy.polynomial.polynomial import polyvalfromroots
import numpy as np

สร้างอาร์เรย์สัมประสิทธิ์:

c = np.array([1, 2, 3])

แสดงอาร์เรย์:

print("อาร์เรย์ของเรา...\n", c)

ตรวจสอบมิติ:

print("\nมิติของอาร์เรย์...\n", c.ndim)

ดูชนิดข้อมูล:

print("\nชนิดข้อมูลของออบเจกต์อาร์เรย์...\n", c.dtype)

ดูรูปร่าง:

print("\nรูปร่างของออบเจกต์อาร์เรย์...\n", c.shape)

เพื่อประเมินพหุนามที่ระบุโดยรากที่จุด x ให้ใช้เมธอด polynomial.polyvalfromroots() ใน Python:

print("\nผลลัพธ์...\n", polyvalfromroots(1, c))

ตัวอย่างโค้ดสมบูรณ์

from numpy.polynomial.polynomial import polyvalfromroots
import numpy as np
# สร้างอาร์เรย์สัมประสิทธิ์
c = np.array([1, 2, 3])
# แสดงอาร์เรย์
print("อาร์เรย์ของเรา...\n", c)
# ตรวจสอบมิติ
print("\nมิติของอาร์เรย์...\n", c.ndim)
# ดูชนิดข้อมูล
print("\nชนิดข้อมูลของออบเจกต์อาร์เรย์...\n", c.dtype)
# ดูรูปร่าง
print("\nรูปร่างของออบเจกต์อาร์เรย์...\n", c.shape)
# เพื่อประเมินพหุนามที่ระบุโดยรากที่จุด x ใช้ polynomial.polyvalfromroots() ใน Python NumPy
print("\nผลลัพธ์...\n", polyvalfromroots(1, c))

ผลลัพธ์

อาร์เรย์ของเรา...
 [1 2 3]
มิติของอาร์เรย์...
 1
ชนิดข้อมูลของออบเจกต์อาร์เรย์...
 int64
รูปร่างของออบเจกต์อาร์เรย์...
 (3,)
ผลลัพธ์...
 0.0