Phương trình vi phân
Định nghĩa 1.1 Phương trình vi phân là phương trình chứa ẩn là một hàm số cùng các đạo hàm của nó.
Một phương trình vi phân cấp n thường có dạng y (n) = f(x, y, y ′ , , y (n−1) ) hoặc
Nghiệm của phương trình vi phân là một hàm số y = ϕ(x) sao cho khi thay y = ϕ(x) vào phương trình vi phân thì ta được đẳng thức đúng.
Bài toán Cauchy và cách tiếp cận lời giải số
Định lý tồn tại duy nhất nghiệm
Định lý 1.1 (Xem [10]) Cho f : [a, b]×R n → R n là ánh xạ liên tục trên
D = [a, b]×R n và thỏa mãn điều kiện Lipschitz theo biến y, nghĩa là tồn tại L ≥0 sao cho kf(x, y)−f(x, y1)k ≤ Lky−y 1 k,∀(x, y),(x, y1) ∈ D (1.2)
Khi đó bài toán Cauchy (1.1) tồn tại duy nhất nghiệm y(x) liên tục và khả vi trên D.
Tiếp cận lời giải số
Tất cả các phương pháp số trong khóa luận đều tập trung vào việc tìm nghiệm y(x) cho bài toán Cauchy (1.1) trên một tập rời rạc trong khoảng [a, b] Chúng ta chia nhỏ khoảng [a, b] thành N phần bằng nhau thông qua các điểm chia {xi} từ i = 0 đến N, với công thức xác định x i = a + ih, trong đó h = (b−a)/N.
N Tham số h được gọi là bước nhảy.
Giả sử y(x) là nghiệm của hệ (1.1), đặt y n là xấp xỉ của nghiệm y(x n ) của (1.1) tại x n Ký hiệu y n ≈ y(xn)
Mục tiêu của chúng tôi là tìm phương pháp hiệu quả để tính dãy giá trị xấp xỉ {yn} từ nghiệm của bài toán (1.1) trên tập rời rạc {xn} Nghiệm số được định nghĩa là dãy các xấp xỉ nghiệm đúng của bài toán (1.1) trên khoảng [a, b] Phương pháp số để giải bài toán (1.1) sử dụng hệ sai phân của k+1 giá trị xấp xỉ {yn+i} nhằm tính toán tuần tự các giá trị {yi}, với k là số bước.
Phương pháp số tổng quát
Cấp chính xác của phương pháp số
Định nghĩa 1.5 (Xem [10]) Phương pháp số (1.3) gọi là phương pháp có cấp chính xác là p nếu y(x n+1 )−[ k
= o(h p+1 ) với o(h p+1 ) là vô cùng bé cùng bậc với h p+1 khi h → 0
Ví dụ 1.2. a Phương pháp Euler hiển y n+1 = y n + hf(x n , y n ) là phương pháp có cấp chính xác p = 1 vì
Ta có y(xn+1) = y(xn+h) = y(xn) +hy ′ (xn) +o(h 2 )
⇒y(xn+1)−y(xn) = hy ′ (xn) +o(h 2 ) y(x n+1 )−y(x n )−hf(x n , y(x n )) =o(h 2 ) b Phương pháp Euler cải tiến ( Phương pháp Euler hình thang) y n+1 = y n + h
2[f(xn, y n ) +f(xn+1, y n+1 )] là phương pháp có cấp chính xác p = 2 vì
Tính phù hợp của phương pháp số
ĐặtR(xn+1) = y(xn+1)−[P k j=1 α j y n+1−j +hφf(yn+1, y n , , y n+1−k , x n+1−k , h)] Định nghĩa 1.6 R(xn+1) gọi là sai số chặt cụt. Định nghĩa 1.7 (Xem [10]) Phương pháp số (1.3) gọi là phù hợp nếu h→0lim
Hệ quả 1.1 (Xem [10]) Phương pháp số (1.3) có cấp chính xác p ≥1 thì phù hợp.
Các phương pháp số trong ví dụ 1.3 đều có cấp chính xác lớn hơn hoặc bằng 1, do đó, phương pháp Euler hiển, phương pháp Euler ẩn và phương pháp Euler cải tiến (hình thang) đều được coi là phù hợp Theo định nghĩa 1.8, đa thức đặc trưng thứ nhất của phương pháp số (1.3) có dạng ρ(t) = t^k - k.
X j=1 α j t k−j Định lý 1.2 (Xem [10]) Phương pháp số (1.3) phù hợp
Các phương pháp Euler đều phù hợp vì
Xét phương pháp Euler có đa thức đặc trưng thứ nhất là ρ(t) = t−1, khi đó ρ ′ (t) = 1 và ρ(1) = 0 a Phương pháp Euler hiển y n+1 = y n +hf(x n , y n )
Ta có φ f (y n+1 , y n , x n ,0) = f(xn, y n ) b Phương pháp Euler ẩn y n+1 = y n +hf(xn+1, y n+1 )
Tính zero - ổn định của phương pháp số
Đa thức đặc trưng thứ nhất của phương pháp số được gọi là thỏa mãn điều kiện nghiệm nếu tất cả các nghiệm của nó có modul nhỏ hơn 1, và các nghiệm có modul bằng 1 phải là nghiệm đơn.
1 Đa thức đặc trưng thứ nhất ρ(t) =t 3 −4t 2 + 5t−2 = (t−1) 2 (t−2) có nghiệm t = 2 có môđun lớn hơn 1 và nghiệm t = 1 là nghiệm bội
2 nên không thỏa mãn điều kiện nghiệm
2 Đa thức đặc trưng thứ nhất ρ(t) = (t− 1
Phương pháp số (1.3) được xem là có tính zero-ổn định khi đa thức đặc trưng thứ nhất thỏa mãn điều kiện nghiệm Trong trường hợp t = -1, mặc dù có môđun bằng 1, nhưng đây là nghiệm bội 2 và không đáp ứng yêu cầu của điều kiện nghiệm.
Các phương pháp Euler có đa thức đặc trưng thứ nhất ρ(t) = t −1 có nghiệm đơn t = 1 nên thỏa mãn điều kiện nghiệm.
Vậy phương pháp Euler có tính zero - ổn định.
Sự hội tụ của phương pháp số
Phương pháp số (1.3) được gọi là hội tụ khi giới hạn của giá trị tối đa ||y n+1−k −y(x n+1−k )|| khi h tiến đến 0 bằng 0 Định lý 1.3 khẳng định rằng phương pháp số (1.3) hội tụ nếu và chỉ nếu nó vừa phù hợp vừa ổn định zero.
1 Các phương pháp Euler vừa có tính zero - ổn định vừa phù hợp nên nó hội tụ
2 Phương pháp Simpson hội tụ.
Phương pháp lặp đơn
Phương pháp lặp đơn
Phương pháp lặp đơn được định nghĩa bởi dãy lặp y [ν +1] = ϕ(y [ν ] ), ν = 0,1,2, (1.5) với y [0] chọn một cách thích hợp. Định lý 1.4 (Xem [10]) Cho ϕ(y) thỏa mãn điều kiện Lipschitz kϕ(y)−ϕ(y ∗ )k ≤ M ky −y ∗ k,∀y, y ∗ ∈ R n
Hằng số Lipschitz M thỏa mãn 0 ≤ M < 1 Khi đó phương trình (1.4) có duy nhất nghiệm y = α và nếu y [ν] được định nghĩa bởi (1.5) thì y [ν] → α khi ν → ∞.
Đa thức nội suy Newton lùi với các mốc cách đều
Bài toán nội suy liên quan đến việc xác định giá trị gần đúng của hàm F(x) tại các điểm không có trong bảng dữ liệu, với các mốc nội suy là x0, x1, , xn Để tìm giá trị gần đúng này, người ta sử dụng các đa thức nội suy, thay thế F(x) bằng những đa thức này và sau đó tính toán giá trị của chúng.
Khi đó có duy nhất một đa thức I n (x) bậc n thỏa mãn điều kiện
I n (x i ) =F i , i= 0, n Trong trường hợp các mốc nội suy cách đều x i = x 0 +ih với i = 0, n thì
1!∇Fn+ +t(t+ 1) (t+ n−1) n! ∇ n F n với t = x−x n gọi là đa thức nội suy Newton - Gregory.h
(−1) k C n k F n−k Trong trường hợp n = 2 ta có
Phương trình Riccati
Dạng chính tắc của phương trình Riccati
Một số tính chất
Phương trình Riccati thường không thể giải được bằng cầu phương, ngoại trừ một số trường hợp đặc biệt như khi P, Q, R là các hằng số, khi đó nó trở thành phương trình biến số phân li được Bên cạnh đó, các phương trình dạng y' = ϕ(x)(ay² + by + c) (với a, b, c là các hằng số) và y' = ay² + bxy + c đều có thể giải bằng cầu phương, vì phương trình đầu tiên có dạng phân li biến số, trong khi phương trình thứ hai là phương trình thuần nhất.
Nếu biết nghiệm riêng của phương trình Riccati, ta có thể chuyển đổi nó thành phương trình Bernoulli và giải bằng cầu phương Ngoài ra, nếu có hai nghiệm riêng khác nhau của phương trình Riccati, nghiệm tổng quát có thể được xác định qua một lần cầu phương.
Dạng đặc biệt của phương trình Riccati
Định nghĩa 1.14 Phương trình dy dx +Ay 2 = Bx α (1.6) trong đó A, B, α là các số thực được gọi là phương trình Riccati dạng đặc biệt.
Trong hai trường hợp sau phương trình (1.6) có thể tích phân được bằng cầu phương.
• Khi α = 0 ta có dy dx +Ay 2 = B Đây là phương trình biến số phân li được.
Khi α = -2, ta có phương trình dy/dx + Ay² = Bx² Bằng cách đặt y = xz, ta chuyển đổi về phương trình biến số phân li: xdz/dx = -Az² + (B + 1)z Ngoài giá trị này của α, có thể chứng minh rằng phương trình cũng đúng với mọi giá trị khác của α.
2α+ 4 là số nguyên thì phương trình Riccati dạng đặc biệt tích phân được bằng cầu phương (xem [6]).
Phương pháp Runge - Kutta
. c s a s1 a s2 a ss b 1 b 2 b s Định nghĩa 1.15 Phương pháp Runge - Kutta s nấc là phương pháp số có dạng
Ps j=1 b j f(xn+c j h, Y nj ) trong đó a ij , b j , c j (i = 1, s , j = 1, s) được lấy từ bảng Butcher.
1 6 khi đó ta có phương pháp Runge - Kutta 4 nấc sau
3 0 1 6 khi đó ta có phương pháp Runge - Kutta 4 nấc sau
Các phương pháp số để giải bài toán Cauchy trong phương trình vi phân thường
Các phương pháp tuyến tính đa bước
Khái niệm chung
Trong các phương pháp một bước như Euler, Euler cải tiến và Runge-Kutta, giá trị y n+1 được tính dựa trên x n, y n và bước nhảy h, tuy nhiên độ chính xác của chúng không cao Để nâng cao độ chính xác, phương pháp đa bước được áp dụng, định nghĩa là phương pháp số được gọi là phương pháp tuyến tính k bước nếu nó được biểu diễn qua công thức y n+1 k.
Ta có phương pháp Euler hiển y n+1 = y n +hf(xn, y n )
Ta có phương pháp Euler ẩn y n+1 = y n +hf(xn+1, y n+1 )
Ta có phương pháp Euler hình thang2 y n+1 = y n +h[1
1 Cho phương pháp Euler hình thang y n+1 = y n +h[1
Sự hội tụ của phương pháp tuyến tính k bước
Định lý 2.1 (Xem [10]) Phương pháp số (2.1) phù hợp
Phương pháp số (2.1) có tính zero - ổn định khi và chỉ khi đa thức đặc trưng thứ nhất thỏa mãn điều kiện nghiệm.
Phương pháp số (2.1) hội tụ khi và chỉ khi nó vừa phù hợp vừa có tính zero
Phương pháp tuyến tính 2 bước y n+1 = y n−1 + h
3[f(xn+1, y n+1 ) + 4f(xn, y n ) +f(xn−1, y n−1 )] hội tụ vì
Phương pháp được đề cập là phù hợp với đa thức đặc trưng thứ nhất ρ(t) = t² − 1 = (t − 1)(t + 1), có hai nghiệm đơn t = 1 và t = −1 Điều này cho thấy phương pháp số này thỏa mãn điều kiện nghiệm, do đó được coi là zero - ổn định.
Cấp chính xác
Định lý 2.2 khẳng định rằng phương pháp số (2.1) có cấp chính xác p ≥ 1 nếu và chỉ nếu tồn tại một hằng số c khác 0, thỏa mãn điều kiện ρ(t+ 1)−σ(t+ 1) ln(t+ 1) = ct p+1 +o(t p+2), trong đó o(t p+2) là hàm vô cùng bé cùng cấp với t p+2 khi t tiến về 1; và ρ(t) được định nghĩa là t k − k.
P j=1 α j t k−j là đa thức đặc trưng thứ nhất của phương pháp số (2.1); ρ(t) = t 2 −t là đa thức đặc trưng thứ hai của phương pháp số (2.1)
Phương pháp Adams - Bashforth
Xây dựng công thức
Xét bài toán Cauchy (1.1), tích phân 2 vế từ x n đến x n+1 của phương trình y ′ (x) = f(x, y(x)) ta có x n+1
Z x n y ′ (x)dx Đặt x = x n +th ta có y n+1 = y n +h
Z1 0 y ′ (xn +th)dt (2.2) Áp dụng công thức nội suy Newton lùi cho y ′ n+t := y ′ (xn+th) ta được y ′ n+t = y n ′ +∇y n ′
Vì y ′ n+t := y ′ (x n + th) nên thay (2.3) vào (2.2) ta được y n+1 = y n +h k
0 t(t+ 1) (t+i−1) i! dt; i = 1, k Các hệ số a i ;i= 1, k lần lượt là a 1 Z1
95800320 Suy ra công thức Adams - Bashforth y n+1 = y n +h
Một số phương pháp Adams - Bashforth
Ví dụ 2.3 Phương pháp Adams - Bashforth 4 bước y n+1 = y n +h
8f(xn−3, y n−3 ) Đa thức đặc trưng thứ nhất ρ(t) = t 4 −t 3 Đa thức đặc trưng thứ hai σ(t) = 55
Vậy phương pháp Adams - Bashforth 4 bước có cấp chính xác p= 4
Ta lại có ρ(t) = 0 ⇒ t 4 −t 3 = 0 ⇒t 1, ,3 = 0, t4 = 1 nhận thấy ρ(t) thỏa mãn điều kiện nghiệm do đó phương pháp trên zero - ổn định.
Vậy phương pháp Adams - Bashforth 4 bước hội tụ.
Ví dụ 2.4 Phương pháp Adams - Bashforth 5 bước y n+1 = y n +h
720f(x n−4 , y n−4 ) Đa thức đặc trưng thứ nhất ρ(t) = t 5 −t 4 Đa thức đặc trưng thứ hai σ(t) = 1901
Vậy phương pháp Adams - Bashforth 5 bước có cấp chính xác p= 5
Ta lại có ρ(t) = 0 ⇒ t 5 −t 4 = 0 ⇒t 1, ,4 = 0, t5 = 1 đa thức đặc trưng thứ nhất thỏa mãn điều kiện nghiệm suy ra phương pháp trên zero - ổn định.
X j=1 α j (5−j) = 1 suy ra phương pháp số trên là phù hợp.
Vậy phương pháp Adams - Bashforth 5 bước hội tụ.
Phương pháp Adams - Moulton
Xây dựng công thức
Từ (1.9) thay n bởi n+ 1 và thay t bởi t−1 ta được y ′ n+t = y n+1 ′ + ∇y n+1 ′
Vì y ′ n+t := y ′ (x n + th) nên thay (2.6) vào (2.2) ta được y n+1 = y n +h k
Các hệ số a i lần lượt là a 1 Z1
1036800 Suy ra công thức Adams - Moulton y n+1 = y n +h
Một vài công thức Adams - Moulton
Ví dụ 2.5 Công thức Adams - Moulton 2 bước y n+1 = y n +h
12f (xn−1, y n−1 ) Đa thức đặc trưng thứ nhất ρ(t) = t 2 −t Đa thức đặc trưng thứ hai σ(t) = 5
24t 4 + 0(t 5 ) Vậy cấp chính xác của phương pháp Adams - Moulton 2 bước là p= 3
Ta có ρ(t) = 0 ⇒t 2 −t = 0 ⇒t 1 = 0, t 2 = 1 ρ(t) thỏa mãn điều kiện nghiệm do đó phương pháp trên zero - ổn định.
X j=1 α j (2−j) = 2−(2−1) = 1 suy ra phương pháp trên phù hợp.
Vậy phương pháp Adams - Moulton 2 bước hội tụ.
Ví dụ 2.6 Công thức Adams - Moulton 3 bước y n+1 = y n +h
24f(x n−2 , y n−2 ) Đa thức đặc trưng thứ nhất ρ(t) = t 3 −t 2 Đa thức đặc trưng thứ hai σ(t) = 3
720t 5 + 0(t 6 ) Vậy cấp chính xác của phương pháp Adams - Moulton 3 bước là p= 4
Ta có ρ(t) = 0 ⇒t 3 −t 2 = 0 ⇒ t 1,2 = 0, t 3 = 1 ρ(t) thỏa mãn điều kiện nghiệm do đó phương pháp trên zero - ổn định.
X j=1 α j (3−j) = 3−(3−1) = 1 suy ra phương pháp trên phù hợp.
Vậy phương pháp Adams - Moulton 3 bước hội tụ.
Phương pháp Nystr o ¨ m
Lấy tích phân hai vế từ x n−1 đến x n+1 ta được y n+1 = y n + x n+1
Z x n − 1 y ′ (x)dx Đặt t = x−x n h ⇒x = x n +th ⇒dx = hdt x = x n−1 ⇒t = −1 x = x n+1 ⇒t = 1
−1 y ′ (xn+th)dt (2.9) Áp dụng công thức nội suy Newton lùi cho y ′ (xn +th) = y n+t ′ ta được y ′ n+t = y n ′ + t
Và sử dụng sai phân lùi ∇y n ′ = ∆y ′ n−1 = y n ′ − y n−1 ′ ,∇ k y ′ n = ∆ k y n−k ′ ta được y ′ n+t = y n ′ + t
30∇ 4 + ]y n ′ Định nghĩa 2.2 Phương pháp số Nystro¨m là phương pháp tuyến tính k bước với β 0 = 0, α 2 = 1, α j = 0, j = 0,1,3,4, , và có dạng y n+1 = y n−1 +h k
Ví dụ 2.7. a Phương pháp Nystro¨m 2 bước y n+1 = y n−1 + 2hf(xn, y n )
Phương pháp Nystro¨m 2 bước gọi là quy tắc trung điểm. b Phương pháp Nystro¨m 3 bước y n+1 = y n−1 +h[2 + 0∇+ 1
• Đa thức đặc trưng thứ nhất Đa thức đặc trưng thứ nhất của phương pháp số Nystro¨m có dạng ρ(t) =t k −t k−2
Ví dụ 2.8. a Phương pháp Nystro¨m hai bước có đa thức đặc trưng thứ nhất là ρ(t) =t 2 −1 b Phương pháp Nystro¨m ba bước có đa thức đặc trưng thứ nhất là ρ(t) = t 3 −t
Phương pháp Nystro¨m, với đặc điểm là phương pháp tuyến tính k bước, cho phép chúng ta áp dụng định nghĩa hoặc định lý để xác định cấp chính xác của nó.
Ví dụ 2.9 Phương pháp trung điểm y n+1 = y n−1 + 2hf(xn, y n ) có cấp chính xác p = 2.
Thật vậy, ta có Đa thức đặc trưng thứ nhất của phương pháp trung điểm ρ(t) =t 2 −1 Đa thức đặc trưng thứ hai của phương pháp trung điểm σ(t) = 2t Và ρ(t+ 1)−σ(t+ 1) ln(t+ 1) = (t+ 1) 2 −1−2(t+ 1)[t−1
Vậy phương pháp trung điểm có cấp chính xác p = 2
Ví dụ 2.10 Phương pháp Nystro¨m ba bước y n+1 = y n−1 + h
3[7f(x n , y n )−2f(x n−1 , y n−1 ) +f(x n−2 , y n−2 )] có cấp chính xác p = 3. Đa thức đặc trưng thứ nhất ρ(t) = t 3 −t Đa thức đặc trưng thứ hai σ(t) = 7
Vậy phương pháp Nystr¨om ba bước có cấp chính xác p= 3
Phương pháp Nystro¨m hội tụ khi và chỉ khi nó vừa phù hợp vừa có tính zero - ổn định.
Phương pháp trung điểm y n+1 = y n−1 + 2hf(xn, y n ) cho thấy tính hội tụ Đa thức đặc trưng thứ nhất ρ(t) = t² − 1 có nghiệm t = −1 và t = 1, do đó thỏa mãn điều kiện nghiệm và chứng minh tính zero - ổn định.
Phương pháp trung điểm có cấp chính xác p= 2 nên phù hợp.
Vậy phương pháp trung điểm hội tụ.
Ví dụ 2.12 Phương pháp Nystro¨m bốn bước y n+1 = y n−1 +h
Hàm số 3[8f(xn, y n )−5f(xn−1, y n−1 )+4f(xn−2, y n−2 )−f(xn−3, y n−3 )] hội tụ, cho thấy tính ổn định của hệ thống Đa thức đặc trưng thứ nhất được xác định là ρ(t) = t 4 −t 2, có hai nghiệm đơn t = −1 và t = 1 với môđun bằng 1, cùng một nghiệm kép t = 0 với môđun bằng 0, do đó thỏa mãn điều kiện nghiệm và chứng minh tính zero - ổn định của hệ.
P4 j=1 β j = 4− P 4 j=1 α j (4−j) = 2 Suy ra phương pháp Nystro¨m bốn bước phù hợp.
Vậy phương pháp Nystr¨om bốn bước hội tụ.
Phương pháp BDF
Phát biểu công thức BDF
Phương pháp BDF là một kỹ thuật tuyến tính đa bước ẩn thường được sử dụng để giải quyết các vấn đề trong bài toán cương Phương pháp này có đặc điểm là ẩn với σ(t) = β 0 t k, và chỉ ổn định với một số giá trị k nhất định, đồng thời có tính ổn định tuyệt đối cao Công thức của phương pháp BDF được thể hiện qua y n+1 k.
Với k = 1,2, ,6, phương pháp là zero ổn định nhưng với k ≥ 7, phương pháp này không zero ổn định.( xem [9])
Công thức trên được tìm thấy bằng cách đi từ công thức sai phân lùi áp dụng cho bài toán Cauchy.
y ′ = f(x, y) y(a) =η Áp dụng công thức nội suy Newton-Gregory ta có
∇ i y n+1 (2.12) Đạo hàm hai vế theo r với x = x n+1 +rh nên dx= hdr
1 i∇ i y n+1 = f(xn+1, y n+1 ) Công thức BDF áp dụng nội suy Newton-Gregory được viết lại như sau k
3hf(xn+1, y n+1 ) Phương pháp BDF 2 bước có công thức y n+1 = 4
3(yn+1−3yn+3yn−1−yn−2) = hf(xn+1, y n+1 )
11h(xn+1, y n+1 ) Vậy phương pháp BDF 3 bước có công thức y n+1 = 18
11h(x n+1 , y n+1 ) (2.19) Định lý 2.3 (xem[9]) Một phương pháp k bước BDF có cấp chính xác là k có β 0
Xét sự hội tụ và cấp chính xác của phương pháp
Xét phương pháp BDF 2 bước k = 2 y n+1 = 4
• Sự hội tụ của phương pháp. Đa thức đặc trưng thứ nhất ρ(t) =t 2 −
⇒Phương pháp BDF 2 bước có zero ổn định. ta có
⇒ Phương pháp BDF 2 bước là phù hợp.
Vậy phương pháp trên là hội tụ.
• Cấp chính xác của phương pháp ta có ρ(t) = t 2 −
Vậy phương pháp BDF 2 bước có cấp chính xác là 2.
Xét phương pháp BDF 3 bước y n+1 = 18
• Sự hội tụ của phương pháp. Đa thức đặc trưng thứ nhất ρ(t) =t 3 − 18
⇒ Phương pháp BDF 3 bước có zero ổn định. ta có
⇒ Phương pháp BDF 3 bước là phù hợp.
Vậy phương pháp trên là hội tụ.
• Cấp chính xác của phương pháp ta có ρ(t) = t 3 − 18
Vậy phương pháp BDF 3 bước có cấp chính xác là 3.
bước, 3 bước
Phương pháp Milne - Simpson
Xét bài toán Cauchy (1.1) Kí hiệu y ′ n = f(xn, y n ) Lấy tích phân hai vế của bài toán Cauchy từ x n−1 đến x n+1 ta được y n+1 = y n + x n+1
Z x n − 1 y ′ (x)dx Đặt t = x−x n h ⇒ x = x n +th⇒ dx = hdt x = x n−1 ⇒t = −1 x = x n+1 ⇒t = 1
−1 y ′ (x n +th)dt (2.20) Áp dụng công thức nội suy Newton lùi cho y ′ (xn +th) = y n+t ′ ta được y ′ n+t = y n ′ + t
Và sử dụng sai phân lùi ∇y n ′ = ∆y ′ n−1 = y n ′ − y n−1 ′ ,∇ k y ′ n = ∆ k y n−k ′ ta được y ′ n+t = y n ′ + t
2! ∇ 2 y n ′ + + t(t+ 1) (t+k−1) k! ∇ k y ′ n + Xuất phát từ x n+1 ( thay n = n+ 1, t = t−1 ) ta có y ′ n+t = y n+1 ′ + t−1
90∇ 5 + ]y n+1 ′ Định nghĩa 2.3 Phương pháp Milne - Simpson là phương pháp tuyến tính k bước với α 2 = 1, αj = 0, j = 0,1,3,4, có dạng y n+1 = y n−1 +h k
1 Phương pháp Milne - Simpson 2 bước
Phương pháp Milne - Simpson 2 bước gọi là phương pháp Simpson.
2 Phương pháp Milne - Simpson 4 bước
3 Phương pháp Milne - Simpson 5 bước
2.6.2 Cấp chính xác của phương pháp Milne - Simpson
Phương pháp Milne - Simpson là một phương pháp tuyến tính k bước, cho phép chúng ta áp dụng định nghĩa hoặc định lý để xác định cấp chính xác của nó.
Ví dụ 2.14 Phương pháp Simpson y n+1 = y n−1 + h
3[f(xn+1, y n+1 ) + 4f(xn, y n ) +f(xn−1, y n−1 )] có cấp chính xác p = 4. Đa thức đặc trưng thứ nhất ρ(t) =t 2 −1 Đa thức đặc trưng thứ hai σ(t) = 1
90t 5 + o(h 6 ) Vậy phương pháp Simpson có cấp chính xác p = 4
Ví dụ 2.15 Phương pháp Milne - Simpson bốn bước y n+1 = y n−1 + h
90[29f(x n+1 , y n+1 ) + 124f(xn, y n ) + 24f(x n−1 , y n−1 )+ 4f(xn−2, y n−2 )−f(xn−3, y n−3 )] có cấp chính xác p = 5. Đa thức đặc trưng thứ nhất ρ(t) = t 4 −t 2 Đa thức đặc trưng thứ hai σ(t) = 29
90t 5+1 + o(h 6+1 )Vậy phương pháp Milne - Simpson bốn bước có cấp chính xác bằng 5.
2.6.3 Sự hội tụ của phương pháp Milne - simpson
Phương pháp Milne - Simpson hội tụ khi và chỉ khi nó vừa phù hợp vừa có tính zero - ổn định.
Ví dụ 2.16 Phương pháp Simpson y n+1 = y n−1 + h
3[f(xn+1, y n+1 ) + 4f(xn, y n ) +f(xn−1, y n−1 )] hội tụ Đa thức đặc trưng thứ nhất ρ(t) = t 2 −1 khi đó ρ(1) = 0 và ρ ′ (t) = 2t
2 = f(x n , y n ) Phương pháp Simpson phù hợp. Đa thức đặc trưng thứ nhất ρ(t) = t 2 −1 có nghiệm t = −1, t = 1 nên thỏa mãn điều kiện nghiệm Suy ra có tính zero - ổn định.
Vậy phương pháp Simpson hội tụ.
Ví dụ 2.17 Phương pháp Milne - Simpson bốn bước y n+1 = y n−1 + h
90[29f(xn+1, y n+1 ) + 124f(xn, y n ) + 24f(xn−1, y n−1 )+ 4f(x n−2 , y n−2 )−f(x n−3 , y n−3 )] hội tụ Đa thức đặc trưng thứ nhất ρ(t) = t 4 −t 2 khi đó ρ(1) = 0 và ρ ′ (t) = 4t 3 −2t ⇒ρ ′ (1) = 2 φ f (y n+1 , , y n−3 , x n−3 , h) = 1
90[29f(xn, y n )+124f(xn, y n )+24f(xn, y n ) +4f(xn, y n )−f(xn, y n )]
Phương pháp Simpson là một phương pháp phù hợp cho việc tính toán Đa thức đặc trưng thứ nhất ρ(t) = t^4 − t^2 có hai nghiệm đơn t = −1, t = 1 và một nghiệm bội hai t = 0, do đó đáp ứng điều kiện nghiệm Kết quả cho thấy tính zero - ổn định của phương pháp này.
Vậy phương pháp Milne - Simpson bốn bước hội tụ.
Phương pháp tuyến tính 2 bước ẩn có cấp chính xác bằng 3 44
Xét (2.1) với k = 2, phương pháp tuyến tính 2 bước ẩn có dạng y n+1 = α 1 y n +α 2 y n−1 +h[β 0 f(x n+1 , y n+1 ) +β 1 f(x n , y n )
+β 2 f(xn−1, y n−1 )] (2.22) Đa thức đặc trưng thứ nhất của phương pháp này là ρ(t) = t 2 −α 1 t−α 2 ⇒ ρ(t+ 1) = t 2 + (2−α 1 )t+ 1−α 1 −α 2 Đa thức đặc trưng thứ hai σ(t) = β 0 t 2 +β 1 t+β 2
⇒ σ(t+ 1) = β 0 t 2 + (2β 0 +β 1 )t+ (β 0 +β 1 +β 2 ) Để phương pháp (2.22) là hội tụ thì nó phải vừa phù hợp vừa zero ổn định. Tính phù hợp
Tính zero ổn định ρ(t) = 0 phải có nghiệm có modul nhỏ hơn 1 và nghiệm có modul bằng 1 là nghiệm đơn.
Giả sử ρ(t) = 0 có nghiệm t 1 và t 2
Vì α 1 +α 2 = 1 nên t 1 = 1 ⇒t 2 = −α 2 , suy ra điều kiện
Cấp chính xác của phương pháp (2.22) ρ(t+ 1)−σ(t+ 1) ln(t+ 1)
Vì phương pháp (2.22) có cấp chính xác bằng 3 nên
Kết hợp các điều kiện (1), (2), (3) hệ α 1 , α 2 , β 0 , β 1 , β 2 phải thỏa mãn các phương trình sau
Thay vào phương pháp (2.22) ta được công thức tổng quát của phương pháp tuyến tính 2 bước ẩn hội tụ có cấp chính xác bằng 3 như sau y n+1 = (1−λ)yn+λy n−1 +h
• Cho λvới giá trị bất kì thỏa mãn các điều kiện trên, chẳng hạn λ = 1
2, ta có phương pháp sau y n+1 = 1
⇒ phương pháp phù hợp. Đa thức đặc trưng thứ nhất của phương pháp này làρ(t) = t 2 −1
Có các nghiệm t 1 = 1 là nghiệm đơn 2 t 2 = −1
⇒ phương pháp zero ổn định.
Vậy phương pháp trên hội tụ. Đa thức đặc trưng thứ nhất của phương pháp trên là ρ(t) = t 2 − 1
2t Đa thức đặc trưng thứ hai của phương pháp trên là σ(t) = 3
48t 4 +o(t 5 ).Vậy phương pháp trên có cấp chính xác p= 3.
Dự báo bằng phương pháp tuyến tính đa bước hiển và hiệu chỉnh thông qua phương pháp tuyến tính đa bước ẩn nhằm giải quyết bài toán Cauchy cho phương trình vi phân thường.
Kết hợp phương pháp Nystr ¨ o m 2 bước và phương pháp
pháp Adams - Moulton 2 bước để giải bài toán Cauchy
Bước 1: Chia đoạn [a, b] thành N phần bằng nhau bởi các điểm chia a x 0 , x 1 , , x N = b, tìm h.
Bước 2: Trong đoạn [x0, x 1 ] ta chia làm hai phần bằng nhau bởi điểm chia x 01 , tìm h 1 = h
2, x 01 Tính y 01 bằng phương pháp Euler hiển y n+1 = y n +hf(x n , y n ) Bước 3: Dự báo y 1 bằng phương pháp Nystro¨m 2 bước y 1 = y 0 + 2h 1 f(x 01 , y 01 )
Bước 4: Hiệu chỉnh y 1 lần đầu tiên bằng phương pháp Adams - Moulton
Bước 5: Hiệu chỉnh y 1 lần 2 bằng phương pháp Adams - Moulton 2 bước y n+1 2 = y n + h
Bước 6: Nếu y k 1 −y 1 k−1 < ε k = 1,2,3, (*) thì dừng thực hiện, ngược lại thì tiếp tục hiệu chỉnh y 1 cho đến khi thỏa mãn điều kiện (*).
Kí hiệu y ∗ 1 là giá trị hiệu chỉnh thỏa mãn điều kiện (*)
Bước 7: Dự báo y 2 bằng phương pháp Adams - Bashforth 2 bước với y 1 = y ∗ 1
Bước 8: Thực hiện hiệu chỉnh y 2 cho đến khi thỏa mãn y 2 k −y k−1 2 < ε k = 1,2,3, thì dừng, chuyển sang dự báo y 3
Bước 9: Dự báo và hiệu chỉnh y 3
Thực hiện tuần tự cho đến y N
3.1.2 Áp dụng giải một số ví dụ
Ví dụ 3.1 Giải bài toán
Sử dụng Maple để giải bài toán trên.
Bước 1: Ta chia đoạn [0,1] thành 100 phần, x 0 = 0, y 0 = y(0) = 1, h = 0,01,x 1 = 0,01
Trong đoạn [x 0 , x 1 ] chia thành 2 phần bằng nhau bởi điểm chia x 01 , h 1 h
Bước 2: Tính y 01 bằng phương pháp Euler hiển y 01 = y 0 +h 1 f(x 0 , y 0 ) = 0
Bước 3: Dự báo y 1 bằng phương pháp Nystro¨m 2 bước y 1 = y 0 + 2h1f(x01, y 01 ) = 2,5.10 −7
Bước 4: Hiệu chỉnh y 1 bằng phương pháp Adams - Moulton 2 bước y 1 1 = y 01 +h 1
So sánh điều kiện |y 1 3 −y 1 2 | < ε dừng hiệu chỉnh y 1
Bước 5: Dự báo y 2 bằng phương pháp Nystro¨m 2 bước y 2 = 0,00000200000000125 Bước 6: Hiệu chỉnh y 2 nhiều lần được y 2 = 0,000002625000029455295784128084
Thực hiện tuần tự cho đến y 100 ta có được bảng giá trị sau x n y n Dự báo y n Hiệu chỉnh y n Maple yd-ym yh-ym
So sánh giá trị giữa cột hiệu chỉnh và cột do Maple tính cho thấy sai số chỉ ở mức 6-7 chữ số chắc, cho thấy độ chính xác cao Điều này có ý nghĩa quan trọng trong việc áp dụng phương pháp số để giải gần đúng các phương trình vi phân.
Ta có đồ thị minh họa bằng Maple
Hình 3.1: Đồ thị biểu diễn nghiệm hiệu chỉnh
Hình 3.2: Đồ thị biểu diễn nghiệm do Maple tính
Ví dụ 3.2 Giải bài toán
Sử dụng Maple để giải bài toán trên.
Bước 1: Ta chia đoạn [0,1] thành 100 phần, x 0 = 0, y 0 = y(0) = 1, h = 0,001,x 1 = 0,001
Trong đoạn [x 0 , x 1 ] chia thành 2 phần bằng nhau bởi điểm chia x 01 , h 1 = h
Bước 2: Tính y 01 bằng phương pháp Euler hiển y 01 = y 0 +h 1 f(x0, y 0 ) = 0,0005
Bước 3: Dự báo y 1 bằng phương pháp Nystro¨m 2 bước y 1 = y 0 + 2h1f(x01, y 01 ) = 0,0009999999998750000052083332
Bước 4: Hiệu chỉnh y 1 bằng phương pháp Adams - Moulton 2 bước y 1 1 = y 01 +h 1
So sánh điều kiện |y 1 3 −y 1 2 | < ε dừng hiệu chỉnh y 1
Thực hiện tuần tự cho đến y 100 ta có được bảng giá trị sau x n y n Dự báo y n Hiệu chỉnh y n Maple
Từ bảng các giá trị trên so sánh giá trị chính xác với giá trị dự báo và giá trị hiệu chỉnh ta được bảng sai số sau
Giá trị x n |yd−ym| |yh−ym|
So sánh giữa giá trị hiệu chỉnh và giá trị do Maple tính cho thấy giá trị hiệu chỉnh gần bằng giá trị nghiệm của Maple, với độ chính xác lên tới 10 chữ số chắc trở lên Trong khi đó, giá trị dự báo chỉ chính xác đến 10 chữ số chắc trở xuống Điều này cho thấy giá trị hiệu chỉnh vượt trội hơn hẳn so với giá trị dự báo, mang lại ý nghĩa quan trọng trong việc giải gần đúng các phương trình vi phân bằng phương pháp số.
Ta có đồ thị minh họa bằng Maple
Hình 3.3: Đồ thị biểu diễn nghiệm hiệu chỉnh
Hình 3.4: Đồ thị biểu diễn nghiệm do Maple tính
Kết hợp phương pháp Adams - Bashforth 2 bước và phương pháp tuyến tính 2 bước để giải bài toán Cauchy
bước và phương pháp tuyến tính 2 bước để giải bài toán Cauchy
( y ′ = f (x, y) y(x 0 ) = y 0 , x∈ [a, b] Bước 1: Chia đoạn [a, b] thành N phần bằng nhau bởi các điểm chia a x 0 , x 1 , , x N = b, tìm h.
Bước 2: Trong đoạn [x 0 , x 1 ] ta chia làm hai phần bằng nhau bởi điểm chia x 01 , tìm h 1 = h
2, x 01 Tính y 01 bằng phương pháp Euler hiển y n+1 = y n +hf(xn, y n )
Bước 3: Dự báo y 1 bằng phương pháp Adams - Bashforth 2 bước y n+1 = y n +h[3
Bước 4: Hiệu chỉnh y 1 lần đầu tiên bằng phương pháp tuyến tính 2 bước y n+1 1 = 1
Bước 5: Hiệu chỉnh y 1 lần 2 bằng phương pháp tuyến tính 2 bước y n+1 2 = 1
Bước 6: Nếu y k 1 −y 1 k−1 < ε k = 1,2,3, (*) thì dừng thực hiện, ngược lại thì tiếp tục hiệu chỉnh y 1 cho đến khi thỏa mãn điều kiện (*).
Kí hiệu y ∗ 1 là giá trị hiệu chỉnh thỏa mãn điều kiện (*)
Bước 7: Dự báo y 2 bằng phương pháp Adams - Bashforth 2 bước với y 1 = y ∗ 1
Bước 8: Thực hiện hiệu chỉnh y 2 cho đến khi thỏa mãn y 2 k −y k−1 2 < ε k = 1,2,3, thì dừng, chuyển sang dự báo y 3
Bước 9: Dự báo và hiệu chỉnh y 3
Thực hiện tuần tự cho đến y N
3.2.2 Áp dụng giải một số ví dụ
Ví dụ 3.3 Giải bài toán
Sử dụng Maple để giải bài toán trên.
Bước 1: Ta chia đoạn [0,0.1] thành 100 phần, x 0 = 0, y0 = y(0) = 1, h = 0,001,x 1 = 0,001
Trong đoạn [x 0 , x 1 ] chia thành 2 phần bằng nhau bởi điểm chia x 01 , h 1 = h
Bước 2: Tính y 01 bằng phương pháp Euler hiển y 01 = y 0 +h 1 f(xn, y n ) = 1,0005 Bước 3: Dự báo y 1 bằng phương pháp Adams-Bashforth 2 bước y 1 = y 01 +h 1 [3
Bước 4: Hiệu chỉnh y 1 bằng phương pháp tuyến tính 2 bước y 1 1 = 1
So sánh điều kiện |y 1 3 −y 1 2 | < ε dừng hiệu chỉnh y 1
Bước 5: Dự báo giá trị y2 bằng phương pháp Adams - Bashforth 2 bước với y1 = 1,000999999843791705071998 và y2 = 1,001999999156515830067382 Bước 6: Tiến hành hiệu chỉnh nhiều lần cho y2, cuối cùng đạt được giá trị y2 = 1,001999998672563962763023 Quá trình này được thực hiện tuần tự cho đến y100, từ đó tạo ra bảng giá trị x_n và y_n cùng với các dự báo và hiệu chỉnh y_n sử dụng phần mềm Maple.
Từ bảng các giá trị trên so sánh giá trị chính xác với giá trị dự báo và giá trị hiệu chỉnh ta được bảng sai số sau
Giá trị x n |yd−ym| |yh−ym|
So sánh giữa giá trị hiệu chỉnh và giá trị do Maple tính cho thấy giá trị hiệu chỉnh gần bằng giá trị nghiệm của Maple, đạt độ chính xác đến 10, 11 chữ số chắc, trong khi giá trị dự báo chỉ đúng 9, 10 chữ số chắc Điều này cho thấy giá trị hiệu chỉnh vượt trội hơn hẳn so với giá trị dự báo, điều này rất quan trọng trong việc giải gần đúng các phương trình vi phân bằng phương pháp số.
Ta có đồ thị minh họa bằng Maple
Hình 3.5: Đồ thị biểu diễn nghiệm hiệu chỉnh
Hình 3.6: Đồ thị biểu diễn nghiệm do Maple tính
Ví dụ 3.4 Giải bài toán
Sử dụng Maple để giải bài toán trên.
Bước 1: Ta chia đoạn [0,0.1] thành 100 phần, x 0 = 0, y 0 = y(0) = 1, h = 0,001,x 1 = 0,001
Trong đoạn [x0, x 1 ] chia thành 2 phần bằng nhau bởi điểm chia x 01 , h 1 h
Bước 2: Tính y 01 bằng phương pháp Euler hiển y 01 = y 0 + h 1 f(xn, y n ) = 0
Bước 3: Dự báo y 1 bằng phương pháp Adams-Bashforth 2 bước y 1 = y 01 +h 1 [3
Bước 4: Hiệu chỉnh y 1 bằng phương pháp tuyến tính 2 bước y 1 1 = 1
So sánh điều kiện |y 2 1 −y 1 1 | < ε dừng hiệu chỉnh y 1
Bước 5: Sử dụng phương pháp Adams - Bashforth 2 bước để dự báo y2 với y1 = 1,000999999843791705071998 và y2 = 1,59375028125.10^(-12) Bước 6: Tiến hành hiệu chỉnh nhiều lần cho y2, kết quả cuối cùng đạt được là y2 = 4,125006734385306647614779.10^(-12) Quá trình này được thực hiện tuần tự cho đến y100, từ đó tạo ra bảng giá trị x_n và y_n, bao gồm dự báo y_n và hiệu chỉnh y_n, sử dụng phần mềm Maple.
Từ bảng các giá trị trên so sánh giá trị chính xác với giá trị dự báo và giá trị hiệu chỉnh ta được bảng sai số sau
Giá trị x n |yd−ym| |yh−ym|
So sánh giữa giá trị hiệu chỉnh và giá trị do Maple tính cho thấy giá trị hiệu chỉnh gần bằng giá trị nghiệm của Maple, với độ chính xác lên đến 10 chữ số chắc trở lên Trong khi đó, giá trị dự báo chỉ đạt độ chính xác 9 chữ số chắc trở xuống Điều này chứng tỏ rằng giá trị hiệu chỉnh vượt trội hơn so với giá trị dự báo, có ý nghĩa quan trọng trong việc giải gần đúng các phương trình vi phân bằng phương pháp số.
Ta có đồ thị minh họa bằng Maple
Hình 3.7: Đồ thị biểu diễn nghiệm hiệu chỉnh
Hình 3.8: Đồ thị biểu diễn nghiệm do Maple tính
3.3 Kết hợp phương pháp Nystr om 2 bước và phương ¨ pháp Adams - Moulton 3 bước để giải bài toán Cauchy
Bước 1: Chia đoạn [a, b] thành N phần bằng nhau bởi các điểm chia a x 0 , x 1 , , x N = b, tìm h.
Bước 2: Sử dụng phương pháp Runge - Kutta hiển 4 nấc tính các giá trị y 1 , y 2 với h = b−a
Bước 3: Dự báony 3 bằng phương pháp Nystro¨m 2 bước. y n+1 = y n−1 + 2hf(xn, y n )
Bước 4: Hiệu chỉnh y 3 lần đầu tiên bằng phương pháp Adams - Moulton
Bước 5: Hiệu chỉnh y 3 lần 2 bằng phương pháp Adams - Moulton 3 bước y 2 n+1 = y n +h
Bước 6: Nếu y k 3 −y 3 k−1 < ε k = 1,2,3, (*) thì dừng thực hiện, ngược lại thì tiếp tục hiệu chỉnh y 3 cho đến khi thỏa mãn điều kiện (*).
Kí hiệu y ∗ 3 là giá trị hiệu chỉnh thỏa mãn điều kiện (*)
Bước 7: Dự báo y 4 bằng phương pháp Nystro¨m 2 bước với y 3 = y ∗ 3
Bước 8: Thực hiện hiệu chỉnh y 4 cho đến khi thỏa mãn y 4 k −y k−1 4 < ε k = 1,2,3, thì dừng, chuyển sang dự báo y 5
Bước 9: Dự báo và hiệu chỉnh y 5
Thực hiện tuần tự cho đến y N
3.3.2 Áp dụng giải một số ví dụ
Ví dụ 3.5 Giải bài toán
Chia đoạn [0,1] thành 100 đoạn bằng nhau, khi đó h = 0,001 Chọn ε = 10 −20
Tính giá trị y 1 bằng phương pháp Runge - Kutta hiển bốn nấc
Dự báo y 3 bằng phương pháp Nystro¨m 2 bước y 3 = y 1 + 2hf(x2, y 2 ) = 0,9970005
Hiệu chỉnh y 3 bằng phương pháp Adams - Moulton 3 bước lần thứ nhất y 1 3 = y 2 + h
Hiệu chỉnh y 3 bằng phương pháp Adams - Moulton 3 bước lần thứ 2 y 2 3 = y 2 + h
Hiệu chỉnh y 3 bằng phương pháp Adams - Moulton 3 bước lần thứ 3 y 3 3 = y 2 + h
Hiệu chỉnh y 3 bằng phương pháp Adams - Moulton 3 bước lần thứ 4 y 4 4 = y 3 + h
Hiệu chỉnh y 3 bằng phương pháp Adams - Moulton 3 bước lần thứ 5 y 5 3 = y 2 + h
Hiệu chỉnh y 3 bằng phương pháp Adams - Moulton 3 bước lần thứ 6 y 6 3 = y 2 + h
Tương tự ta dự báo và hiệu chỉnh các giá trị còn lại, ta đưa ra bảng sau với một số giá trị x n y n Dự báo y n Hiệu chỉnh y n Maple
Từ bảng các giá trị trên so sánh giá trị chính xác với giá trị dự báo và giá trị hiệu chỉnh ta được bảng sai số sau
Giá trị x n |yd−ym| |yh −ym|
So sánh giữa giá trị hiệu chỉnh và giá trị do Maple tính cho thấy giá trị hiệu chỉnh đạt độ chính xác 12-13 chữ số chắc, trong khi giá trị dự báo chỉ đạt 9-10 chữ số chắc Điều này cho thấy giá trị hiệu chỉnh vượt trội hơn hẳn so với giá trị dự báo, điều này rất quan trọng trong việc giải gần đúng các phương trình vi phân bằng phương pháp số.
Ta có đồ thị minh họa bằng Maple
Hình 3.9: Đồ thị biểu diễn nghiệm hiệu chỉnh
Hình 3.10: Đồ thị biểu diễn nghiệm do Maple tính
Ví dụ 3.6 Giải bài toán
Chia đoạn [0,1] thành 1000 đoạn bằng nhau, khi đó h = 0,001 Chọn ε = 10 −25
Tính giá trị y 1 bằng phương pháp Runge - Kutta hiển bốn nấc
Dự báo y 3 bằng phương pháp Nystro¨m 2 bước y 3 = y 1 + 2hf(x 2 , y 2 ) = 5,001668334.10 −7 Hiệu chỉnh y 3 bằng phương pháp Adams - Moulton 3 bước lần thứ nhất y 1 3 = y 2 + h
Hiệu chỉnh y 3 bằng phương pháp Adams - Moulton 3 bước lần thứ 2 y 2 3 = y 2 + h
Hiệu chỉnh y 3 bằng phương pháp Adams - Moulton 3 bước lần thứ 3 y 3 3 = y 2 + h
Hiệu chỉnh y 3 bằng phương pháp Adams - Moulton 3 bước lần thứ 4 y 4 4 = y 3 + h
Hiệu chỉnh y 3 bằng phương pháp Adams - Moulton 3 bước lần thứ 5 y 5 3 = y 2 + h
Hiệu chỉnh y 3 bằng phương pháp Adams - Moulton 3 bước lần thứ 6 y 6 3 = y 2 + h
Tương tự ta dự báo và hiệu chỉnh các giá trị còn lại, ta đưa ra bảng sau với một số giá trị x n y n Dự báo y n Hiệu chỉnh y n Maple
Từ bảng các giá trị trên so sánh giá trị chính xác với giá trị dự báo và giá trị hiệu chỉnh ta được bảng sai số sau
Giá trị x n |yd−ym| |yh−ym|
So sánh giữa giá trị hiệu chỉnh và giá trị do Maple tính cho thấy giá trị hiệu chỉnh đạt độ chính xác 12 chữ số chắc, trong khi giá trị dự báo chỉ đạt 8 đến 9 chữ số chắc Điều này chứng tỏ rằng giá trị hiệu chỉnh vượt trội hơn rõ rệt so với giá trị dự báo, mang lại ý nghĩa quan trọng trong việc giải gần đúng các phương trình vi phân bằng phương pháp số.
Ta có đồ thị minh họa bằng Maple
Hình 3.11: Đồ thị biểu diễn nghiệm hiệu chỉnh
Hình 3.12: Đồ thị biểu diễn nghiệm do Maple tính
Kết hợp phương pháp Adams - Bashforth 3 bước và phương pháp BDF 3 bước để giải bài toán Cauchy
bước và phương pháp BDF 3 bước để giải bài toán Cauchy
Bước 1: Chia đoạn [a, b] thành N phần bằng nhau bởi các điểm chia a = x 0 , x 1 , , x N = b, tìm h.
Bước 2: Sử dụng phương pháp Runge - Kutta hiển 4 nấc tính các giá trị y 1 , y 2 với h = b−a n
Bước 3: Dự báo y 3 bằng phương pháp Adams - Bashforth 3 bước y n+1 = y n +h
Bước 4: Hiệu chỉnh y 3 lần đầu tiên bằng phương pháp BDF 3 bước y 1 n+1 = 18
11h(x n+1 , y n+1 )Bước 5: Hiệu chỉnh y 3 lần 2 bằng phương pháp BDF 3 bước y 2 n+1 = 18
11h(x n+1 , y n+1 1 ) Bước 6: Nếu y k 3 −y 3 k−1 < ε k = 1,2,3, (*) thì dừng thực hiện, ngược lại thì tiếp tục hiệu chỉnh y 3 cho đến khi thỏa mãn điều kiện (*).
Kí hiệu y ∗ 3 là giá trị hiệu chỉnh thỏa mãn điều kiện (*)
Bước 7: Dự báo y 4 bằng phương pháp Adams - Bashforth 3 bước với y 3 = y ∗ 3
Bước 8: Thực hiện hiệu chỉnh y 4 cho đến khi thỏa mãn y 4 k −y k−1 4 < ε k = 1,2,3, thì dừng, chuyển sang dự báo y 5
Bước 9: Dự báo và hiệu chỉnh y 5
Thực hiện tuần tự cho đến y N
3.4.2 Áp dụng giải một số ví dụ
Ví dụ 3.7 Giải bài toán
Chia đoạn [0,0.1] thành 100 đoạn bằng nhau, khi đó h = 0,001
Tính giá trị y 1 bằng phương pháp Runge - Kutta hiển bốn nấc
Dự báo y 3 bằng phương pháp Adams - Bashforth 3 bước y 3 = y 2 +h
Hiệu chỉnh y 3 bằng phương pháp BDF 3 bước lần thứ nhất y 1 3 = 18
11hf(x 3 , y 3 ) = 1,001616788610601960198959 Hiệu chỉnh y 3 bằng phương pháp BDF 3 bước lần thứ 2 y 2 3 = 18
11hf(x 3 , y 3 1 ) = 1,001616788610600439861325 Hiệu chỉnh y 3 bằng phương pháp BDF 3 bước lần thứ 3 y 3 3 = 18
11hf(x 3 , y 3 2 ) = 1,001616788610600440564446 Hiệu chỉnh y 3 bằng phương pháp BDF 3 bước lần thứ 4 y 4 3 = 18
Tương tự ta dự báo và hiệu chỉnh các giá trị còn lại, ta đưa ra bảng sau với một số giá trị x n y n Dự báo y n Hiệu chỉnh y n Maple
Từ bảng các giá trị trên so sánh giá trị chính xác với giá trị dự báo và giá trị hiệu chỉnh ta được bảng sai số sau
Giá trị x n |yd−ym| |yh−ym|
So sánh giữa cột hiệu chỉnh và cột giá trị do Maple tính cho thấy sai số rất nhỏ, điều này khẳng định tính chính xác trong việc giải gần đúng các phương trình vi phân bằng phương pháp số Tuy nhiên, sự khác biệt giữa giá trị dự báo và giá trị hiệu chỉnh vẫn còn hạn chế, cho thấy rằng hiệu chỉnh bằng phương pháp BDF 3 bước chưa đạt hiệu quả tối ưu.
Ta có đồ thị minh họa bằng Maple
Hình 3.13: Đồ thị biểu diễn nghiệm hiệu chỉnh
Hình 3.14: Đồ thị biểu diễn nghiệm do Maple tính
Ví dụ 3.8 Giải bài toán
Chia đoạn [0,1] thành 100 đoạn bằng nhau, khi đó h = 0,01 Chọn ε = 10 −20
Tính giá trị y 1 bằng phương pháp Runge - Kutta hiển bốn nấc
Dự báo y 3 bằng phương pháp Adams - Bashforth 3 bước y 3 = y 2 +h
Hiệu chỉnh y 3 bằng phương pháp BDF 3 bước lần thứ nhất y 1 3 = 18
11hf(x 3 , y 3 ) = 0,003009008978604458934341821 Hiệu chỉnh y 3 bằng phương pháp BDF 3 bước lần thứ 2 y 2 3 = 18
11hf(x 3 , y 3 1 ) = 0,003009008978602747388794788 Hiệu chỉnh y 3 bằng phương pháp BDF 3 bước lần thứ 3 y 3 3 = 18
11hf(x 3 , y 3 2 ) = 0,003009008978602746458042047 Hiệu chỉnh y 3 bằng phương pháp BDF 3 bước lần thứ 4 y 4 3 = 18
Tương tự ta dự báo và hiệu chỉnh các giá trị còn lại, ta đưa ra bảng sau với một số giá trị x n y n Dự báo y n Hiệu chỉnh y n Maple
Từ bảng các giá trị trên so sánh giá trị chính xác với giá trị dự báo và giá trị hiệu chỉnh ta được bảng sai số sau
Giá trị x n |yd−ym| |yh−ym|
So sánh giữa cột hiệu chỉnh và cột do Maple tính cho thấy sai số rất nhỏ, chỉ ra rằng việc giải gần đúng các phương trình vi phân bằng phương pháp số là hiệu quả Tuy nhiên, sự chênh lệch giữa cột giá trị dự báo và giá trị hiệu chỉnh lại rất ít, cho thấy rằng phương pháp BDF 3 bước chưa đạt hiệu quả cao trong việc cải thiện độ chính xác.
Ta có đồ thị minh họa bằng Maple
Hình 3.15: Đồ thị biểu diễn nghiệm hiệu chỉnh
Hình 3.16: Đồ thị biểu diễn nghiệm do Maple tính
Kết hợp phương pháp Nystr ¨ o m 3 bước và phương pháp
pháp Milne - Simpson 4 bước để giải bài toán Cauchy
Bước 1: Chia đoạn [a, b] thành N phần bằng nhau bởi các điểm chia a = x 0 , x 1 , , x N = b, tìm h.
Bước 2: Sử dụng phương pháp Runge - Kutta hiển 4 nấc tính các giá trị y 1 , y 2 , y 3 với h = b−a n
Bước 3: Dự báo y 4 bằng phương pháp Nystro¨m 3 bước y n+1 = y n−1 +h
Bước 4: Hiệu chỉnh y 4 lần đầu tiên bằng phương pháp Milne - Simpson 4 bước y 1 n+1 = y n−1 + h
Bước 5: Hiệu chỉnh y 4 lần 2 bằng phương pháp Milne - Simpson 4 bước y 2 n+1 = y n−1 + h
Bước 6: Nếu y k 4 −y 4 k−1 < ε k = 1,2,3, (*) thì dừng thực hiện, ngược lại thì tiếp tục hiệu chỉnh y 4 cho đến khi thỏa mãn điều kiện (*).
Kí hiệu y ∗ 4 là giá trị hiệu chỉnh thỏa mãn điều kiện (*)
Bước 7: Dự báo y 5 bằng phương pháp Nystro¨m 3 bước với y 4 = y ∗ 4
Bước 8: Thực hiện hiệu chỉnh y 5 cho đến khi thỏa mãn y 5 k −y k−1 5 < ε k = 1,2,3, thì dừng, chuyển sang dự báo y 6
Bước 9: Dự báo và hiệu chỉnh y 6
Thực hiện tuần tự cho đến y N
3.5.2 Áp dụng giải một số ví dụ
Ví dụ 3.9 Giải bài toán
Chia đoạn [0,0.1] thành 100 đoạn bằng nhau, khi đó h = 0,001 Chọn ε = 10 −20
Tính giá trị y 1 bằng phương pháp Runge - Kutta hiển bốn nấc
Y 14 = 1,0020075148617966231 y 2 = 1,002006010689550186605326 Tương tự dùng phương pháp Runge - Kutta hiển bốn nấc ta tính được y 3 = 1,003013536115379207555861
Dự báo y 4 bằng phương pháp Nystro¨m 3 bước y 4 = y 2 +h
Hiệu chỉnh y 4 bằng phương pháp Milne - Simpson 4 bước lần thứ nhất y 1 4 = y 2 + h
Hiệu chỉnh y 4 bằng phương pháp Milne - Simpson 4 bước lần thứ 2 y 2 4 = y 2 + h
Hiệu chỉnh y 4 bằng phương pháp Milne - Simpson 4 bước lần thứ 3 y 3 4 = y 2 + h
Hiệu chỉnh y 4 bằng phương pháp Milne - Simpson 4 bước lần thứ 4 y 4 4 = y 2 + h
Tương tự ta dự báo và hiệu chỉnh các giá trị còn lại, ta đưa ra bảng sau với một số giá trị x n y n Dự báo y n Hiệu chỉnh y n Maple
Từ bảng các giá trị trên so sánh giá trị chính xác với giá trị dự báo và giá trị hiệu chỉnh ta được bảng sai số sau
Giá trị x n |yd−ym| |yh −ym|
So sánh giữa giá trị hiệu chỉnh và giá trị do Maple tính cho thấy giá trị hiệu chỉnh gần bằng giá trị nghiệm của Maple, với độ chính xác đạt 13 chữ số chắc, trong khi giá trị dự báo chỉ đúng 11 chữ số chắc Điều này cho thấy giá trị hiệu chỉnh vượt trội hơn hẳn so với giá trị dự báo, mang ý nghĩa quan trọng trong việc giải gần đúng các phương trình vi phân bằng phương pháp số.
Ta có đồ thị minh họa bằng Maple
Hình 3.17: Đồ thị biểu diễn nghiệm hiệu chỉnh
Hình 3.18: Đồ thị biểu diễn nghiệm do Maple tính
Ví dụ 3.10 Giải bài toán
Chia đoạn [0,1] thành 1000 đoạn bằng nhau, khi đó h = 0,001 Chọn ε = 10 −20
Tính giá trị y 1 bằng phương pháp Runge - Kutta hiển bốn nấc
Y 14 = 4,7499999999999945925.10 −12 y 2 = 4,0000000000000041875.10 −12 Tương tự dùng phương pháp Runge - Kutta hiển bốn nấc ta tính được y 3 = 2,025000000000014956250000.10 −11
Dự báo y 4 bằng phương pháp Nystro¨m 3 bước y 4 = y 2 +h
Hiệu chỉnh y 4 bằng phương pháp Milne - Simpson 4 bước lần thứ nhất y 1 4 = y 2 + h
Hiệu chỉnh y 4 bằng phương pháp Milne - Simpson 4 bước lần thứ 2 y 2 4 = y 2 + h
Tương tự ta dự báo và hiệu chỉnh các giá trị còn lại, ta đưa ra bảng sau với một số giá trị x n y n Dự báo y n Hiệu chỉnh y n Maple
Từ bảng các giá trị trên so sánh giá trị chính xác với giá trị dự báo và giá trị hiệu chỉnh ta được bảng sai số sau
Giá trị x n |yd−ym| |yh−ym|
So sánh giữa giá trị hiệu chỉnh và giá trị do Maple tính cho thấy giá trị hiệu chỉnh gần bằng giá trị nghiệm do Maple tính, với độ chính xác lên đến 14-15 chữ số chắc Trong khi đó, giá trị dự báo chỉ đạt độ chính xác 10-11 chữ số chắc Điều này chứng tỏ rằng giá trị hiệu chỉnh vượt trội hơn nhiều so với giá trị dự báo, điều này rất quan trọng trong việc giải gần đúng các phương trình vi phân bằng phương pháp số.
Ta có đồ thị minh họa bằng Maple
Hình 3.19: Đồ thị biểu diễn nghiệm hiệu chỉnh
Hình 3.20: Đồ thị biểu diễn nghiệm do Maple tính
Chương trình giải trên Maple
Code: Kết hợp phương pháp Nystro¨m 2 bước và Adams - Moulton 2 bước giải số phương trình vi phân restart; with(Maplets[Elements]):
[ "Nhap a= ", TextField[a]("0"), " b= ", TextField[b]("1")], [ "Nhap n= ", TextField[n]("1000"), " y0= ", TextField[y0] ("1")],
The article outlines a mathematical procedure using a function defined by `ham` and parameters `a`, `b`, `n`, and `y0` It calculates the step size `h` and evaluates the function `f` at specified intervals A loop iterates from 0 to `n`, computing values of `x` based on the defined range The method employs a half-step size `h1` to refine calculations, starting with initial values for `yh` and `yd` The results include updated values for `yd` based on the function evaluations at calculated points, demonstrating an iterative approach to solving the problem.
H[1][1]:=evalf(y01+h1*((5/12)*f(x[1],H[1][0])+(2/3)*f(x01,y01) -(1/12)*f(x[0],yd[0])),25): i:=1: while abs(H[1][i]-H[1][i-1])>epsilon do i:=i+1;
H[1][i]:=evalf(y01+h1*((5/12)*f(x[1],H[1][i-1])+(2/3)*f(x01, y01)-(1/12)*f(x[0],yd[0])),25): if i>nmax then break; end if; end do: yh[1]:=H[1][i]: for i from 2 to n do yd[i]:=evalf(yh[i-2]+2*h*f(x[i-1],yh[i-1]),25):
H[i][1]:=evalf(yh[i-1]+h*((5/12)*f(x[i],H[i][0])+(2/3)* f(x[i-1],yh[i-1])-(1/12)*f(x[i-2],yh[i-2])),25): j:=1: while abs(H[i][j]-H[i][j-1])>epsilon do j:=j+1;
The algorithm computes the numerical solution of a differential equation using the method of successive approximations It evaluates the function iteratively, applying specific coefficients to the function values at previous points If the iteration exceeds the maximum limit, the process halts The solution is derived from the differential equation defined by the initial condition, and a numeric approach generates a list of procedures for the solution over a specified range Finally, the results are formatted and displayed in a structured manner, showcasing the computed values of x alongside their corresponding outputs.
The program iterates from 0 to 10, printing formatted values of x, yd, and yh, along with the evaluations of the function ngh and the absolute differences between these values The output includes precise formatting for clarity and comparison Additionally, two plots are generated: one for the exact solution of the function ngh in red, and another in blue representing the sequence of points with values from yh.
Nghiệm hiệu chỉnh"): plots[display](p1,p2);
Code: Kết hợp phương pháp Adams-Bashforth 2 bước và phương pháp tuyến tính 2 bước
>ham:=parse(gtn[1]); n:=parse(gtn[4]); a:=parse(gtn[2]); b:=parse(gtn[3]); y0:=parse(gtn[5]); h := evalf((b-a)/n); f := unapply(ham, x, y): epsilon:^(-20): nmax:0:
>x[0]:=a: h1 := evalf((1/2)*h,25): x01:=evalf(x[0]+h1,20): x[1]:=evalf(x[0]+h, 25): x[2]:=evalf(x[1]+h, 25): yh[0]:=evalf(y0,25): yd[0]:=evalf(y0,25): y01:=evalf(yh[0]+h1*f(x[0],yd[0]),25); yd[1]:=evalf(y01+(1/2)*h1*(3*f(x01, y01)-f(x[0], yd[0])), 25): H[1][0]:=yd[1]:
H[1][0])+f(x01,y01)+(1/8)*f(x[0],yd[0])),25): i:=1: while abs(H[1][i]-H[1][i-1])>epsilon do i:=i+1;
H[1][i-1])+f(x01,y01)+(1/8)*f(x[0],yd[0])),25); if i>nmax then break; end if; end do: yh[1]:=H[1][i]; yd[2]:=evalf(yd[1]+(1/2)*h*(3*f(x[1], yd[1])-f(x[0], yd[0])), 25); H[2][0]:=yd[2]:
H[2][1]:=evalf((1/2)*yh[0]+(1/2)*yh[1]+h*((3/8)*f(x[2],H[2][0]) +f(x[1],yh[1])+(1/8)*f(x[0],yh[0])),25); i:=1: while evalf(abs(H[2][i]-H[2][i-1]),20)>epsilon do i:=i+1;
[i-1])+f(x[1],yh[1])+(1/8)*f(x[0],yd[0])),25); if i>nmax then break; end if; end do; yh[2]:=H[2][i]; for i from 3 to n do yd[i]:=evalf(yh[i-1]+h*((3/2)*f(x[i-1],yh[i-1])-((1/2)*f(x[i-2], yh[i-2]))),25);
H[i][0])+f(x[i-1],yh[i-1])+(1/8)*f(x[i-2],yh[i-2])),25): j:=1: while abs(H[i][j]-H[i][j-1])>epsilon do j:=j+1;
H[i][j]:=evalf((1/2)*yh[i-2]+(1/2)*yh[i-1]+h*((3/8)*f(x[i], H[i][j-1])+f(x[i-1],yh[i-1])+(1/8)*f(x[i-2],yh[i-2])),25): if j>nmax then break; end if; end do: yh[i]:=H[i][j]; end do:
The code snippet demonstrates how to solve a differential equation using Maple It first attempts to find an exact solution for the equation defined by the function f(t, y(t)) with the initial condition y(0) = y0 If no exact solution is found, it notifies the user that a numerical solution will be generated using the Runge-Kutta method of order 4-5 for comparison If an exact solution is available, it evaluates and presents the solution, indicating that the exact solution was successfully computed using Maple.
"y du bao","y hieu chinh","y Maple","yM-yd","yM-yh");
>for i from 0 to 10 do printf("%10.3f%20.10f%20.10f%20.10f%20.10f%20.10f\n", x[i*n/10],yd[i*n/10],yh[i*n/10],evalf(ngh(x[i*n/10]),25), evalf(abs(ngh(x[i*n/10])-yd[i*n/10])), evalf(abs(ngh(x[i*n/10])-yh[i*n/10]))); end do;
> p1:=plot(ngh(t),t=a b,color=red,legend="Nghiệm Maple"): p2:=plot([seq([x[i],yh[i]],i=0 n)],color=blue,style=point
,symbolsize=4,legend="Nghiệm hiệu chỉnh"): plots[display](p1,p2);
>p1:=plot(ngh(t),t=a b,color=red,legend="Nghiệm Maple"): p2:=plot([seq([x[i],yh[i]],i=0 n)],color=blue, legend="Nghiệm hiệu chỉnh"): plots[display](p2,p1);
>p1:=plot(ngh(t),t=a b,color=red,legend="Nghiệm Maple"): plots[display](p1);
>p2:=plot([seq([x[i],yh[i]],i=0 n)],color=blue, legend="Nghiệm hiệu chỉnh"): plots[display](p2);
>p1:=plot([seq([x[i],yd[i]],i=0 n)],color=blue, legend="Nghiệm dự báo"): p2:=plot([seq([x[i],yh[i]],i=0 n)],color=red, legend="Nghiệm hiệu chỉnh"): plots[display](p1,p2);
Code: Kết hợp phương pháp Nystro¨m 2 bước và Adams - Moulton 3 bước giải số phương trình vi phân restart; with(Maplets[Elements]):
["Nhap ham f(x,y)= ",TextField[f]("x*exp(x)-y*cos(x)")], [ "Nhap a= ", TextField[a]("0"), " b= ", TextField[b]("1")], [ "Nhap n= ", TextField[n]("1000"), " y0= ", TextField[y0] ("0")],
The article discusses a numerical method for solving differential equations using a structured algorithm It begins by initializing parameters such as the range [a, b], the number of intervals n, and the initial value y0 The step size h is calculated, and the function ham is defined for later evaluations The algorithm iteratively computes x values and corresponding y values using a series of evaluations and approximations, including midpoint and trapezoidal rules The results are stored in arrays yd and yh, capturing the calculated values at each step This structured approach ensures accurate results for differential equations, making it a valuable method in numerical analysis.
H[3][1]:=evalf(yh[2]+h*((3/8)*f(x[3],H[3][0])+(19/24)*f(x[2], yh[2]) -(5/24)*f(x[1],yh[1])+(1/24)*f(x[0],yh[0])),25); i:=1: while evalf(abs(H[3][i]-H[3][i-1]),20)>epsilon do i:=i+1;
H[3][i]:=evalf(yh[2]+h*((3/8)*f(x[3],H[3][i-1])+(19/24)*f(x[2], yh[2]) -(5/24)*f(x[1],yh[1])+(1/24)*f(x[0],yh[0])),25); if i>nmax then break; end if; end do; yh[3]:=H[3][i]; for i from 4 to n do yd[i]:=evalf(yh[i-2]+2*h*f(x[i-1],yh[i-1]),25);
H[i][1]:=evalf(yh[i-1]+h*((3/8)*f(x[i],H[i][0])+(19/24)*f(x[i-1], yh[i-1]) -(5/24)*f(x[i-2],yh[i-2])+(1/24)*f(x[i-3],yh[i-3])),25); j:=1: while abs(H[i][j]-H[i][j-1])>epsilon do j:=j+1:
The calculation involves a numerical method where the function values are combined using specific coefficients to derive an approximation If the iteration index exceeds the maximum allowed, the process terminates The solution is then assigned from a matrix In the event that an exact solution cannot be found, a numerical approximation using the fourth to fifth-order Runge-Kutta method is employed for comparison If a solution is found, it is presented as a function of time, and the accurate solution computed by Maple is displayed The output includes formatted results showing the predicted values of the function at specified points.
,"y hieu chinh","y Maple","yM-yd","yM-yh"); for i from 3 to 10 do printf("%10.3f %20.15f %20.15f %20.15f %20A %20A\n",x[i*n/10]
,yd[i*n/10],yh[i*n/10],evalf(ngh(x[i*n/10])),evalf(abs(ngh
(x[i*n/10])-yd[i*n/10])),evalf(abs(ngh(x[i*n/10])-yh[i*n/10]))); end do; p1:=plot(ngh(t),t=a b,color=red,legend="Nghiệm chính xác"): p2:=plot([seq([x[i],yh[i]],i=0 n)],color=blue,style=point
,legend="Nghiệm hiệu chỉnh"): plots[display](p1,p2);
Code: Kết hợp phương pháp Adams - Bashforth 3 bước và BDF 3 bước giải số phương trình vi phân restart; with(Maplets[Elements]):
["Nhap ham f(x,y)= ",TextField[f]("y+exp(x)*cos(y)")],
[ "Nhap a= ", TextField[a]("0"), " b= ", TextField[b]("0.1")], [ "Nhap n= ", TextField[n]("100"), " y0= ", TextField[y0]
The article outlines a numerical method for solving differential equations using the Runge-Kutta technique It begins by defining parameters such as the interval width \( h \) and the number of steps \( n \) The initial values are parsed, and the function is prepared for evaluation A loop is implemented to calculate the \( x \) values based on the interval The algorithm progresses through several stages, calculating intermediate \( y \) values using weighted averages of function evaluations The results are stored in arrays for both the predicted values and the higher-order approximations Ultimately, the method provides a structured approach to approximating solutions to differential equations with improved accuracy.
H[3][0])+(2/11)*yh[0],25); i:=1: while evalf(abs(H[3][i]-H[3][i-1]),20)>epsilon do i:=i+1;
H[3][i-1])+(2/11)*yh[0],25); if i>nmax then break; end if; end do; yh[3]:=H[3][i]; for i from 4 to n do yd[i]:=evalf(yh[i-1]+h*((23/12)*f(x[i-1],yh[i-1])-(4/3)*f(x[i-2],yh[i-2])+(5/12)*f(x[i-3],yh[i-3])),25);
H[i][1]:=evalf((18/11)*yh[i-1]-(9/11)*yh[i-2]+(6/11)*h*f(x[i], H[i][0])+(2/11)*yh[i-3],25); j:=1: while abs(H[i][j]-H[i][j-1])>epsilon do j:=j+1:
The algorithm calculates H[i][j] using a specific formula that incorporates previous values of yh and the function f(x[i], H[i][j-1]) If the iteration exceeds nmax, the process terminates The solution y is defined, and the system attempts to find an exact solution using dsolve for the differential equation with an initial condition If no exact solution is found, a numerical approximation is generated using the Runge-Kutta method of order 4-5 for comparison The results are evaluated and printed, displaying the values of x, predicted y, adjusted y, Maple's solution, and the differences between the numerical and exact solutions.
(x[i*n/10])-yd[i*n/10])),evalf(abs(ngh(x[i*n/10])-yh[i*n/10]))); end do; p1:=plot(ngh(t),t=a b,color=red,legend="Nghiệm chính xác"): p2:=plot([seq([x[i],yh[i]],i=0 n)],color=blue,style=point ,legend="Nghiệm hiệu chỉnh"): plots[display](p1,p2);
Code: Kết hợp phương pháp Nystro¨m 3 bước và Milne - Simpson 4 bước giải số phương trình vi phân restart; with(Maplets[Elements]):
[ "Nhap a= ", TextField[a]("0"), " b= ", TextField[b]("1")], [ "Nhap n= ", TextField[n]("1000"), " y0= ", TextField[y0] ("0")],
The article discusses a computational approach using Maplets to display and parse input values for variables such as `a`, `b`, `n`, and `y0` It calculates the step size `h` based on the range between `a` and `b`, divided by `n` The function `f` is defined using the unapply method, while a small epsilon value is set for precision A loop initializes an array `x` with values from `a` to `b`, incrementing by `h` Finally, it initializes `yh` and `yd` arrays with the evaluated initial value `y0`.
(2/3)*f(x[z-1]+(1/2)*h,Y[z-1][2])+(1/6)*f(x[z-1]+h,Y[z-1] [4])),15): yh[z]:=yd[z]: end do; yd[4]:=yd[2]+h*((7/3)*f(x[3],yh[3])-(2/3)*f(x[2],yh[2]) +(1/3)*f(x[1],yh[1])):
*h*f(x[3],yh[3])+(24/90)*h*f(x[2],yh[2])+(4/90)*h*f(x[1], yh[1])-(1/90)*h*f(x[0],yh[0]),25); i:=1: while evalf(abs(H[4][i]-H[4][i-1]),20)>epsilon do i:=i+1;
*h*f(x[3],yh[3])+(24/90)*h*f(x[2],yh[2])+(4/90)*h*f(x[1], yh[1])-(1/90)*h*f(x[0],yh[0]),25): if i>nmax then break; end if; end do; yh[4]:=H[4][i]: for i from 5 to n do yd[i]:=yh[i-2]+h*((7/3)*f(x[i-1],yh[i-1])-(2/3)
*f(x[i-3],yh[i-3])-(1/90)*h*f(x[i-4],yh[i-4]),25): j:=1: while abs(H[i][j]-H[i][j-1])>epsilon do j:=j+1;
In the numerical method described, the algorithm iteratively calculates values using the function f and previous results, breaking the loop if the maximum iterations are exceeded If no exact solution is found using the dsolve function, a numerical approximation is generated via the Runge-Kutta method of order 4-5 for comparison The program evaluates the approximate solution and, if successful, produces the exact solution found by Maple It then prints a formatted table displaying values of x, predicted y, corrected y, Maple's y, and the differences between these values for analysis, ensuring a clear comparison of results.
(x[i*n/10])-yd[i*n/10])),evalf(abs(ngh(x[i*n/10])-yh[i*n/10]))); end do; p1:=plot(ngh(t),t=a b,color=red,legend="Nghiệm chính xác"): p2:=plot([seq([x[i],yh[i]],i=0 n)],color=blue,style=point
,legend="Nghiệm hiệu chỉnh"): plots[display](p1,p2);
Khóa luận đã nghiên cứu các khái niệm cơ bản của giải tích số và trình bày chi tiết về các phương pháp số như Adams - Bashforth, Adams - Moulton, BDF, và phương pháp tuyến tính 2 bước ẩn với cấp chính xác bằng 3 Bên cạnh đó, khóa luận cũng đề cập đến các phương pháp Nystro¨m và Milne – Simpson, đồng thời kết hợp một số phương pháp này để giải các phương trình vi phân thường.
Nghiên cứu kết hợp nhiều phương pháp số trong giải các bài toán Cauchy đã cho ra nghiệm gần đúng với sai số nhỏ so với nghiệm chính xác Việc lập trình trên Maple giúp minh họa trực quan và sinh động Hy vọng rằng khóa luận này sẽ được nghiên cứu sâu hơn, kết hợp các phương pháp bậc cao hơn để nâng cao độ chính xác cho bài toán.