Chỉ có hai phần đầu của câu hỏi dài này là cần thiết. Những người khác chỉ để minh họa.
Lý lịch
Các ô vuông nâng cao như Newton Newton Cotes tổng hợp mức độ cao hơn, Gauß cám Legendre và Romberg dường như chủ yếu dành cho các trường hợp người ta có thể lấy mẫu chính xác chức năng nhưng không tích hợp phân tích. Tuy nhiên, đối với các hàm có cấu trúc mịn hơn khoảng lấy mẫu (xem ví dụ Phụ lục A) hoặc nhiễu đo lường, chúng không thể cạnh tranh với các phương pháp đơn giản như quy tắc trung điểm hoặc hình thang (xem Phụ lục B để trình diễn).
Điều này có phần trực quan vì, ví dụ, quy tắc Simpson tổng hợp về cơ bản là loại bỏ một phần tư thông tin bằng cách gán cho nó một trọng số thấp hơn. Lý do duy nhất như vậy là tốt hơn cho các chức năng đủ nhàm chán là việc xử lý đúng các hiệu ứng viền vượt xa hiệu quả của thông tin bị loại bỏ. Từ quan điểm khác, tôi thấy rõ ràng bằng trực giác rằng đối với các chức năng có cấu trúc hoặc tiếng ồn tốt, các mẫu ở xa biên giới của miền tích hợp phải gần như tương đương và có trọng lượng gần như nhau (đối với số lượng mẫu cao ). Mặt khác, phương trình bậc hai của các hàm như vậy có thể được hưởng lợi từ việc xử lý tốt hơn các hiệu ứng viền (so với phương pháp trung điểm).
Câu hỏi
Giả sử rằng tôi muốn tích hợp số lượng dữ liệu một chiều ồn ào hoặc có cấu trúc tốt.
Số lượng điểm lấy mẫu là cố định (do đánh giá chức năng là tốn kém), nhưng tôi có thể tự do đặt chúng. Tuy nhiên, tôi (hoặc phương pháp) không thể đặt các điểm lấy mẫu một cách tương tác, nghĩa là dựa trên kết quả từ các điểm lấy mẫu khác. Tôi cũng không biết khu vực có vấn đề trước. Vì vậy, một cái gì đó như Gauß khoan Legendre (điểm lấy mẫu không tương đương) là ổn; phương trình thích nghi không phải vì nó yêu cầu các điểm lấy mẫu được đặt tương tác.
Có phương pháp nào vượt ra ngoài phương pháp trung điểm được đề xuất cho trường hợp như vậy không?
Hoặc: Có bằng chứng nào cho thấy phương pháp trung điểm là tốt nhất trong các điều kiện như vậy không?
Tổng quát hơn: Có bất kỳ công việc hiện có về vấn đề này?
Phụ lục A: Ví dụ cụ thể về hàm cấu trúc mịn
Tôi muốn ước tính for: vớivà. Một chức năng điển hình trông như thế này:
Tôi đã chọn chức năng này cho các thuộc tính sau:
- Nó có thể được tích hợp phân tích cho một kết quả kiểm soát.
- Nó có cấu trúc tốt ở một mức độ khiến cho không thể nắm bắt được tất cả với số lượng mẫu tôi đang sử dụng ( ).
- Nó không bị chi phối bởi cấu trúc tốt của nó.
Phụ lục B: Điểm chuẩn
Để hoàn thiện, đây là một điểm chuẩn trong 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))
(Ở đây tôi sử dụng trung vị để giảm ảnh hưởng của các ngoại lệ do các hàm chỉ có nội dung tần số cao. Đối với trung bình, kết quả là tương tự.)
Các trung vị của các lỗi tích hợp tương đối là:
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
Lưu ý: Sau hai tháng và một tiền thưởng mà không có kết quả, tôi đã đăng bài này lên MathOverflow .