Báo Cáo Giải Bài Toán Phương Trình Vi Phân Bằng Phương Pháp Runge - Kutta

Thảo luận trong 'Toán Học' bắt đầu bởi Thúy Viết Bài, 5/12/13.

  1. Thúy Viết Bài

    Thành viên vàng

    Bài viết:
    198,891
    Được thích:
    167
    Điểm thành tích:
    0
    Xu:
    0Xu
    Giải Bài Toán Phương Trình Vi Phân Bằng Phương Pháp Runge - KuttaYêu cầu đặt ra : Xây dựng phương pháp Runge Kutta 4th để giải quyết các phương trình vi phân thông thường ở dạng : .

    I-Tóm tắt lý thuyết

    Cho miền D  ℝ2, hàm f : D  ℝ liên tục và điểm (x0, y0)  D. Bài toán Cauchy đòi hỏi tìm nghiệm cực đại của phương trình vi phân cấp 1 :
    y’ = f(x, y)
    Thoả mãn điều kiện ban đầu : y(x0) = y0 (C)
    Về mặt lý luận bài toán Cauchy đã được giải quyết trọn vẹn bằng định lý Cauchy – Lipschitz. Tuy nhiên,để tăng độ chính xác nghiệm xấp xỉ của bài toán Cauchy, chúng ta dùng Phương pháp Runge - Kutta có nội dung như sau :
    Bài toán đặt ra ở đây là tính giá trị xấp xỉ của nghiệm y(x) tại các điểm mốc:
    xi = x0 + ih  I với h > 0 và i  ℕ
    Giả sử nghiệm y(x) có đạo hàm liên tục đến cấp cần thiết trên khoảng I chứa các điểm mốc.
    Tính giá trị xấp xỉ yn+1 với độ chính xác cấp m+1 bằng công thức :
    y(xn + h) = yn + y + O(hm+1) (5.2.1)
    trong đó số gia y được xác định như sau :
    y = a1K1(h) + . + amKm(h)
    với các giá trị Ki(h) tính theo công thức truy hồi
     i = 1 .m, Ki(h) = hf(i, i)
    i = xn + ih, 1 = 0 và i = yn + i1Ki(h) + . + i(i-1)Ki-1(h)
    Chúng ta chọn các hệ số ai, i và ij sao cho
    (h) = y(xn + h) - yn - y = O(hm+1)
    Tức là :  k = 0 .m, (k)(0) = 0 và (m+1)(0)  0
    Suy ra hệ phương trình:  k = 0 .m, a1 + . + am = 0
    Giải ra được các hệ số ai, i và ij từ đó suy ra giá trị xấp xỉ của yn+1.
    Sai số tính toán ước lượng theo công thức sau đây :
    Rm(h) = hm+1 = O(hm+1)

    Công thức RK2:
    Với m = 2 và 1 = 0 ta có:
    K1(h) = hf(xn, yn), = f(xn, yn), = 0
    K2(h) = hf(xn + 2h, yn + 21K1(h))
    = f(xn + 2h, yn + 21K1(h)) + h2 + h21
    = 2h2 + 221 + h
    + h2 + h + h21
    (h) = y(xn + h) - yn - a1K1(h) - a2K2(h)
    Từ hệ phương trình:
    ’(0) = y’(xn) - a1 - a2 = (1 - a1 - a2)fn = 0
    ”(0) = y”(xn) - a1 - a2 = (1 - 2a12) + (1 - 2a221) = 0

    Suy ra hệ phương trình :

    Chọn 2 = 21 = 1 giải ra được a1 = a2 = .
    Chúng ta nhận được công thức RK2 và đó chính là công thức Euler.
     n  ℕ, K1(h) = hf(xn, yn), K2(h) = hf(xn + h, yn + K1(h))
    yn+1 = yn + {K1(h) + K2(h)} R2(h) = h3 = O(h3)

    Công thức RK4
    :
    Với m = 4 và 1 = 0 ta có:
    K1(h) = hf(xn, yn)
    K2(h) = hf(xn + 2h, yn + 21K1(h))
    K3(h) = hf(xn + 3h, yn + 31K1(h) + 32K2(h))
    K4(h) = hf(xn + 4h, yn + 41K1(h) + 42K2(h) + 43K3(h))
    (h) = y(xn + h) - yn - a1K1(h) - a2K2(h) - a3K3(h) - a4K4(h)

    Từ hệ phương trình

    ’(0) = ”(0) = ”’(0) = (4)(0) = 0
    Chọn 2 = 3 = , 4 = 1 giải ra được
    21 = , 31 = 0, 32 = , 41 = 42 = 0, 43 = 1
    và a1 = , a2 = a3 = , a4 =

    Chúng ta nhận được công thức RK4

     n  ℕ, K1(h) = hf(xn, yn), K2¬(h) = hf(xn + h, yn + K1(h))
    K3(h) = hf(xn + h, yn + K2(h)), K4(h) = hf(xn + h, yn + K3(h))
    yn+1 ¬= yn + {K1(h) + 2K2(h) + 2K3(h) + K4(h)}
     
Đang tải...