3 Ứng dụng của phương pháp nội suy
3.3.4 Phương pháp Runge-Kutta
Để xây dựng các cơng thức hiện cĩ độ đúng cấp cao giải bài tốn Cauchy người ta dùng khai triển Taylor nghiệm của bài tốn chứa nhiều số hạng với giả thiết rằng nghiệm đủ trơn
u(xn+1) = u(xn) +h s X k=1 hk−1 k! u (k)(xn) + h Z 0 (h−t)s s! u (s+1)(xn+t)dt Bỏ qua thành phần tích phân trong cơng thức trên và thay u(xn) bởi yn ta được phương trình sai phân bậc s theo số đạo hàm được tính của u
yn+1 −yn+h s X k=1 hk−1 k! dk−1f(xn) dxk−1 = 0 (3.49) Về nguyên tắc các đạo hàm bậc cao trong cơng thức trên cĩ thể tính được nhờ đạo hàm liên tiếp phương trình (3.35). Biết các đạo hàm này và nghiệm gần đúng tại xn ta cĩ thể tính được nghiệm gần đúng tại xn+1. Nhưng để tính các đạo hàm bậc cao này phải thực hiện khối lượng tính tốn lớn. Để khắc phục khĩ khăn này người ta sử dụng ý tưởng của Runge và Kutta
xấp xỉ biểu thức dưới dấu tổng trong (3.49) bởi tổ hợp tuyến tính chỉ chứa đạo hàm bậc nhất của nghiệm tại một số điểm khác nhau.
yn+1 = yn+ϕ(xn, yn, h), trong đĩ ϕ(xn, yn, h) =
q
X
r=1
prkr(h)
Trong quá trình xây dựng lược đồ sai phân giải bài tốn (3.35) - (3.36) ta cố định các số α1, ..., αq,p1, ..., pq, βrj, 0 < j < r ≤ q (3.50) Sử dụng các số này tính k1 = hf(x, y) k2 = hf(x+α2h, y+β21k1) · · · · kq = hf(x+αqh, y +βq1k1 +βq2k2 +...+βq,q−1kq−1) và đặt
u(x+h) ≈ y(x+h) = u(x) +
q
X
r=1
prkr(h). Các số α1, ..., αq, βrj, 0< j < r ≤ q được chọn như sau. Ký hiệu
z(h) = u(x+ h)−y(x+h) =u(x+h)−u(x) +
q
X
r=1
prkr(h)
Nếu f(x, u) là hàm đủ trơn thì kr và z là các hàm đủ trơn theo h. Giả sử rằng đối với hàm đủ trơn f(x, u) ta cĩ
z(0) = z0(0) = ... = z(s)(0) = 0, z(s+1)(0) 6= 0 (3.51) Khi đĩ khai triển z(h) trong lân cận của 0 ta được
z(h) = z
(s+1)(θ h) (s+ 1)! h
s+1, 0 < θ < 1.
Từ điều kiện (3.51) xác định được các số α1, ..., αq,p1, ..., pq, βrj, 0 < j < r ≤ q
Xét một số trường hợp riêng của phương pháp Runge-Kutta. Khi q = 1:
z(h) =u(x+h)−u(x)−p1hf(x, u), z(0) = 0,
z0(0) = u0(x)−p1f(x, u) = (1−p1)f(x, u), z00(0) = u00(x).
nếu u(x) là hàm bất kỳ đủ trơn thì u00(x) 6= 0, nghĩa là s < 2. Để s = 1 phải đặt p1 = 1. Khi đĩ ta được yn+1 = yn +k1 với k1 = hf(xn, yn). Đây chính là phương pháp Euler với sai số địa phương
z(h) = u
00(x+θ h)
2 h
2.
Khi q = 2: Tương tự, cĩ thể nhận được các cơng thức Runge-Kutta, cĩ độ chính xác cấp 2 k1 = hf(xn, yn), k2 = hf(xn +h, yn+ k1), yn+1 = yn+ 1 2(k1 +k2) hoặc k1 = hf(xn, yn), k2 = hf(xn +h/2, yn+ k1/2), yn+1 = yn+k2
Khi q = 4: cĩ thể nhận được cơng thức Runge-Kutta cĩ độ đúng cấp 4 k1 = hf(xn, yn), k2 = hf(xn +h/2, yn+ k1/2), k3 = hf(xn +h/2, yn+ k2/2), k4 = hf(xn +h, yn+ k3), yn+1 = yn + 1 6(k1 + 2k2 + 2k3 +k4).