ノイズの多いデータや微細構造のデータの場合、ミッドポイントルールよりも優れた求積法がありますか?


12

この長い質問の最初の2つのセクションのみが必須です。その他は、単に説明のためのものです。

バックグラウンド

高次複合ニュートン・コート、ゴース・レジェンドレ、およびロンバーグなどの高度な求積法は、主に、関数を細かくサンプリングできるが分析的に統合できない場合を対象としています。ただし、サンプリング間隔(例については付録Aを参照)または測定ノイズよりも細かい構造を持つ関数については、中間点や台形規則(デモについては付録Bを参照)などの単純なアプローチと競合することはできません。

これは、例えば、シンプソンの複合ルールが基本的に情報の4分の1に低い重みを割り当てることで「破棄」するため、やや直感的です。このような求積法が十分に退屈な関数に適している唯一の理由は、境界効果を適切に処理することは、破棄される情報の効果を上回ることです。別の観点から、微細な構造またはノイズのある関数の場合、統合ドメインの境界から離れたサンプルは、ほぼ等距離であり、ほぼ同じ重みを持たなければならないことは直感的に明らかです(多数のサンプルの場合) )。一方、このような関数の直角位相は、(中間点の方法よりも)境界効果の処理を改善することから恩恵を受ける場合があります。

質問

ノイズの多い、または微細構造の1次元データを数値的に統合したいとします。

サンプリングポイントの数は固定されています(関数の評価に費用がかかるため)が、自由に配置できます。ただし、I(またはメソッド)は、他のサンプリングポイントの結果に基づいて、対話的にサンプリングポイントを配置することはできません。また、潜在的な問題領域を事前に知りません。したがって、Gauß–Legendre(非等距離サンプリングポイント)のようなものは問題ありません。適応求積法は、インタラクティブに配置されたサンプリングポイントを必要とするため、そうではありません。

  • そのような場合、中間点の方法を超える方法が提案されていますか?

  • または:そのような条件下で中点法が最適であるという証拠はありますか?

  • より一般的に:この問題に関する既存の作業はありますか?

付録A:微細構造化関数の具体例

私は推定したいの場合: F T = k個のΣ iは= 1つのω I T - φ I01f(t)dtφI[02π]ログωI[11000年]。典型的な関数は次のようになります。

f(t)=i=1ksin(ωitφi)ωi,
φi[0,2π]logωi[1,1000]

重畳サイン

次のプロパティにこの機能を選択しました。

  • 制御結果を分析的に統合できます。
  • 私が使用しているサンプル数()ですべてをキャプチャすることを不可能にするレベルの微細構造を持っています。<102
  • 微細構造に支配されていません。

付録B:ベンチマーク

完全を期すために、Pythonのベンチマークを次に示します。

import numpy as np
from numpy.random import uniform
from scipy.integrate import simps, trapz, romb, fixed_quad

begin = 0
end   = 1

def generate_f(k,low_freq,high_freq):
    ω = 2**uniform(np.log2(low_freq),np.log2(high_freq),k)
    φ = uniform(0,2*np.pi,k)
    g = lambda t,ω,φ: np.sin(ω*t-φ)/ω
    G = lambda t,ω,φ: np.cos(ω*t-φ)/ω**2
    f = lambda t: sum( g(t,ω[i],φ[i]) for i in range(k) )
    control = sum( G(begin,ω[i],φ[i])-G(end,ω[i],φ[i]) for i in range(k) )
    return control,f

def midpoint(f,n):
    midpoints = np.linspace(begin,end,2*n+1)[1::2]
    assert len(midpoints)==n
    return np.mean(f(midpoints))*(n-1)

def evaluate(n,control,f):
    """
    returns the relative errors when integrating f with n evaluations
    for several numerical integration methods.
    """
    times = np.linspace(begin,end,n)
    values = f(times)
    results = [
            midpoint(f,n),
            trapz(values),
            simps(values),
            romb (values),
            fixed_quad(f,begin,end,n=n)[0]*(n-1),
        ]

    return [
            abs((result/(n-1)-control)/control)
            for result in results
        ]

method_names = ["midpoint","trapezoid","Simpson","Romberg","Gauß–Legendre"]

def med(data):
    medians = np.median(np.vstack(data),axis=0)
    for median,name in zip(medians,method_names):
        print(f"{median:.3e}   {name}")

print("superimposed sines")
med(evaluate(33,*generate_f(10,1,1000)) for _ in range(100000))

