Только первые два раздела этого длинного вопроса важны. Остальные только для иллюстрации.
Фон
Продвинутые квадратуры, такие как составные выражения Ньютона – Котса, Гауза – Лежандра и Ромберга более высокой степени, по-видимому, в основном предназначены для случаев, когда можно тонко выбрать функцию, но не интегрировать аналитически. Однако для функций со структурами, меньшими, чем интервал дискретизации (пример см. В Приложении A) или шум измерения, они не могут конкурировать с простыми подходами, такими как правило средней точки или трапеции (для демонстрации см. Приложение B).
Это несколько интуитивно понятно, поскольку, например, составное правило Симпсона по существу «отбрасывает» одну четверть информации, присваивая ей меньший вес. Единственная причина, по которой такие квадратуры лучше подходят для достаточно скучных функций, заключается в том, что правильная обработка граничных эффектов перевешивает эффект отбрасываемой информации. С другой точки зрения, мне интуитивно понятно, что для функций с тонкой структурой или шумом выборки, удаленные от границ области интегрирования, должны быть почти равноудаленными и иметь практически одинаковый вес (для большого числа выборок ). С другой стороны, квадратура таких функций может выиграть от лучшей обработки граничных эффектов (чем для метода средней точки).
Вопрос
Предположим, что я хочу численно интегрировать шумные или тонко структурированные одномерные данные.
Количество точек выборки является фиксированным (из-за того, что оценка функции обходится дорого), но я могу свободно разместить их. Однако я (или метод) не могу размещать точки выборки в интерактивном режиме, т. Е. На основе результатов из других точек выборки. Я также не знаю потенциальных проблемных регионов заранее. Итак, что-то вроде Гаусса-Лежандра (неэквидистантные точки отбора проб) в порядке; адаптивной квадратуры нет, так как она требует интерактивных точек выборки.
Были ли предложены какие-либо методы, выходящие за пределы метода средней точки, для такого случая?
Или: есть ли доказательства того, что метод средней точки лучше в таких условиях?
В целом: есть ли какие-либо работы по этой проблеме?
Приложение A: Конкретный пример тонко структурированной функции
Я хотел бы оценить для: си. Типичная функция выглядит так:
Я выбрал эту функцию для следующих свойств:
- Он может быть интегрирован аналитически для контроля результата.
- Он имеет тонкую структуру на уровне, который делает невозможным захват всего этого с количеством образцов, которые я использую ( ).
- В нем не доминирует его тонкая структура.
Приложение 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
Примечание: после двух месяцев и одного вознаграждения без результата я разместил это на MathOverflow .