<< Chapter < Page Chapter >> Page >

Từ dy dx 0 = f ( x 0 , y 0 ) size 12{ { { ital "dy"} over { ital "dx"} } \rline rSub { size 8{0} } =f \( x rSub { size 8{0} } ,y rSub { size 8{0} } \) } {} d 2 y dx 2 0 = f x 0 + f y 0 f ( x 0 , y 0 ) size 12{ { {d rSup { size 8{2} } y} over { ital "dx" rSup { size 8{2} } } } \rline rSub { size 8{0} } = { { partial f} over { partial x} } \rline rSub { size 8{0} } + { { partial f} over { partial y} } \rline rSub { size 8{0} } f \( x rSub { size 8{0} } ,y rSub { size 8{0} } \) } {}

Phương trình (2.6) trở thành.

y 1 = y 0 + f ( x 0 , y 0 ) h + f x 0 h 2 2 + f y 0 f ( x 0 , y 0 ) h 2 2 . . . . . . size 12{y rSub { size 8{1} } =y rSub { size 8{0} } +f \( x rSub { size 8{0} } ,y rSub { size 8{0} } \) h+ { { partial f} over { partial x} } \rline rSub { size 8{0} } { {h rSup { size 8{2} } } over {2} } + { { partial f} over { partial y} } \rline rSub { size 8{0} } f \( x rSub { size 8{0} } ,y rSub { size 8{0} } \) { {h rSup { size 8{2} } } over {2} } "." "." "." "." "." "." } {} (2.7)

Cân bằng các hệ số của phương trình (2.5) và (2.7), ta được:

a1 + a2 =1; a2b1 = 1/2; a2b2 = 1/2.

Chọn giá trị tùy ý cho a1

a1 = 1/2

Thì a2 = 1/2; b1 = 1; b2 = 1.

Thay thế giá trị này vào trong phương trình (2.4), công thức gần đúng bậc hai Runge-Kutta là:

y 1 = y 0 + k 1 + k 2 size 12{y rSub { size 8{1} } =y rSub { size 8{0} } + {1} wideslash {2} k rSub { size 8{1} } + {1} wideslash {2} k rSub { size 8{2} } } {}

Vớik1 = f(x0,y0)h

k2 = f(x0+ h, y0 + k1)h

Vì thế.

Δy = ( k 1 + k 2 ) size 12{Δy= {1} wideslash {2} \( k rSub { size 8{1} } +k rSub { size 8{2} } \) } {}

Áp dụng của phương pháp Runge-Kutta cho việc xấp xỉ bậc hai đòi hỏi sự tính toán của k1 và k2­. Sai số trong lần xấp xỉ là bậc h3 bởi vì chuổi đã cắt sau điều kiện bậc hai.

Tông quát công thức xấp xỉ bậc bốn Runge-Kutta là:

y 1 = y 0 + a 1 k 1 + a 2 k 2 + a 3 k 3 + a 4 k 4 size 12{y rSub { size 8{1} } =y rSub { size 8{0} } +a rSub { size 8{1} } k rSub { size 8{1} } +a rSub { size 8{2} } k rSub { size 8{2} } +a rSub { size 8{3} } k rSub { size 8{3} } +a rSub { size 8{4} } k rSub { size 8{4} } } {} (2.8)

Với k1 = f(x0,y0)h

k2 = f(x0 + b1h, y0 + b2k1)h

k3 = f(x0 + b3h, y0 + b4k2)h

k4 = f(x0 + b5h, y0 + b6k3)h

Tiếp theo thủ tục giống như dùng cho lần xấp xỉ bậc hai, hệ số trong phương trình (2.8) thu được là:

a1 = 1/6; a2 = 2/6; a3 = 2/6; a4 = 1/6.

Và b1 = 1/2; b2 = 1/2; b3 = 1/2; b4 = 1/2; b5 = 1; b6 = 1.

Thay thế các giá trị vào trong phương trình (2.8), phương trình xấp xỉ bậc bốn Runge-Kutta trở thành.

y 1 = y 0 + ( k 1 + 2k 2 + 2k 3 + k 4 ) size 12{y rSub { size 8{1} } =y rSub { size 8{0} } + {1} wideslash {6} \( k rSub { size 8{1} } +2k rSub { size 8{2} } +2k rSub { size 8{3} } +k rSub { size 8{4} } \) } {}

Vớik1 = f(x0,y0)h

k 2 = f ( x 0 + h 2 , y 0 + k 1 2 ) h size 12{k rSub { size 8{2} } =f \( x rSub { size 8{0} } + { {h} over {2} } ,y rSub { size 8{0} } + { {k rSub { size 8{1} } } over {2} } \) h} {}

k 3 = f ( x 0 + h 2 , y 0 + k 2 2 ) h size 12{k rSub { size 8{3} } =f \( x rSub { size 8{0} } + { {h} over {2} } ,y rSub { size 8{0} } + { {k rSub { size 8{2} } } over {2} } \) h} {}

k 4 = f ( x 0 + h , y 0 + k 3 ) h size 12{k rSub { size 8{4} } =f \( x rSub { size 8{0} } +h,y rSub { size 8{0} } +k rSub { size 8{3} } \) h} {}

