1

Python を使用して数値的に統合する必要がある 3D 配列があります。私の配列は、波長、深さ、時間の関数です。これは、別のソフトウェア パッケージを使用して数値的にモデル化したデータであり、関数の分析形式を持たず、他のパッケージからの 3D 配列出力だけです。この配列の三重積分を見つける必要があります。Matlab では、trapz(my_array, 3) を使用します。ここで、3 は統合する ndims です。Scipy trapz は、単一の積分でのみ機能するようです。

2つの選択肢があると思いますが、アドバイスが必要です。

opt 1.関数ハンドルを返すscipyで3d補間を使用しますが、これらは存在しますか? 1d バージョンは関数を返し、次に scipy.integrate.tplquad を使用して、配列内の最大値と in 値を統合制限として使用する補間関数で統合を行います。

オプション 2. 別のサイトで見つけた 2d に対するこの提案のように、ネストされた 3 つの trapz 呼び出しを使用します。--> sp.trapz(sp.trapz(f, y[np.newaxis,:], axis=1), x, axis=0))

どちらかを機能させるために頭を動かすことはできません。ヘルプ/アドバイスをいただければ幸いです。統合エラーをできるだけ少なくする必要があります。

4

0 に答える 0