MathLabs
Định lýĐã chứng minh

Bậc chính xác của phương pháp Runge–Kutta cổ điển

Phát biểu

Phương pháp Runge–Kutta bậc bốn cổ điển, xác định bởi các giai đoạn k1=f(tn,yn)k_1 = f(t_n, y_n), k2=f(tn+h2,yn+h2k1)k_2 = f\left(t_n+\frac{h}{2}, y_n+\frac{h}{2}k_1\right), k3=f(tn+h2,yn+h2k2)k_3 = f\left(t_n+\frac{h}{2}, y_n+\frac{h}{2}k_2\right), k4=f(tn+h,yn+hk3)k_4 = f(t_n+h, y_n+hk_3) và công thức cập nhật yn+1=yn+h6(k1+2k2+2k3+k4)y_{n+1} = y_n + \frac{h}{6}(k_1+2k_2+2k_3+k_4), có sai số cắt cụt cục bộ O(h5)O(h^5) mỗi bước và, với cùng giả thiết Lipschitz như trên, sai số toàn cục O(h4)O(h^4) sau nn bước.

Vì sao đúng?

RK4 tính độ dốc bốn lần mỗi bước tại các điểm trung gian được chọn khéo léo, thay vì một lần, rồi lấy trung bình với các trọng số theo tỉ lệ 1,2,2,11,2,2,1 trên tổng 66 phần. Công sức thêm này đổi lấy ba bậc chính xác cao hơn hẳn so với phương pháp Euler: khai triển khớp với nghiệm đúng theo chuỗi Taylor tới tận số hạng h4h^4, thay vì chỉ dừng ở số hạng bậc nhất.

Phác thảo chứng minh

Khai triển mỗi giai đoạn thành chuỗi Taylor quanh (tn,yn)(t_n, y_n). Vì k1=f(tn,yn)=y′(tn)k_1=f(t_n,y_n)=y'(t_n), và k2,k3k_2, k_3 tính ff tại điểm giữa dùng yny_n dịch chuyển nửa bước theo hướng của một giai đoạn trước, thay quy tắc dây chuyền cho y′=fy'=f, y′′=ft+fyfy''=f_t+f_yf, và y′′′=ftt+2ftyf+fyyf2+fy(ft+fyf)y'''=f_{tt}+2f_{ty}f+f_{yy}f^2+f_y(f_t+f_yf) vào từng kik_i tạo ra bốn đa thức theo hh khớp với y′(tn),y′′(tn),y′′′(tn)y'(t_n), y''(t_n), y'''(t_n) tới bậc mà mỗi giai đoạn có thể thấy được.

Lập tổ hợp có trọng số 16(k1+2k2+2k3+k4)\frac{1}{6}(k_1+2k_2+2k_3+k_4) rồi nhân với hh, các hệ số của h1,h2,h3h^1, h^2, h^3 và h4h^4 trong tổng này chính xác là các hệ số của khai triển Taylor y(tn+h)=y(tn)+hy′(tn)+h22y′′(tn)+h36y′′′(tn)+h424y(4)(tn)+⋯y(t_n+h) = y(t_n) + hy'(t_n) + \frac{h^2}{2}y''(t_n) + \frac{h^3}{6}y'''(t_n) + \frac{h^4}{24}y^{(4)}(t_n) + \cdots tới tận số hạng h4h^4 — đây chính xác là tập điều kiện bậc cổ điển mà các hệ số c=(0,12,12,1)c=(0,\frac12,\frac12,1) và b=(16,13,13,16)b=(\frac16,\frac13,\frac13,\frac16) của bảng RK4 được chọn để thỏa mãn.

Vì hai chuỗi khớp nhau tới h4h^4, số hạng đầu tiên chúng có thể khác nhau là số hạng O(h5)O(h^5), nên sai số cắt cụt cục bộ là O(h5)O(h^5) mỗi bước. Như trong trường hợp Euler, cộng dồn các sai số cục bộ này qua n≈(T−t0)/hn\approx (T-t_0)/h bước cần thiết để tới một thời điểm cố định, dùng điều kiện Lipschitz trên ff, làm mất đúng một bậc của hh, cho sai số toàn cục O(h4)O(h^4).

Chủ đề chứa định lý này

Chứng minh từng bước

Chưa có chứng minh từng bước cho định lý này.

Tài liệu tham khảo

  1. J. C. Butcher (2016). Numerical Methods for Ordinary Differential Equations
  2. E. Hairer, S. P. Norsett, G. Wanner (1993). Solving Ordinary Differential Equations I: Nonstiff Problems