TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘIBáo cáo giải tích sốPhương pháp Adam giải phươngtrình vi phânGiảng viên hướng dẫn: TS Hà Thị Ngọc YếnMSSV: 20200446... Mục lụcLý thuyết của phương phápPhươ
Trang 1TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
Báo cáo giải tích số
Phương pháp Adam giải phương
trình vi phân
Giảng viên hướng dẫn: TS Hà Thị Ngọc Yến
MSSV: 20200446
Trang 2Mục lục
Lý thuyết của phương pháp
Phương pháp Adam-Bashforth
Phương pháp Adam-Moulton
Thuật toán
Tìm hệ số của phương pháp
Phương pháp Adam-Bashforth 4 bước
Phương pháp Adam-Moulton 4 bước
Phương pháp AM-AB 4 bước dự báo hiệu chỉnh
Ví dụ
Kết luận
Trang 3Phần 1: Cơ sở lý thuyết
Phương pháp Adam giải phương trình vi phân y ' f x y ( , ) với y x ( ) 0 y 0, 0
x x X có phương trình sai phân dùng để tìm giá trị xấp xỉ của y i 1tại điểm lưới x i 1 được biểu diễn bằng phương trình sau với n 1:
1 1 2 1 0 1 ( 1 , 1 ) 0 ( 1 , 1 )
y a y a y a y h b f t y b f t y với i m 1, , , m n 1, với các giá trị y 0 , , ym1 cho trước Nếu bm 0phương pháp được gọi là phương pháp hiện, nếu bm 0phương pháp được gọi là phương pháp ẩn
Xét bài toán Cauchy: y ' f x y ( , ) với y x ( ) 0 y 0với x 0 x X Các điểm trên đoạn [x 0,X] là x x 1 , , , 2 nxcó bước là h Xn x0 Tích phân phương trình vi
phân trên đoạn x xk, k1, ta được
1
1
( ) ( ) ( , )
k
k
x
x
y x y x f x y dx
(1) Tuy nhiên tại bước này không tính được tích phân trực tiếp do y x ( ) không biết trước
Vì thế thay vì tích phân hàm f x y x ( , ( )) , cần tính tích phân của đa thức nội suy P t ( )với các điểm cho trước ( , ),( , ), ,( x y 0 0 x y 1 1 nx 1 , ny 1 ) Giả sử y x ( )i yi, khi
đó :
1
1
i
x
y x y P t dt
Xây dựng công thức Adam-Bashford m bước :
Công thức được xây dựng bằng cách sử dụng đa thức nội suy Newton lùi
1 ( )
m
P t với các điểm ( , ( , )), ,( x f x yi i i ix 1 m, ( f xi1 , (m y x 1i ))m thay x i x sh, ta có:
i
Khi đó :
Trang 4Nếu công thức dừng lại ở sai phân bậc k, ta có sai số của công thức là:
1 0
( )
( 1)!
i
i
k
x
y x
k
Ta có công thức
k
Xây dựng công thức Adam-Moulton m bước :
Công thức được xây dựng khi sử dụng thêm điểm ( xi1 , ( f xi1 , ( y xi1 ))như 1 điểm dùng trong phép nội suy của đa thức nội suy Áp dụng đa thức nội suy Newton tại móc x i 1:
1
i
Tiến hành tích phân 2 vế của phương trình, ta có :
' ' 2 ' 3 '
Nếu công thức dừng lại ở sai phân bậc k, ta có sai số của công thức là:
0
( )
( ) ( 1) ( 1) ( 1)
( 1)!
i
i
k
x
y x
k
Công thức cũng có sai số cấp o h ( k 2 )
Miền ổn định của thuật toán:
Thuật toán đa bước thỏa mãn điều kiện nghiệm của phương trình đặc
1 2
( ) m m m
m
nghiệm Nếu 1 thì là nghiệm duy nhất của phương trình Thuật toán đa bước ổn định nếu và chỉ nếu nó thỏa mãn điều kiện nghiệm của phương trình (2)
Định lý : Phương pháp đa bước ổn định mạnh nếu =1 là nghiệm duy nhất của P ( ).Nếu 1thì thuật toán có tính ổn định yếu
Trang 5Hệ số của 2 phương pháp:
Phương pháp Adam-Bashforth:
k
G t a t
Với a 0 1,
1
0 ( 1) ( 1)
k
a t t t k dt
1
0
0
( ) ( ( 1))
( ) ( )
! (1 ) ln(1 )
k
k
Suy ra
0
1 1
2 3
k k
Xét hệ số của số hạng m
t , ta có quan hệ của các a k: 0
1 1
m k k
a
Hệ số của các y'i trong khai triển của k '
n
y có dạng 1 jCjvới j chạy từ 0 đến i, i chạy từ 0 đến n
Lưu các hệ số hệ số của các y 'itrong ma trận vuông cấp n và lưu các hệ
số a kở ma trận hàng có n cột Nhân 2 ma trận ta sẽ có được ma trận chứa
hệ số của phương pháp
0 n1
1 ( 1) ( 1) n n
C C = b 0 bn1 ,
i
blà các hệ số của phương pháp
Phương pháp Adam-Moulton:
Trang 61 2 1
i
Đặt a 0 1 ,
1 0
( 1)( )( 1) ( ( 2)) ( 1)
!
k
k Chứng minh tương tự , ta có :
0
0
1
m
k
k
a
Hệ số của các y'i trong khai triển của k '
n
y có dạng 1 jCjvới j chạy từ 0 đến i, i chạy từ 0 đến n
Lưu các hệ số hệ số của các y 'itrong ma trận vuông cấp n và lưu các hệ
số a kở ma trận hàng có n cột Nhân 2 ma trận ta sẽ có được ma trận chứa
hệ số của phương pháp:
0 n1
1 ( 1) ( 1) n n
C C = b 0 bn1 ,
i
blà các hệ số của phương pháp
2- Thuật toán :
Thuật toán in ra hệ số của các phương pháp Adam:
INPUT: số tự nhiên n>1
OUTPUT: các hệ số của phương pháp Adam
Bước 1: Tạo ra ma trận chứa hệ số của các y 'i trong khai triển của '
k
n
y :
Trang 7Bước 2: đặt a 00 1
Bước 3: với i từ 0 đến n:
Với j từ 0 đến i: a ij 1 j C j
Bước 4: Tính hệ số k:
Bước 5 Trong phương pháp Adam-Bashforth:
for k in range (1,n):
k=1-sum( k*(1/(np.arange(k+1,1,-1))))
print( k)
Bước 6 Trong phương pháp Adam-Moulton:
for k in range (1,n):
k=0-sum( k*(1/(np.arange(k+1,1,-1))))
print( k)
Bước 7 : nhập các kthành 1 hàng với k từ 0 đến m-1 thành ma trận hàng B
Bước 8: Nhân ma trận B với ma trận A
Thuật toán Adam-Bashforth 4 bước dự đoán và điều chỉnh:
INPUT: 2 điểm đầu mút x X 0 , , số mốc chia N, điều kiện ban đầu y x ( ) 0 a OUTPUT: Giá trị xấp xỉ của ytại điểm x N 1
Bước 1: Đặt h X 0x, t 0 x y 0 , 0 a
N Bước 2: For i=1,2,3:
Trang 81 1 1
1
2
4 1 1 3
( , )
i i
i i
i i
i i
K hf t y
K h
K hf t y
K h
K hf t y
K hf t h y K
Bước 3:
1 1 2 3 4 0
1
6
i i
i
t x ih
Bước 4: OUTPUT ( , ) t yi i
Bước 5 : For i=4,5,…,N+1:
Đặt t i x 0 ih
1 (55 ( 1 , 1 ) 59 ( 2 , 2 ) 37 ( 3 , 3 ) 9 ( 4 , 4 ))
24
h
Bước 6 : OUTPUT ( , ) t yi i
Bước 7: STOP
Thuật toán Adam-Moulton 4 bước dự đoán và điều chỉnh:
INPUT: 2 điểm đầu mút x X 0 , , số mốc chia N, điều kiện ban đầu y x ( ) 0 a OUTPUT: Giá trị xấp xỉ của ytại điểm x N 1
Bước 1: Đặt h X 0x, t 0 x y 0 , 0 a
N Bước 2: For i=1,2,3,…,N:
1 1 1
1
2
4 1 1 3
( , )
i i
i i
i i
i i
K hf t y
K h
K hf t y
K h
K hf t y
K hf t h y K
Trang 9Bước 3:
1 1 2 3 4 0
1
6
i i
i
t x ih
Bước 4: OUTPUT ( , ) t yi i
Bước 5 : For i=4,5,…,N:
Đặt t i x 0 ih
1 (9 ( , ) 19 ( , 1 1 ) 5 ( 2 , 2 ) ( 3 , 3 ))
24
i i h i i i i i i i i
Bước 6 : OUTPUT ( , ) t yi i
Thuật toán Adam-Bashford- Adam-Moulton 4 bước dự đoán và hiệu chỉnh :
INPUT: 2 điểm đầu mút x X 0 , , số mốc chia N, điều kiện ban đầu y x ( ) 0 a OUTPUT: Giá trị xấp xỉ của ytại điểm x N 1
Bước 1: Đặt h X 0x, t 0 x y 0 , 0 a
N Bước 2: For i=1,2,3:
1 1 1
1
2
4 1 1 3
( , )
i i
i i
i i
i i
K hf t y
K h
K hf t y
K h
K hf t y
K hf t h y K
Trang 10Bước 3:
1 1 2 3 4 0
1
6
i i
i
t x ih
Bước 4: OUTPUT ( , ) t yi i
Bước 5 : For i=4,5,…,N+1:
Đặt t i x 0 ih
(55 ( , ) 59 ( , ) 37 ( , ) 9 ( , )) 24
(9 ( , ) 19 ( , ) 5 ( , ) ( , )) 24
i i i i i i i i i i
h
h
Bước 6 : OUTPUT ( , ) t yi i
Bước 7: STOP
3- Ví dụ :
Ví dụ 1: TÌm hệ số của thuật toán Adam-Bashforth bậc 4:
' ' 2 ' 3 '
Ta có :
' ' '
1 1
2 ' ' ' '
3 ' ' ' ' ' ' ' ' ' ' '
2
i i i
i i i i
i i i i i i i i i i i
Ma trận hệ số của các '
i
y có dạng là:
1 0 0 0
1 1 0 0
1 2 1 0
1 3 3 1
Ma trận hàng chứa các tích phân là:
1 5 9 1
2 12 24 Nhân ma trận hàng với ma trận hệ số của các '
i
y,ta có:
Trang 111 5 9
1
2 12 24
1 0 0 0
1 1 0 0
1 2 1 0
1 3 3 1 =
55 59 37 9
24 24 24 24 Công thức Adam-Bashforth bậc 4 có dạng:
Ví dụ 2: Tìm công thức của thuật toán Adam-Moulton bậc 4:
' ' 2 ' 3 '
( ) ( )
Ta có:
' ' '
1
2 ' ' ' '
3 ' ' ' ' ' ' ' ' ' ' '
2
i i i
i i i i
i i i i i i i i i i i
Ma trận hệ số của các '
i
y có dạng là:
1 0 0 0
1 1 0 0
1 2 1 0
1 3 3 1
Ma trận hàng chứa các tích phân là:
1
2 12 24 Nhân ma trận hàng với ma trận hệ số của các '
i
y,ta có:
1
2 12 24
1 0 0 0
1 1 0 0
1 2 1 0
1 3 3 1 =
9 19 5 1
24 24 24 24 Công thức Adam-Moulton bậc 4 có dạng:
' ' ' 3 '
Trang 12Ví dụ : Xét bài toán: y ' x y, y (0) 1, x [0,1] với h= 0,1
Kết quả của bài toán khi giải theo thuật toán Adam-Bashforth 4 bước:
n
x y n
0 1.000000
0.1 1.110342
0.2 1.242805
0.6 2.044204
0.7 2.327457
0.8 2.651014
0.9 3.019117
Kết quả của bài toán khi giải theo thuật toán Adam-Moulton 4 bước:
n
x y n
0.1 1.110342
0.2 1.242805
0.3 1.399717
0.4 1.583649
0.5 1.797443
0.6 2.044239
0.7 2.327508
0.8 2.651085
0.9 3.019211
1.0 3.436570
Trang 13Kết quả của bài toán khi giải theo phương pháp AB-AM 4 bước dự báo hiệu chỉnh:
x n y n (dự báo) y n (điềều
ch nh)ỉ
0.000000 nan 1.000000
0.100000 nan 1.110342
0.200000 nan 1.242805
0.300000 nan 1.399717
0.400000 1.583640 1.583649
0.500000 1.797433 1.797443
0.600000 2.044227 2.044238
0.700000 2.327495 2.327507
0.800000 2.651070 2.651084
0.900000 3.019194 3.019209
1.000000 3.436551 3.436567
Ví dụ : Xét bài toán: y ' x 2 y 2, y (0) 0, với x 0,1và h= 0,1
Kết quả của bài toán khi giải theo thuật toán Adam-Bashforth 4 bước:
n
x y n
0 0.000000
Trang 140.700000 0.115579
Kết quả của bài toán khi giải theo thuật toán Adam-Moulton 4 bước:
x n y n
0 0.000000
0.1 0.000333
0.2 0.002667
0.3 0.009003
0.4 0.021360
0.5 0.041793
0.6 0.072453
0.7 0.115669
0.8 0.174096
0.9 0.250932
1.0 0.350275
Trang 15Kết quả của bài toán khi giải theo phương pháp AB-AM 4 bước dự báo hiệu chỉnh:
x n yn (dự báo) yn (điềều ch nh)ỉ
0.000000 nan 0.000000
0.100000 nan 0.000333
0.200000 nan 0.002667
0.300000 nan 0.009003
0.400000 0.021354 0.021360
0.500000 0.041779 0.041793
0.600000 0.072427 0.072453
0.700000 0.115627 0.115668
0.800000 0.174029 0.174095
0.900000 0.250828 0.250930
1.000000 0.350108 0.350269
4-Kết luận:
Các thuật toán Adam có ưu điểm là chỉ cần tính x 1 qua x n bằng việc tính qua hàm f mà không cần chú ý đến bậc chính xác
Trang 16Các thuật toán Adam có nhược điểm là phải sử dụng thêm các thuật toán khác để tính toán m bước đầu tiên
Hướng dẫn sử dụng code:
File bao gồm 4 chương trình : chương trình tìm hệ số của phương pháp, thuật toán AB 4 bước, thuật toán AM 4 bước, THuật toán AB-AM 4 bước dự báo hiệu chỉnh
Để giải bài toán Cauchy chỉ cần nhập vào các biến x0,y0,xf,n và hàm def f(x,y)