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

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


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

ขั้นตอน

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

นำเข้า numpy เป็น npfrom numpy.polynomial.polynomial นำเข้า polyvander3d

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

x =np.array([-2.+2.j, -1.+2.j])y =np.array([0.+2.j, 1.+2.j])z =np.array([2.+2.j, 3. + 3.j])

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

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.nim)print("\nDimensions of Array3...\ n",z.dim)

ตรวจสอบรูปร่าง -

print("\nShape of Array1...\n",x.shape)print("\nShape of Array2...\n",y.shape)print("\nรูปร่างของ Array3...\ n",z.shape)

ในการสร้างเมทริกซ์ Vandermonde ของระดับที่กำหนดและจุดตัวอย่าง (x, y, z) ให้ใช้ polynomial.polyvander3d() ใน Python Numpy -

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

ตัวอย่าง

นำเข้า numpy เป็น npfrom numpy.polynomial.polynomial import polyvander3d# สร้างอาร์เรย์ของพิกัดจุด รูปร่างเหมือนกันทั้งหมดโดยใช้ numpy.array() methodx =np.array([-2.+2.j, -1 .+2.j])y =np.array([0.+2.j, 1.+2.j])z =np.array([2.+2.j, 3. + 3.j] )# แสดง arraysprint("Array1...\n",x)print("\nArray2...\n",y)print("\nArray3...\n",z)# แสดง datatypeprint( "\nArray1 datatype...\n",x.dtype)print("\nArray2 datatype...\n",y.dtype)print("\nArray3 datatype...\n",z.dtype)# ตรวจสอบ Dimensionsprint("\nDimensions of Array1...\n",x.ndim)print("\nDimensions of Array2...\n",y.nim)print("\nDimensions of Array3...\n ",z.ndim)# ตรวจสอบ Shapeprint("\nShape of Array1...\n",x.shape)print("\nShape of Array2...\n",y.shape)print("\nShape ของ Array3...\n",z.shape)# ในการสร้างเมทริกซ์ Vandermonde ของระดับที่กำหนดและจุดตัวอย่าง (x, y, z) ให้ใช้ polynomial.polyvander3d() ใน Python Numpyx_deg, y_deg, z_deg =2 , 3, 4print("\nผลลัพธ์...\n",polyvander3d(x,y, z, [x_deg, y_deg, z_deg])) 

ผลลัพธ์

Array1...[-2.+2.j -1.+2.j]Array2...[0.+2.j 1.+2.j]Array3...[2.+2 .j 3.+3.j]Array1 datatype...complex128Array2 datatype...complex128Array3 datatype...complex128Dimensions of Array1...1Dimensions of Array2...1Dimensions of Array3...1Shape of Array1...(2) ,)Shape of Array2...(2,)Shape of Array3...(2,)ผลลัพธ์...[[ 1.000e+00+0.000e+00j 2.000e+00+2.000e+00j 0.000e+00 +8.000e+00j -1.600e+01+1.600e+01j -6.400e+01+0.000e+00j 0.000e+00+2.000e+00j -4.000e+00+4.000e+00j -1.600e+01+ 0.000e+00j -3.200e+01-3.200e+01j -0.000e+00-1.280e+02j -4.000e+00+0.000e+00j -8.000e+00-8.000e+00j -0.000e+00- 3.200e+01j 6.400e+01-6.400e+01j 2.560e+02-0.000e+00j 0.000e+00-8.000e+00j 1.600e+01-1.600e+01j 6.400e+01+0.000e+00j 1.280 e+02+1.280e+02j 0.000e+00+5.120e+02j -2.000e+00+2.000e+00j -8.000e+00+0.000e+00j -1.600e+01-1.600e+01j 0.000e+ 00-6.400e+01j 1.280e+02-1.280e+02j -4.000e+00-4.000e+00j 0.000e+00-1.600e+01j 3.200e+01-3.200e+01j 1.280e+02+0.000e +00j 2.560e+02+2.560e+02j 8.000e+00-8.000e+00j 3.200e+0 1+0.000e+00j 6.400e+01+6.400e+01j 0.000e+00+2.560e+02j -5.120e+02+5.120e+02j 1.600e+01+1.600e+01j 0.000e+00+6.400e +01j -1.280e+02+1.280e+02j -5.120e+02+0.000e+00j -1.024e+03-1.024e+03j 0.000e+00-8.000e+00j 1.600e+01-1.600e+01j 6.400e+01+0.000e+00j 1.280e+02+1.280e+02j 0.000e+00+5.120e+02j 1.600e+01+0.000e+00j 3.200e+01+3.200e+01j 0.000e+00+ 1.280e+02j -2.560e+02+2.560e+02j -1.024e+03+0.000e+00j 0.000e+00+3.200e+01j -6.400e+01+6.400e+01j -2.560e+02+0.000 e+00j -5.120e+02-5.120e+02j -0.000e+00-2.048e+03j -6.400e+01+0.000e+00j -1.280e+02-1.280e+02j -0.000e+00-5.120 อี+02j 1.024e+03-1.024e+03j 4.096e+03-0.000e+00j] [ 1.000e+00+0.000e+00j 3.000e+00+3.000e+00j 0.000e+00+1.800e+01j -5.400e+01+5.400e+01j -3.240e+02+0.000e+00j 1.000e+00+2.000e+00j -3.000e+00+9.000e+00j -3.600e+01+1.800e+01j - 1.620e+02-5.400e+01j -3.240e+02-6.480e+02j -3.000e+00+4.000e+00j -2.100e+01+3.000e+00j -7.200e+01-5.400e+01j - 5.400e+01-3.780e+02j 9.720e+02-1.296e+03j -1.100e+01-2.000e+00j -2.700e+01-3.900e+ 01j 3.600e+01-1.980e+02j 7.020e+02-4.860e+02j 3.564e+03+6.480e+02j -1.000e+00+2.000e+00j -9.000e+00+3.000e+00j -3.600 e+01-1.800e+01j -5.400e+01-1.620e+02j 3.240e+02-6.480e+02j -5.000e+00+0.000e+00j -1.500e+01-1.500e+01j -0.000e +00-9.000e+01j 2.700e+02-2.700e+02j 1.620e+03-0.000e+00j -5.000e+00-1.000e+01j 1.500e+01-4.500e+01j 1.800e+02-9.000 e+01j 8.100e+02+2.700e+02j 1.620e+03+3.240e+03j 1.500e+01-2.000e+01j 1.050e+02-1.500e+01j 3.600e+02+2.700e+02j 2.700e +02+1.890e+03j -4.860e+03+6.480e+03j -3.000e+00-4.000e+00j 3.000e+00-2.100e+01j 7.200e+01-5.400e+01j 3.780e+02+ 5.400e+01j 9.720e+02+1.296e+03j 5.000e+00-1.000e+01j 4.500e+01-1.500e+01j 1.800e+02+9.000e+01j 2.700e+02+8.100e+02j - 1.620e+03+3.240e+03j 2.500e+01+0.000e+00j 7.500e+01+7.500e+01j 0.000e+00+4.500e+02j -1.350e+03+1.350e+03j -8.100e+ 03+0.000e+00j 2.500e+01+5.000e+01j -7.500e+01+2.250e+02j -9.000e+02+4.500e+02j -4.050e+03-1.350e+03j -8.100e+03 -1.620e+04j]]