print("superimposed low-frequency sines (control)")
med(evaluate(33,*generate_f(10,0.5,1.5)) for _ in range(100000))

(ここでは、中央値を使用して、高周波数成分のみを含む関数による外れ値の影響を減らします。平均として、結果は同様です。)

相対積分誤差の中央値は次のとおりです。

superimposed sines
6.301e-04   midpoint
8.984e-04   trapezoid
1.158e-03   Simpson
1.537e-03   Romberg
1.862e-03   Gauß–Legendre

superimposed low-frequency sines (control)
2.790e-05   midpoint
5.933e-05   trapezoid
5.107e-09   Simpson
3.573e-16   Romberg
3.659e-16   Gauß–Legendre

注:2か月後、結果のない1つの報奨金の後、これをMathOverflowに投稿しました


これはあなたが本当に興味を持っている種類の問題ですか?1Dでは、ほとんどの方法で、おそらくすぐに良い結果を得ることができます。
デビッドケッチャソン

「サンプリングポイントの数は固定されており、自由に配置できます。ただし、インタラクティブに、つまり他のサンプリングポイントの結果に基づいて、サンプリングポイントを配置することはできません。」 この制限は私には明らかではありません。(実際に適応アルゴリズムを使用する代わりに)本当に賢い限り、適応アルゴリズムが配置する場所にノードを配置することはできますか?私がそれについて「本当に賢い」ことを許可されていない場合、どのような種類のノード配置が実際に許可されていますか?
デビッドケッチャソン

@DavidKetcheson:これはあなたが本当に興味を持っている種類の問題ですか?–はい、1Dに本当に興味があります。— 1Dでは、ほとんどの方法で、おそらくすぐに良い結果を得ることができます。–関数の評価にはコストがかかる場合があることに注意してください。— 次に、実際に許可されるのはどのようなノード配置ですか?–質問を編集して、より明確になるようにした。
Wrzlprmft

感謝します。私には、質問はまだあいまいに見えます。私は、より答えやすいシンプルで正確な質問があると思います。関数のセット(直交ノードの許容数に依存する場合があります)およびメトリックを定義する必要があります。次に、その関数セットに対してそのメトリックで中点法が最適であるかどうかを尋ねることができます(おそらく、すべての関数の直交に同じノードのセットを使用する必要があります)。
デビッドケッチャソン

1
@DavidKetcheson:関数セット(直交ノードの許容数に依存する場合があります)およびメトリックを定義する必要があります。–これまでのところ、このテーマに関して有用なものを見つけることができなかったため、このような制限を課す理由はありません。むしろ、そのような制限があると、わずかに異なる条件または仮定のために、既存の作業(または簡単な証拠)を除外するリスクがあります。参照作業または簡単な証明が存在する定義などのシナリオをキャプチャする方法があれば、それについて満足しています。
Wrzlprmft

回答:


1

まず、適応求積法の概念を誤解していると思います。適応求積法は、「インタラクティブにサンプルポイントを配置する」ことを意味しません。適応求積法の背後にある全体的な考え方は、できるだけ少ない関数評価で、特定の関数を特定の(推定)絶対または相対誤差に統合するスキームを考案することです。

2番目のコメント:「サンプリングポイントの数は固定されています(関数の評価に費用がかかるため)が、自由に配置できます」。私は、サンプリングポイントの数(または求積法の用語での関数評価)をできるだけ小さくする(つまり、固定しない)べきだと考えています。

それでは、たとえばQUADPACKで実装された適応求積法の背後にある考え方は何ですか?

  1. 2n2n+1NN2N1

  2. 次の要素は、「分割統治」戦略です。被積分関数でこのG7K15を緩め、好みに応じた求積誤差が大きすぎると仮定します。QUADPACKは、元の間隔を2つの等間隔の部分間隔に分割します。そして、基本ルールG7K15を使用して2つの部分積分を再評価します。現在、アルゴリズムにはグローバルな誤差推定値(最初の推定値よりも低いことが望ましい)がありますが、2つのローカル誤差推定値もあります。最もエラーの大きい間隔を選択し、これを2つに分割します。2つの新しい積分が推定され、グローバルエラーが更新されます。そして、グローバルエラーが要求されたターゲットを下回るか、サブディビジョンの最大数を超えるまで続きます。

したがって、scipy.quadメソッドを使用して上記のコードを更新するように挑戦します。多分、「微細構造」の多い被積分関数の場合、サブディビジョンの最大数(limitオプション)を増やす必要があるかもしれません。epsabsおよび/またはで遊ぶこともできますepsrelパラメータでます。

