Python NumPyのhermevander3d()でエルミート多項式とx、y、zサンプル点から疑似ファンデルモンド行列を生成する方法
PythonのNumPyライブラリには、hermite.hermevander3d()という便利な関数が用意されています。この関数を使うと、エルミート多項式(Hermite_e多項式)とx、y、zサンプル点から疑似ファンデルモンド行列(pseudo-Vandermonde行列)を簡単に生成できます。
引数のx、y、zは点座標を表す配列で、すべて同じ形状である必要があります。要素に複素数が含まれるかどうかに応じて、データ型はfloat64またはcomplex128へ自動的に変換されます。スカラー値が渡された場合は1次元配列に変換されます。また、引数degは[x_deg, y_deg, z_deg]の形式で、各次元の最大次数を指定するリストです。
手順
1. 必要なライブラリをインポートする
まず、必要なライブラリをインポートします。
import numpy as np from numpy.polynomial import hermite_e as H
2. 点座標の配列を作成する
numpy.array()メソッドを使用して、同じ形状を持つ点座標の配列を作成します。
x = np.array([1, 2]) y = np.array([3, 4]) z = np.array([5, 6])
3. 配列を表示する
print("Array1...\n",x)
print("\nArray2...\n",y)
print("\nArray3...\n",z)4. データ型を表示する
print("\nArray1 datatype...\n",x.dtype)
print("\nArray2 datatype...\n",y.dtype)
print("\nArray3 datatype...\n",z.dtype)5. 配列の次元数を確認する
print("\nDimensions of Array1...\n",x.ndim)
print("\nDimensions of Array2...\n",y.ndim)
print("\nDimensions of Array3...\n",z.ndim)6. 配列の形状を確認する
print("\nShape of Array1...\n",x.shape)
print("\nShape of Array2...\n",y.shape)
print("\nShape of Array3...\n",z.shape)7. 疑似ファンデルモンド行列を生成する
エルミート多項式とx、y、zサンプル点から疑似ファンデルモンド行列を生成するには、Python NumPyのhermite.hermevander3d()を使用します。ここでは、x方向の最大次数を2、y方向を3、z方向を4として指定しています。
x_deg, y_deg, z_deg = 2, 3, 4
print("\nResult...\n",H.hermevander3d(x,y,z, [x_deg, y_deg, z_deg]))完全なコード例
import numpy as np
from numpy.polynomial import hermite_e as H
# 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)
# エルミート多項式とx、y、zサンプル点から疑似ファンデルモンド行列を生成
x_deg, y_deg, z_deg = 2, 3, 4
print("\nResult...\n",H.hermevander3d(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.00000e+00 5.00000e+00 2.40000e+01 1.10000e+02 4.78000e+02 3.00000e+00
1.50000e+01 7.20000e+01 3.30000e+02 1.43400e+03 8.00000e+00 4.00000e+01
1.92000e+02 8.80000e+02 3.82400e+03 1.80000e+01 9.00000e+01 4.32000e+02
1.98000e+03 8.60400e+03 1.00000e+00 5.00000e+00 2.40000e+01 1.10000e+02
4.78000e+02 3.00000e+00 1.50000e+01 7.20000e+01 3.30000e+02 1.43400e+03
8.00000e+00 4.00000e+01 1.92000e+02 8.80000e+02 3.82400e+03 1.80000e+01
9.00000e+01 4.32000e+02 1.98000e+03 8.60400e+03 0.00000e+00 0.00000e+00
0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00
0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00
0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00]
[1.00000e+00 6.00000e+00 3.50000e+01 1.98000e+02 1.08300e+03 4.00000e+00
2.40000e+01 1.40000e+02 7.92000e+02 4.33200e+03 1.50000e+01 9.00000e+01
5.25000e+02 2.97000e+03 1.62450e+04 5.20000e+01 3.12000e+02 1.82000e+03
1.02960e+04 5.63160e+04 2.00000e+00 1.20000e+01 7.00000e+01 3.96000e+02
2.16600e+03 8.00000e+00 4.80000e+01 2.80000e+02 1.58400e+03 8.66400e+03
3.00000e+01 1.80000e+02 1.05000e+03 5.94000e+03 3.24900e+04 1.04000e+02
6.24000e+02 3.64000e+03 2.05920e+04 1.12632e+05 3.00000e+00 1.80000e+01
1.05000e+02 5.94000e+02 3.24900e+03 1.20000e+01 7.20000e+01 4.20000e+02
2.37600e+03 1.29960e+04 4.50000e+01 2.70000e+02 1.57500e+03 8.91000e+03
4.87350e+04 1.56000e+02 9.36000e+02 5.46000e+03 3.08880e+04 1.68948e+05]]-
Pythonでチェビシェフ多項式とx、y、zサンプル点の疑似ファンデルモンド行列を生成する方法
PythonのNumPyを使用して、チェビシェフ多項式とx、y、zのサンプル点から疑似ファンデルモンド行列(pseudo Vandermonde matrix)を生成するには、chebyshev.chebvander3d()関数を使います。このメソッドは、指定した次数degおよびサンプル点(x, y, z)に対応する疑似ファンデルモンド行列を返します。 パラメータの説明 x、y、z:点座標の配列です。すべて同じ形状である必要があります。要素に複素数が含まれるかどうかに応じて、dtypeはfloat64またはcomplex128に自動的に変換されます。スカラー値を渡した場合は1次元配列に変換さ
-
Pythonでエルミート多項式とx・y・zの複素数サンプル点から疑似ファンデルモンド行列を生成する方法
エルミート多項式とx、y、zのサンプル点から疑似ファンデルモンド行列を生成するには、PythonのNumPyが提供するhermite.hermvander3d()関数を使用します。このメソッドは、計算結果として疑似ファンデルモンド行列を返します。主なパラメータは以下の通りです。x、y、z: 点座標の配列。すべて同じ形状である必要があります。dtypeは、要素に複素数が含まれるかどうかに応じてfloat64またはcomplex128へ自動的に変換され、スカラーを渡した場合は1次元配列に変換されます。deg: [x_deg, y_deg, z_deg] の形式で指定する、各軸の最大次数のリスト。な