python中三维绘图的曲线拟合与外推

2024-10-02 20:34:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我想在python中使用numpy/scipy推断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.interpolate.interp2d类,但它只在x&y大小相同时才进行插值。 http://docs.scipy.org/doc/scipy-0.14.0/reference/generated/scipy.interpolate.interp2d.html

我想外推y轴点900和1200以及x轴720点处的曲线。在

^{pr2}$

因为我没有z=f(x,y)的函数。如何在python中对上述情况进行曲线拟合,得到所需点的曲线值。


Tags: 数据innumpy绘图np请参阅scipyarray
1条回答
网友
1楼 · 发布于 2024-10-02 20:34:21

您需要提供构造z值的网格,例如

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

对于y,也是类似的。这可以通过使用numpy.meshgrid来实现:

^{pr2}$

使用您的数据,我可以执行test_function(720,900)并得到一个值1820,这是最近邻外推法。如果您需要“更好”的外推法(无论这意味着什么),您需要为您的数据开发某种模型函数,并使用scipy中的拟合方法。在

相关问题 更多 >