ただし、実験データしかない場合、2つの可能性があります。

  1. t2、ネストされた台形規則(およびRombergの外挿からの利益)を適用できるようにばます。
  2. ノードを選択する手段がない場合、つまり、測定がランダムに行われる場合、私の意見では最良の選択肢はやはり台形規則です。

適応求積法の概念を誤解していると思います。–あなたの投稿は、適応求積法についての私の以前の理解と完全に一致し、サンプリングポイントをインタラクティブに配置する方法(適切なフレーズであるかどうか)に明確に一致します。— […]と書きます。私は、サンプリングポイントの数[…]はできる限り少なくする(つまり、固定しない)べきだと考えています。–あなたがその贅沢を持っているなら、確かに、しかし実験的な制約はそれほど良性ではないかもしれません。たとえば、固定数の高価なセンサーで何かを同時に測定する必要があるとします。
Wrzlprmft

謝罪いたします。私はあなたの質問で「対話的に」誤解しました。私の理解では、「インタラクティブに」とは、アルゴリズムではなくユーザーによる介入を意味します。実験データに関する回答に段落を追加しました。別のアプローチは、微細構造情報を「フィルタリング」することです。つまり、フーリエ変換を適用し、小さな振幅の高次周波数を除去します。それは選択肢でしょうか?
GertVdE

測定ポイントを選択する機会がある場合[…] –いずれにせよ、等距離ポイントは中点、単純な台形などに必要なものなので、これはまさにベンチマークで行ったことです。ここでは、Rombergの外挿は利点をもたらしません。
Wrzlprmft

別のアプローチは、微細構造情報を「フィルタリング」することです[…]それはオプションでしょうか?–私の例では、微細構造が測定対象の一部であると想定していますが、完全にキャプチャするのに十分な数のサンプルがないことがあります。実際のノイズに関しては、フィルタリングを妨げる技術的な制約はありません。ただし、ドメイン全体の積分はすでに最終的なローパスフィルターであるため、特定の、良性の、既知の特性を持つノイズを発生させることなく、これを改善できることに懐疑的です。
Wrzlprmft

それは本当に確率論的ですか?高次の確率的積分近似であるいくつかの派生物がなければなりません。
クリスラッカッカス

0

あなたのコードがさまざまな求積法の基本とノイズと微細構造に対する効果を実証しているとは確信していません。定理は次のとおりです。

μ

|abfdxQ^[f^]||abfdxQ[f]|+μ[4ab|f|dx+ab|xf|dx]
Q^f^f

{xi}i=0n1{wi}i=0n1w^バツ^f^f^バツ=fバツ1+2δ|δ|μμ

Q^[f^]=i=0n1w^if^(x^i)=i=0n1wi(1+δiw)f(xi+δixxi)(1+2δif)(1+δi)i=0n1wi[f(xi)+δixxif(xi)](1+δiw+2δif+δi)i=0n1wif(xi)+i=0n1δixwixif(xi)+wif(xi)(δiw+2δif+δi)
so that
|Q^[f^]Q[f]|μi=0n1wi(|xif(xi)|+4|f(xi)|)4μ|f|dx+μ|xf|dx
This assumes that the sum is computed without error; multiply by n to drop that assumption.

Mutatis mutandis you can also show that the result holds in fixed point arithmetic.


Thank you for you answer. I am having a bit of trouble understanding the scenario you are considering and how it relates to my question. What do you mean by unbounded total variation in floating point? Unless I am very mistaken, all my computational results (except for the control case with Romberg and Gauß–Legendre) are far from being influenced by inaccuracies of the arithmetic implementation (floating point or fixed point). The noise I am considering is also not numerical in nature, but experimental.
Wrzlprmft

@Wrzlprmft: Floating point is the result I was able to prove. I can also prove it in fixed point, which then indicates that the result holds for experimental data. I believe it is true for any source of error in the quadrature nodes. I have edited to clarify.
user14717

For experimental data, the result is much more convincing because in general experimental data is non-differentiable and hence the total variation is infinite.
user14717

I am sorry, but I still fail to follow you. Your result seems to be about the error made when numerically implementing the quadrature, not about the error of the quadrature itself. The problem I am having is about the latter and in particular I see no reason to believe that it would not manifest for μ=0.
Wrzlprmft

The main idea here comes from the condition number of function evaluation. Your evaluations are ill-conditioned since they are noisy.
user14717
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.