Có một số loại spline, với các mục tiêu mâu thuẫn:
- đi gần các điểm dữ liệu đầu vào
- đường cong mượt mà so với wiggly
Đối với một vài điểm dữ liệu, bạn có thể muốn nội suy chính xác; nhưng với hàng ngàn điểm, hoặc thậm chí là một tá có nhiễu, nội suy chính xác sẽ ngọ nguậy. Hầu hết các bộ phận spline có các tham số để cân bằng độ gần của độ vừa vặn so với độ mịn tổng thể. Đây là một biểu đồ của các spline cấp 1 (piecewise tuyến tính, kết nối các dấu chấm) với data = line + noise. Bạn thấy rằng việc khớp dữ liệu chính xác theo đường zic zắc lên xuống, trong khi làm mịn tối đa cho một đường thẳng:
Có các spline cho các công việc khác nhau, tùy thuộc vào dữ liệu đầu vào và các điểm mới ở giữa: hàng chục / triệu điểm, mức độ ồn ào, phân tán / trên lưới, 1d 2d 3d ... Ví dụ: trên lưới thông thường trong 3d spline độ d
sẽ nhìn vào ( d+ 1)3hàng xóm của mỗi điểm truy vấn: 1 (hàng xóm gần nhất), 8 (trilinear), 27, 64 ... Bạn có đủ khả năng 64 không? Bạn có cần 64 không? Nó phụ thuộc.
(Rất ngắn gọn, các B-splines mượt mà; các spline
Catmull-Rom nội suy, ví dụ như các khung phim;
các hỗn hợp như 1/3 B + 2/3 CR rất hữu ích ở giữa.)
Làm thế nào để mức độ đa thức ảnh hưởng đến sự ngu ngốc? Xem hiện tượng của Runge .
Khi overshoot trong 1d 2d 3d ... hãy xem (ahem)
câu hỏi này
trên math.stackexchange.
Về sự nguy hiểm của EXtrapolation với splines vượt tuyến tính, hãy xem điều này trên SO.
Xem thêm
stackoverflow.com/questions/tagged/spline .