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

สร้างเมทริกซ์ Pseudo Vandermonde ของพหุนาม Laguerre และจุดตัวอย่าง x, y, z ใน Python


ในการสร้างเมทริกซ์ Vandermonde หลอกของพหุนาม Laguerre ที่มีจุดตัวอย่าง x, y, z ให้ใช้ laguerre.lagvander3d() ใน Python Numpy พารามิเตอร์ x, y, z คืนค่า Array of points dtype จะถูกแปลงเป็น float64 หรือ complex128 ขึ้นอยู่กับว่าองค์ประกอบใดมีความซับซ้อน ถ้า x เป็นสเกลาร์ จะถูกแปลงเป็นอาร์เรย์ 1 มิติ พารามิเตอร์ deg คือรายการองศาสูงสุดของรูปแบบ [x_deg, y_deg, z_deg]

ขั้นตอน

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

import numpy as np
from numpy.polynomial import laguerre as L

สร้างอาร์เรย์ของพิกัดจุด ซึ่งมีรูปร่างเหมือนกันทั้งหมดโดยใช้วิธี numpy.array() -

x = np.array([1, 2])
y = np.array([3, 4])
z = np.array([5, 6])

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

print("Array1...\n",x)
print("\nArray2...\n",y)
print("\nArray3...\n",z)

แสดงประเภทข้อมูล -

print("\nArray1 datatype...\n",x.dtype)
print("\nArray2 datatype...\n",y.dtype)
print("\nArray3 datatype...\n",z.dtype)

ตรวจสอบขนาดของอาร์เรย์ทั้งสอง -

print("\nDimensions of Array1...\n",x.ndim)
print("\nDimensions of Array2...\n",y.ndim)
print("\nDimensions of Array3...\n",z.ndim)

ตรวจสอบรูปร่างของอาร์เรย์ทั้งสอง -

print("\nShape of Array1...\n",x.shape)
print("\nShape of Array2...\n",y.shape)
print("\nShape of Array3...\n",z.shape)

ในการสร้างเมทริกซ์ Vandermonde หลอกของพหุนาม Laguerre ด้วยจุดตัวอย่าง x, y, z ให้ใช้ laguerre.lagvander3d() ใน Python -

x_deg, y_deg, z_deg = 2, 3, 4
print("\nResult...\n",L.lagvander3d(x,y,z, [x_deg, y_deg, z_deg]))

ตัวอย่าง

import numpy as np
from numpy.polynomial import laguerre as L

# Create arrays of point coordinates, all of the same shape using the numpy.array() method
x = np.array([1, 2])
y = np.array([3, 4])
z = np.array([5, 6])

# Display the arrays
print("Array1...\n",x)
print("\nArray2...\n",y)
print("\nArray3...\n",z)

# Display the datatype
print("\nArray1 datatype...\n",x.dtype)
print("\nArray2 datatype...\n",y.dtype)
print("\nArray3 datatype...\n",z.dtype)

# Check the Dimensions of both the arrays
print("\nDimensions of Array1...\n",x.ndim)
print("\nDimensions of Array2...\n",y.ndim)
print("\nDimensions of Array3...\n",z.ndim)

# Check the Shape of both the arrays
print("\nShape of Array1...\n",x.shape)
print("\nShape of Array2...\n",y.shape)
print("\nShape of Array3...\n",z.shape)

# To generate a pseudo Vandermonde matrix of the Laguerre polynomial with x, y, z sample points, use the laguerre.lagvander3d() in Python Numpy

x_deg, y_deg, z_deg = 2, 3, 4
print("\nResult...\n",L.lagvander3d(x,y,z, [x_deg, y_deg, z_deg]))

ผลลัพธ์

Array1...
   [1 2]

Array2...
   [3 4]

Array3...
   [5 6]

Array1 datatype...
int64

Array2 datatype...
int64

Array3 datatype...
int64

Dimensions of Array1...
1

Dimensions of Array2...
1

Dimensions of Array3...
1

Shape of Array1...
(2,)

Shape of Array2...
(2,)

Shape of Array3...
(2,)

Result...
   [[ 1.       -4.          3.5          2.66666667 -1.29166667
     -2.        8.          -7.         -5.33333333  2.58333333
     -0.5       2.          -1.75       -1.33333333  0.64583333
      1.       -4.          3.5          2.66666667 -1.29166667
      0.       -0.           0.          0.         -0.
     -0.        0.          -0.         -0.          0.
     -0.        0.          -0.         -0.          0.
      0. -      0.           0.          0.         -0.
    -0.5        2.          -1.75       -1.33333333  0.64583333
    1.         -4.           3.5         2.66666667 -1.29166667
    0.25       -1.           0.875       0.66666667 -0.32291667
   -0.5         2.          -1.75       -1.33333333  0.64583333]
  [ 1.         -5.           7.          1.         -5.
   -3.         15.          -21.        -3.         15.
    1.         -5.           7.          1.         -5.
    2.33333333 -11.66666667 16.33333333  2.33333333 -11.66666667
   -1.          5.         -7.          -1.          5.
    3.         -15.         21.          3.         -15.
   -1.          5.         -7.          -1.           5.
   -2.33333333 11.66666667 -16.33333333 -2.33333333  11.66666667
   -1.          5.         -7.          -1.           5.
    3.        -15.         21.           3.          -15.
   -1.          5.         -7.          -1.           5.
   -2.33333333 11.66666667 -16.33333333 -2.33333333  11.66666667]]