データの 2D 配列から補間関数を作成する必要があります。実際の関数を返すものが必要な理由は、数値積分する必要がある式の一部として関数を評価できる必要があるからです。
そのため、「interp2」はそれをカットしません: 関数を返しません。
「TriScatteredInterp」を使用することもできますが、それは重量があります。私のグリッドは等間隔 (かつ大きい) です。したがって、ドローネーの三角化は必要ありません。
代替手段はありますか?
データの 2D 配列から補間関数を作成する必要があります。実際の関数を返すものが必要な理由は、数値積分する必要がある式の一部として関数を評価できる必要があるからです。
そのため、「interp2」はそれをカットしません: 関数を返しません。
「TriScatteredInterp」を使用することもできますが、それは重量があります。私のグリッドは等間隔 (かつ大きい) です。したがって、ドローネーの三角化は必要ありません。
代替手段はありますか?
(「遅い」回答で申し訳ありませんが、既存の回答が役に立たない場合に他の人に役立つ可能性のある提案がいくつかあります)
あなたの質問からは、結果の関数がどれほど正確である必要があるか (または「大きい」か) が明確ではありませんが、採用できるアプローチの 1 つは、最小二乗またはカルマン フィルターを使用してデータ ポイントを回帰することです。ベースの方法。いくつかの候補関数形式でこれを行う必要があり、たとえば MAE や MSE などの尺度を使用して、「最適」な関数形式を選択する必要があります。
もちろん、これには、基になる関数がどのような形式であるかについての考えが必要ですが、この種の情報があるかどうかについての質問は明確ではありません。
機能する可能性のある別のアプローチ (および基になる関数が何であるかを知る必要がない) は、ファジー変換 (F 変換) を使用して、表面に局所的な近似を提供する線分を生成することです。
この方法は次のようになります。
F 変換に慣れていない場合は、F 変換を 1D の場合の普遍的な近似量として使用する方法について、少し前にブログを投稿しました: http://iainism-blogism.blogspot.co.uk /2012/01/fuzzy-wuzzy-was.html
この方法の背後にある数学を確認し、それを多次元の場合に拡張するために、オストラビア大学は、さまざまな工学的問題への適用を説明し、2D 宇宙の場合にどのように構築されるかの例を提供する博士論文を公開しました。http://irafm.osu.cz/f/PhD_theses/Stepnicka.pdf
関数ハンドルが必要な場合は、f = @(xi、yi)interp2(X、Y、Z、xi、yi)を定義してみませんか?少し遅いかもしれませんが、うまくいくと思います。
私の理解が正しければ、あなたは 2 次元データの面積分/線積分を実行したいと考えています。方法はありますが、ご希望の方法ではない場合があります。私はまったく同じ問題を抱えていて、迷惑です!私がそれを解決した唯一の方法は、 を使用してサーフェスSurface Fitting Tool (sftool)
を作成し、それを統合することでした。
ツール (GUI も備えています) を使用して近似を作成すると、次を使用してsftool
(2-D) に統合できるオブジェクトが生成されます。quad2d
私もあなたの使用方法を試してinterp2
結果を得ました(これは に似ていましたsfobject
)が、データと数値積分(線/面)を行う方法がわかりませんでした。を作成してsfobject
から統合する方がはるかに高速でした。
このようなことをするのは初めてだったので、数値的に評価された線積分を使用して確認しました。ストークの定理によれば、面積分と線分は同じでなければならず、同じであることが判明しました。
私は数学スタックエクスチェンジでこの質問をし、2次元データの線積分をしたいと思っていました。