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

การคำนวณเครื่องหมายและลอการิทึมธรรมชาติของดีเทอร์มิแนนต์ของอาร์เรย์ใน Python


ภาพรวม

ใช้ numpy.linalg.slogdet() เพื่อคำนวณเครื่องหมาย (sign) และลอการิทึมธรรมชาติ (natural logarithm) ของดีเทอร์มิแนนต์ของเมทริกซ์

ค่าที่คืน

  • sign: เครื่องหมายของดีเทอร์มิแนนต์ สำหรับเมทริกซ์จริงเป็น 1, 0, หรือ -1 สำหรับเมทริกซ์เชิงซ้อนเป็นจำนวนเชิงซ้อนที่มีค่าสัมบูรณ์ 1 หรือ 0
  • logdet: ลอการิทึมธรรมชาตของค่าสัมบูรณ์ดีเทอร์มิแนนต์ หากดีเทอร์มิแนนต์เป็นศูนย์ sign=0 และ logdet=-Inf
  • ความสัมพันธ์: determinant = sign * exp(logdet)

ขั้นตอนการทำงาน

  1. นำเข้าไลบรารี
    import numpy as np
    
  2. สร้างเมทริกซ์
    arr = np.array([[1, 2], [3, 4]])
    
  3. ตรวจสอบคุณสมบัติ
    print("เมทริกซ์ของเรา...\n", arr)
    print("\nมิติ...\n", arr.ndim)
    print("\nชนิดข้อมูล...\n", arr.dtype)
    print("\nรูปร่าง...\n", arr.shape)
    
  4. คำนวณดีเทอร์มิแนนต์ (เพื่อเปรียบเทียบ)
    print("\nดีเทอร์มิแนนต์...\n", np.linalg.det(arr))
    
  5. คำนวณ sign และ logdet
    sign, logdet = np.linalg.slogdet(arr)
    print("\nผลลัพธ์....\n", (sign, logdet))
    

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

import numpy as np

arr = np.array([[1, 2], [3, 4]])
print("เมทริกซ์ของเรา...\n", arr)
print("\nมิติของเมทริกซ์...\n", arr.ndim)
print("\nชนิดข้อมูลของเมทริกซ์...\n", arr.dtype)
print("\nรูปร่างของเมทริกซ์...\n", arr.shape)

print("\nดีเทอร์มิแนนต์...\n", np.linalg.det(arr))

sign, logdet = np.linalg.slogdet(arr)
print("\nผลลัพธ์....\n", (sign, logdet))

ผลลัพธ์ที่คาดหวัง

เมทริกซ์ของเรา...
 [[1 2]
 [3 4]]
มิติของเมทริกซ์...
 2
ชนิดข้อมูลของเมทริกซ์...
 int64
รูปร่างของเมทริกซ์...
 (2, 2)
ดีเทอร์มิแนนต์...
 -2.0000000000000004
ผลลัพธ์....
 (-1.0, 0.6931471805599455)