Numpy 什么';s由scipy.interpolate.bisplev给出的B样条偏导数的含义是什么?

Numpy 什么';s由scipy.interpolate.bisplev给出的B样条偏导数的含义是什么?,numpy,scipy,interpolation,scientific-computing,Numpy,Scipy,Interpolation,Scientific Computing,我有一个从cloudpoint生成的网格,可以描述为z=f(x,y),所以我使用scipy.interpolate.bisplrep和bisplev,效果很好 bisplev可与参数dx=n和/或dy=n一起使用,因此结果在评估点处是顺序n的导数。我计划用它来计算平均曲率和高斯曲率(在Matlab中称为surfature),这应该包括得到survace的二阶偏导数 每次使用一个偏导数(例如dx)的结果非常好,可以清楚地将梯度表示为“着色”效果,如这张来自人类背部的图像所示(代码优先): 到目前

我有一个从cloudpoint生成的网格,可以描述为
z=f(x,y)
,所以我使用
scipy.interpolate.bisplrep
bisplev
,效果很好

bisplev
可与参数
dx=n
和/或
dy=n
一起使用,因此结果在评估点处是顺序
n
的导数。我计划用它来计算平均曲率和高斯曲率(在Matlab中称为
surfature
),这应该包括得到survace的二阶偏导数

每次使用一个偏导数(例如
dx
)的结果非常好,可以清楚地将梯度表示为“着色”效果,如这张来自人类背部的图像所示(代码优先):

到目前为止,一切顺利。问题是:当我同时要求两个偏导数时,我无法理解(也无法找到任何解释)结果的含义,因为没有任何明显的数字或视觉意义。例如,如果我使用
dx
dy

self.mesh_shadow = inter.bisplev(yy.flat, xx.flat, self.spline, dx=1, dy=1)
我明白了:

所以,我想知道:

  • bislplev(…,dx=1,dy=1)给出的曲面一阶偏导数同时结果的数学/几何意义是什么
  • 有没有办法从bislplev(…,dx=1,dy=1)得到最大坡度(在任何方向)
  • 首先,这两个偏导数应该被称为一起吗?我知道我可以使用,比如说,
    (…,dx=1,dy=2)
    ,函数似乎产生了“有效”的结果,但这有意义吗
  • 每次,返回的值都是一个(Y,X)形的单浮点值数组(Z或其导数相关值之一)

    有什么帮助吗

    谢谢你的阅读

  • 用dx=n,dy=m得到的偏导数是数学对象(或者更确切地说,是它的数值近似值)

    (d/dx)^n(d/dy)^mf(x,y)

  • 不能仅从dx=2,dy=0和dx=0,dy=2计算高斯曲率——通常还需要交叉导数dx=1,dy=1

  • 偏导数(d/dx)^n(d/dy)^mf(x,y)在数学上有很好的定义。对于样条曲线,如果阶数太高,应该开始得到零或不连续


  • 我必须研究你的观点,它们看起来很有价值,正是我所需要的。d2不连续性的优点,因为我使用的是三阶样条曲线,而且我已经读到它们保证在几阶(二阶?)之前是可微的。谢谢
    self.mesh_shadow = inter.bisplev(yy.flat, xx.flat, self.spline, dx=1, dy=1)