0

numpy/scipy を使用して python で 3d プロットを外挿したい。外挿はカーブ フィッティングで行われます。x と y のサイズが異なる次のデータを参照してください。

x = np.array([740,760,780,800,820,840,860,880,900,920,940,960])     # Presssure in mBar

y = np.array([1500,1800,2100,2400,2700,3000,3300,3600,3900])     # Rpm

# Fuel Amount in micro seconds

z = np.array([[1820,1820,1820,1820,2350,2820,3200,3440,3520,3600,3600,3600],  
              [1930,1930,1930,2170,2700,2880,3240,3580,3990,3990,3990,3990],  
              [1900,1900,2370,2680,2730,3050,3450,3760,3970,3970,3970,3970],  
              [2090,2090,2240,2410,2875,3180,3410,3935,4270,4270,4270,4270],  
              [1600,2180,2400,2700,2950,3290,3780,4180,4470,4470,4470,4470],  
              [2100,2280,2600,2880,3320,3640,4150,4550,4550,4550,4550,4550],  
              [2300,2460,2810,3170,3400,3900,4280,4760,4760,4760,4760,4760],  
              [2170,2740,3030,3250,3600,4100,4370,4370,4370,4370,4370,4370],  
             [2240,2580,2870,3275,3640,4050,4260,4260,4260,4260,4260,4260]])

Scipy には scipy.interpolate.interp2d クラスがありますが、x と y が同じサイズの場合にのみ補間します。 http://docs.scipy.org/doc/scipy-0.14.0/reference/generated/scipy.interpolate.interp2d.html

y 軸ポイント 900 & 1200 & x 軸ポイント 720 で曲線を外挿したい.

すなわち

xNew = (720,x)
yNew = (900,1200,y)

z = f(x,y) に関する関数を持っていないためです。上記のケースで Python でカーブ フィッティングを実行し、必要なポイントでカーブ値を取得する方法。

4

1 に答える 1

2

z値が構築されるグリッドを提供する必要があります。つまり、次のようなものです。

x=[[740,760,...,960],
   .....
   [740,760,...,960]]

についても同様ですy。これは、次を使用して実現できますnumpy.meshgrid

xx,yy=np.meshgrid(x,y)
test_function=interp2d(xx,yy,z)

あなたのデータを使用して、実行test_function(720,900)して 1820 の値を取得できます。これは最近傍外挿法です。「より良い」外挿が必要な場合 (それが何を意味するにせよ)、データに対してある種のモデル関数を開発し、 内でフィッティング メソッドを使用する必要がありますscipy

于 2016-01-20T11:04:20.967 に答える