は(次元に応じて追加の構成要素)浮動点xが与えられ、y座標面の高さを評価する機能がある想像:集約/多次元空間においてスパースサンプルを外挿する
double ComputeElevation(double x, double y, ...., double z) { }
これは解析関数ではないため、微分は計算できません。私がする必要があるのは、与えられた任意の{x、y}ペアの表面が最も急な方向を見つけることです。単一の評価は非常に高価になる可能性があります(最悪のシナリオでは数秒または数分も考えます)。
2Dの場合の私の典型的なアプローチは、{x、y}に隣接するN個の位置でサーフェスをサンプリングし、それらのサンプルに曲線をフィットさせ、この検索で苦しんでいない最高点の曲線を検索することです高価な評価から:
上記画像P0の座標を与えられています。 {S0、S1、S2、S3}は、P0の周りに4つのランダムに配置されたサンプルであり、PMは曲線上の最も高い点である。したがって、ベクトルPM-P0は最急上昇の方向である。
しかし、これをN次元にスケールアップする方法やこれを行うためのよりスマートなアルゴリズムがあるかどうかはわかりません。
次元数は非常に大きく(数十から数百まで)、潜在的にどのような方法でも、次元数よりもサンプル数が少ない場合には機能する必要があります。私は正確な答えを探しているわけではありませんが、それは不可能ですが、半分まともな近似はすでに大歓迎です。
ps。私はC#でこれをやっていますが、大したことではありませんが、C#以外の言語機能にアクセスすることはできません。
ありがとう、私は少しこれを消化する必要があります。原点周りの無作為に配置された点はすべて等間隔で非常に近いので、少なくともそれは良いニュースのようです。 –