0

z = f(x,y)私は雲点から生成されたメッシュを持っていscipy.interpolate.bisplrepますbisplev.

bisplevパラメータとともに使用しdx=nたりdy=n、結果がn評価されたポイントでの次数の導関数になるように使用したりできます。これを使用して、平均曲率とガウス曲率 ( surfatureMatlab で呼び出される) を計算する予定です。これには、サーフェスの 2 次偏微分を取得する必要があります

一度に偏導関数の 1 つを使用した結果はdx、人間の背中から見たこの画像に見られるように、グラデーションを「シェーディング」効果として明確に表していると言えます (コードが最初)。

    self.spline = inter.bisplrep(self.pointlist[:,1],
                                 self.pointlist[:,0],
                                 self.pointlist[:,2], s=smoothing_factor)
    self.mesh_shadow = inter.bisplev(yy.flat, xx.flat, self.spline, dy=1)

ここに画像の説明を入力

ここまでは順調ですね。問題は、明らかな数値的または視覚的な意味がないため、両方の偏導関数を同時に求めると、結果の意味が理解できない (そして説明が見つからない) ことです。たとえば、dxANDを使用する場合dy:

self.mesh_shadow = inter.bisplev(yy.flat, xx.flat, self.spline, dx=1, dy=1)

私はこれを得る: ここに画像の説明を入力

だから、私は疑問に思います:

  1. で与えられる曲面の一次偏導関数の同時結果の数学的/幾何学的な意味はbislplev(..., dx=1, dy=1)何ですか?
  2. から最大勾配 (任意の方向) を取得する方法はありますbislplev(..., dx=1, dy=1)か?
  3. そもそも、両方の偏導関数が一緒に呼び出されることになっていますか? たとえば、使用できることがわかり(..., dx=1, dy=2)、関数は「有効な」結果を生成するように見えますが、それは意味がありますか?

毎回、返される値は単一の float 値 (Z またはその導関数に関連する値の 1 つ) の (Y,X) 形状の配列です。

何か助けはありますか?

読んでくれてありがとう

4

1 に答える 1

1
  1. dx=n, dy=m で得られる偏導関数は、数学的オブジェクト (というか、その数値近似) です。

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

  2. dx=2,dy=0 と dx=0,dy=2 だけからガウス曲率を計算することはできません --- 一般に、クロス導関数 dx=1,dy=1 も必要です。

  3. 偏導関数 (d/dx)^n (d/dy)^mf(x,y) は数学的に明確に定義されています。スプラインでは、次数が高すぎると、ゼロまたは不連続が発生し始めます。

于 2012-05-12T17:01:41.360 に答える