Như vậy, sự tính toán của y theo công thức đòi hỏi sự tính toán các giá trị của k1, k2, k3 và k4 :

y = 1/6(k1+2k2+2k3+k4)

Sai số trong sự xấp xỉ là bậc h5.

Công thức xấp xỉ bậc bốn Runge-Kutta cho phép giải đồng thời nhiều phương trình vi phân.

dy dx = f ( x , y , z ) size 12{ { { ital "dy"} over { ital "dx"} } =f \( x,y,z \) } {}

dz dx = g ( x , y , z ) size 12{ { { ital "dz"} over { ital "dx"} } =g \( x,y,z \) } {}

Ta co:

y­1­ = y0+1/6 (k1+2k2+2k3+k4)

z­1­ = z0+1/6 (l1+2l2+2l3+l4)

Với:k1= f(x0,y0,z0)h

k 2 = f ( x 0 + h 2 , y 0 + k 1 2 z 0 + l 1 2 ) h size 12{k rSub { size 8{2} } =f \( x rSub { size 8{0} } + { {h} over {2} } ,y rSub { size 8{0} } + { {k rSub { size 8{1} } } over {2} } z rSub { size 8{0} } + { {l rSub { size 8{1} } } over {2} } \) h} {}

k 3 = f ( x 0 + h 2 , y 0 + k 2 2 z 0 + l 2 2 ) h size 12{k rSub { size 8{3} } =f \( x rSub { size 8{0} } + { {h} over {2} } ,y rSub { size 8{0} } + { {k rSub { size 8{2} } } over {2} } z rSub { size 8{0} } + { {l rSub { size 8{2} } } over {2} } \) h} {}

k4 = f(x0 + h, y0 + k3,z0 + l3)h

l1 = g(x0,y0,z0)h

l 2 = g ( x 0 + h 2 , y 0 + k 1 2 z 0 + l 1 2 ) h size 12{l rSub { size 8{2} } =g \( x rSub { size 8{0} } + { {h} over {2} } ,y rSub { size 8{0} } + { {k rSub { size 8{1} } } over {2} } z rSub { size 8{0} } + { {l rSub { size 8{1} } } over {2} } \) h} {}

l 3 = g ( x 0 + h 2 , y 0 + k 2 2 z 0 + l 2 2 ) h size 12{l rSub { size 8{3} } =g \( x rSub { size 8{0} } + { {h} over {2} } ,y rSub { size 8{0} } + { {k rSub { size 8{2} } } over {2} } z rSub { size 8{0} } + { {l rSub { size 8{2} } } over {2} } \) h} {}

l4 = g(x0 + h, y0 + k3,z0 + l3)h

2.2.5. phương pháp dự đoán sửa đổi.

Phương pháp dựa trên cơ sở ngoại suy, hay tích phân vượt trước, và lặp lại nhiều lần việc giải phương trình vi phân.

dy dx = f ( x , y ) size 12{ { { ital "dy"} over { ital "dx"} } =f \( x,y \) } {} (2.9)

Được gọi là phương pháp dự đoán sửa đổi. Thủ tục cơ bản trong phương pháp dự đoán sửa đổi là xuất phát từ điểm (xn,yn) đến điểm (xn+1, yn+1). Thì thu được dy dx n + 1 size 12{ { { ital "dy"} over { ital "dx"} } \rline rSub { size 8{n+1} } } {} từ phương trình vi phân và sửa đổi giá trị yn+1 xấp xỉ công thức chính xác.

Loại đơn giản của công thức dự đoán phương pháp của Euler là:

yn+1 = yn + yn’h (2.10)

Với: y n ' = dy dx n size 12{y rSub { size 8{n} } rSup { size 8{'} } = { { ital "dy"} over { ital "dx"} } \rline rSub { size 8{n} } } {}

Công thức chính xác không dùng trong phương pháp Euler. Mặc dù, trong phương pháp biến đổi Euler giá trị gần đúng của yn+1 thu được từ công thức dự đoán (2.10) và giá trị thay thế trong phương trình vi phân (2.9) chính là y’n+1. Thì giá trị chính xác cho yn+1 thu được từ công thức biến đổi của phương pháp là:

y n + 1 = y n + ( y ' n + 1 + y ' n ) h 2 size 12{y rSub { size 8{n+1} } =y rSub { size 8{n} } + \( y' rSub { size 8{n+1} } +y' rSub { size 8{n} } \) { {h} over {2} } } {} (2.11)

Giá trị thay thế trong phương trình vi phân (2.9) thu được có sự đánh giá chính xác hơn cho y’n+1, nó luôn luôn thay thế trong phương trình (2.11) làm cho yn+1 chính xác hơn. Quá trình tiếp tục lặp lại cho đến khi hai giá trị tính toán liên tiếp của yn+1 từ phương trình (2.11) trùng với giá trị mong muốn chấp nhận được.

Phương pháp dự đoán biến đổi kinh điển của Milne. Dự đoán của Milne và công thức biến đổi, theo ông là:

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, Giáo trình giải tích mạng điện. OpenStax CNX. Jul 30, 2009 Download for free at http://cnx.org/content/col10815/1.1
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Giáo trình giải tích mạng điện' conversation and receive update notifications?

Ask