Vì vậy, nghiên cứu phương trình vi phân thường đóng một vai trò quan trọng trong lí thuyết toán học.. Chúng ta biết rằng chỉ có một số ít các phương trình vi phân thường là có thể tìm đư
Trang 1LỜI CẢM ƠN
Để hoàn thành bản khóa luận tốt nghiệp này, trước hết em xin chân thành cảm ơn các thầy cô giáo trong khoa Toán, các thầy cô trong tổ giải tích đã tạo điềukiện, giúp đỡ em trong thời gian vừa qua
Đặc biệt, em xin bày tỏ lòng biết ơn chân thành và sâu sắc nhất tới Tiến sĩ
Nguyễn Văn Hùng đã tận tình hướng dẫn, chỉ bảo cho em trong suốt quá trình
nghiên cứu khóa luận
Em xin chân thành cảm ơn
Hà Nội, ngày 20 tháng 4 năm 2013
Sinh viên
Trần Hồng Hạnh
Trang 2LỜI CAM ĐOAN
Em xin cam đoan khóa luận là công trình nghiên cứu của riêng em
Trong khi nghiên cứu, em đã kế thừa những thành quả nghiên cứu của các nhà khoa học, nhà nghiên cứu với sự trân trọng và biết ơn
Những kết quả nêu trong khóa luận chưa được công bố trên bất kì công trình nào khác
Hà Nội, ngày 20 tháng 4 năm 2013
Sinh viên
Trần Hồng Hạnh
Trang 3LỜI NÓI ĐẦU
Thoạt đầu, toán học được phát sinh do nhu cầu giải quyết các bài toán có nguồn gốc thực tiễn Cùng với sự phát triển của nội tại toán học và các ngành khoa học khác, toán học chia thành hai lĩnh vực : toán học lí thuyết và toán học ứng dụng
Trong lĩnh vực toán học ứng dụng thường gặp rất nhiều bài toán liên quan tới phương trình vi phân thường Vì vậy, nghiên cứu phương trình vi phân thường đóng một vai trò quan trọng trong lí thuyết toán học
Chúng ta biết rằng chỉ có một số ít các phương trình vi phân thường là có thể tìm được nghiệm chính xác,trong khi đó phần lớn các phương trình vi phân thường nảy sinh từ các bài toán thực tiễn đều không tìm được nghiệm chính xác
Do đó một số vấn đề đặt ra là tìm các phương pháp để xác định nghiệm gần đúng của phương trình vi phân thường
Xuất phát từ nhu cầu thực tiễn đó, các nhà toán học đã tìm ra nhiều phương pháp để giải gần đúng phương trình vi phân thường Trong các phương pháp đó, người ta đã phân làm 2 nhóm: nhóm thứ nhất gọi là các phương pháp giải tích cho phép tìm nghiệm gần đúng dưới dạng biểu thức giải tích, nhóm thứ hai gọi là các phương pháp số cho phép tìm nghiệm dưới dạng bảng
Là một sinh viên khoa Toán, trong khuôn khổ một bản khóa luận, em xin được trình bày những hiểu biết của mình về một số phương pháp số giải gần đúng phương trình vi phân thường
Được sự hướng dẫn tận tình của tiến sĩ Nguyễn Văn Hùng cùng với lòng nhiệt tình say mê nghiên cứu khoa học, em đã chọn đề tài: “ Một số phương pháp
giải gần đúng phương trình vi phân” Em đã đi sâu nghiên cứu 2 phương pháp
số: phương pháp Euler và Euler cải tiến, phương pháp Runge –Kutta
Nội dung bản khóa luận gồm 3 chương :
Chương 1: Các kiến thức chuẩn bị
Trang 4Chương 2: Một số phương pháp giải gần đúng phương trình vi phân.
Trang 5MỤC LỤC
LỜI CẢM ƠN……….1
LỜI CAM ĐOAN……… 2
LỜI NÓI ĐẦU……… 3
CHƯƠNG 1 : CÁC KIẾN THỨC CHUẨN BỊ……… 6
§1: Số gần đúng và sai số……… 6
§2: Sai phân………11
§3:Phương trình vi phân thường………14
CHƯƠNG 2 : MỘT SỐ PHƯƠNG PHÁP GIẢI GẦN ĐÚNG PHƯƠNG TRÌNH VI PHÂN………19
§1:Phương pháp Euler và Euler cải tiến……….19
§2: Phương pháp Runge –Kutta……….23
CHƯƠNG 3: BÀI TẬP ÁP DỤNG……… 37
KẾT LUẬN………49
TÀI LIỆU THAM KHẢO……… 50
Trang 6CHƯƠNG 1 :CÁC KIẾN THỨC CHUẨN BỊ
§1 : SỐ GẦN ĐÚNG VÀ SAI SỐ
1 Khái niệm về số gần đúng,sai số tuyệt đối, sai số tương đối.
a , Số gần đúng, sai số tuyệt đối và sai số tương đối:
Trong thực tế tính toán, ta thường không biết số đúng a* mà chỉ biết số gần đúng của a* là a Đại lượng ∆ = a* - a được gọi là sai số thực sự của a
Do không biết a* nên ∆ cũng không biết nhưng ta có thể tìm được ∆a≥0 sao cho :
a
a* ≤ ∆a ; (1.1)
Số ∆a nhỏ nhất thỏa mãn (1.1) được gọi là sai số tuyệt đối của a
Tỷ số δaa =a a được gọi là sai số tương đối của a.
Trang 7b , Sự thu gọn các số, sai số thu gọn:
Giả sử a được biểu diễn dưới dạng thập phân :
số chẵn và tăng thêm 1 đơn vị nếu là số lẻ (tính toán với số chẵn thuận lợi hơn)
Ví dụ 3: Thu gọn đến 2 chữ số sau dấu phẩy với các số sau:
; b= 0,085 (± 0,003) ; c= 154 (±2%)
Trong các bảng số thường chỉ giữ lại các chữ số chắc, tức là các số mà chữ số cuối cùng được giữ lại có bậc tương ứng sai số tuyệt đối theo quy tắc làm tròn số (ở đâykhông đưa ra định nghĩa chính xác của chữ số chắc)
Trang 8Giả sử hàm f là hàm số khả vi liên tục theo tất cả các biến xi thì:
n
x x x f
i
1
1 , , ) (
x x f i
1
) ( ' ∆xi với x =(x1, … ,xn)
1
) (
x x f i
1
) ( ' ∆xi =∆x1 +…+ ∆xn =
Trang 9x x x
Cần tính ∆xi để ∆y ≤ ɛ , (ɛ <0) cho trước
Theo công thức tổng quát của sai số tính toán ta phải có:
Trang 11được gọi là sai phân cấp 2 của f(x) tại x.
Tương tự :∆nf= ∆(∆n-1f) được gọi là sai phân cấp n
Giả sử f(x) được cho bằng bảng tại các giá trị cách đều của đối số:f(xi) , xi=x0+ih (i=0,±1,…)
Khi đó, ta có thể lập bảng các sai phân cấp 1, cấp 2, … của f như sau:
Trang 12i i
n f x C
1
) (
i C f x n i h
1
) ).
( ( ) 1 (
2 Một số công thức nội suy sử dụng sai phân:
Giả sử hàm y=f(x) dưới dạng bảng yi=f(xi) tại các mốc xi cách đều:
xi+1 – xi =h=const (i≥0)
Mốc nội suy được sắp xếp theo thứ tự : x0<x1<…<xn
Ta tìm đa thức nội suy dưới dạng:
y
! 0
t
∆y0+
! 2
) 1 ( t t
∆2y0+ … +
!
) 1 ) (
1 (
n
n t t
∆ny0 +
Trang 13Đây là công thức nội suy Newtơn tiến.
Mốc nội suy sắp theo thứ tự xn>xn-1>…>x0
Trang 14§3.PHƯƠNG TRÌNH VI PHÂN THƯỜNG
1 Một số khái niệm:
Phương trình vi phân thường bậc n là một hệ thức có dạng :
F(x,y,y’,y”,…,y(n)) =0 ; (1.4)
Trong đó : x là biến độc lập, y là hàm số cần tìm
y’,y”,…,y(n) là các đạo hàm của hàm số y (y là hàm số của x)
Cấp của phương trình là đạo hàm cấp cao nhất có mặt trong phương trình
Hàm số y=(x) được gọi là nghiệm của phương trình (1.4) nếu thay y =
(x) ,y’=’(x),…, y(n)=(n)(x) vào (1.4) thì (1.4) trở thành đồng nhất thức
Hàm số y=(x,c) thỏa mãn (1.4) khi (x,y) chạy khắp D, với mọi c R
2 Một số phương trình vi phân đã biết cách giải:
a , Phương trình vi phân có biến số phân li:
x M
dx + (( ))
1
2
y N
y N
dy =0(M2(x).N1(y) 0)
b , Phương trình vi phân cấp 1 thuần nhất:
y’=f( x y ) Giả thiết hàm số xác định với mọi x 0.Để giải phương trình này ta đặt u= x y , sau đó đưa về việc giải phương trình vi phân có biến số phân li
Trang 15c Phương trình vi phân tuyến tính cấp 1
Dạng tổng quát : y’ + P(x) y = Q(x)
+) Q(x) 0 thì gọi là phương trình tuyến tính không thuần nhất cấp 1
+) Q(x) 0 thì gọi là phương trình tuyến tính thuần nhất cấp 1
Công thức nghiệm tổng quát của phương trình là:
+) αf)= α.∆=1 : phương trình tuyến tính thuần nhất cấp 1
+) αf)= α.∆=0 : phương trình tuyến tính không thuần nhất cấp 1
+) αf)= α.∆0, αf)= α.∆1: ta chia cả 2 vế của phương trình cho yαf)= α.∆
Sau đó, đặt z=y1-αf)= α.∆ và đưa về phương trình tuyến tính không thuần nhất
e , Phương trình vi phân toàn phần:
Dạng tổng quát: P(x,y) dx + Q(x,y) dy =0 ; (1.5)
trong đó : P(x,y) , Q(x,y) là các hàm số liên tục cùng với các đạo hàm riêng trên miền đơn liên D và thỏa mãn : Q’x(x,y) =P’y(x,y) trên D
Nếu D=R2 , giả sử (x0,y0) D thì tích phân tổng quát của (1.5) là:
u(x,y) = P x x dx
x
x
) , (
0
) ,
x
x
dx y x P
0
) ,
y
y
dy y x Q
0
) , ( 0
f , Phương trình vi phân đưa được về dạng phương trình thuần nhất cấp 1.
a
c by ax
; (1.6)Nếu c=c1=0 thì (1.6) là phương trình thuần nhất cấp 1
Trang 16Nếu c0, c10,
1
b a
a
0Đặt
3 Định lí Pica – Lindolov (định lí tồn tại và duy nhất nghiệm)
Giả sử hàm f(x,y) xác định và liên tục trong miền G:
G =(x,y) : x x0 a, y y0 b đồng thời thỏa mãn điều kiện Lipsit theo biến y Khi đó, tồn tại một dãy nghiệm gần đúng của phương trình dy dx =f(x,y) trên đoạn [x0-h, x0+h] và dãy nghiệm này làcác hàm liên tục hội tụ đều đến nghiệm duy nhất của phương trình đã cho và thỏa mãn điều kiện ban đầu
y(x0)=y0 , h= min
0
)) ( , ( 0
2(x)=y0 +
x
x
dt t t f
0
)) ( , ( 1 ; (1.7)
f
0
)) ( , ( 1
Dãy hàm {n(x)} gọi là nghiệm gần đúng của phương trình đã cho.Ta sẽ chứng minh dãy {n(x)} hội tụ đều
Gọi (x) là nghiệm đúng của phương trình, ta có:
Trang 17(x)= y0 +
x
x
dt t t f
0
)) ( ,
0
) (
0
) (
Trang 18(x) = y0 +
x
x
dt t t f
0
)) ( , (
0
)) ( , (
Trang 19
));
, ( , (
) , (
c x x y
c x p dx
dp p x p dp p
dx x pdx
p
dy y
, (
1
c y y x c y p dy
dp p y p
dp p
; ) (
) ( ' )
(
) ( '
) (
) ( ' )
(
) ( '
) (
) ( ' ) ( '
p p
p x
p
p dp
dx
p p
p x
p p
p dp
dx
p p
p p
x dp dx
( ) , (
p c p p y
c p x
Trang 20*) Phương trình Clerô: y = xy’ + ψ(y’) ; (1.15)
(1.15) là phương trình Lagrăng với (y’) = y’
Giả thiết hàm ψ là hàm phi tuyến tính (không tuyến tính)
) ( '
0
x p
c p p
) (
x x
x y
c cx
5 Cách giải một số phương trình vi phân cấp cao
a, Một số phương trình cấp cao đơn giản:
*) Phương trình chỉ chứa biến số độc lập và đạo hàm cấp cao nhất:
1 )
( )
0 1
0 0 0
n n
n x
x n
c dx x
Trang 21t x
1 n
n t c c y
t x
1 ( t c y
t x
) (
) 1 (
t y
t y
n n
Vì dy = y’dx dy(n-1) = y(n)dx dx = ( )
) 1 (
(
) ( '
) (
) ( ' ) (
)) ( (
1 1
c t
dt t x
t
dt t t
t d dx
) (
) ( ' ) ( )
(
) ( ' ) (
2 2 )
2
(
2 )
2 ( )
1 (
)
2
(
c t y
c dt t
t t y
dt t
t t dx y
dy
n
n n
2 2 ) 2 (
1 1
c t y
c t x
Trang 22*) Phương trình chỉ chứa đạo hàm cấp n và cấp (n-2):
F(y(n-2),y(n)) = 0 ; (1.21)
+ Trường hợp 1: Từ (1.21) ta giải được y(n) theo y(n-2): y(n) = f(y(n-2))
Đặt y(n-2) = z z” = f(z) Từ phương trình z” = f(z) 2z’z” = 2z’f(z); (z’ 0) d(z’2) = 2f(z)dz
) 22 1 (
; )
( 2
) ( 2
) ( 2
) ( 2 '
) ( 2 '
1 2
1 1 1
1 2
dz c
x
c dz z f
dz dx
c dz z f dx
dz
c dz z f z
c dz z f z
Giải (1.22) sau đó thay z = y(n-2), ta đưa phương trình (1.22) về trường hợp đã giải ởtrên
+ Trường hợp 2: Từ (1.21), ta có thể biểu diễn:
) 2 ( ) (
t y
t y
n n
n
n
n
dy dx y
dx y dy
( ' ) ( ' 2
) ( ' ) ( 2 ] [ 2
] [
2 2
1 1 1 )
1 (
1 2
) 1 ( )
2 ( ) ( 2 ) 1 (
) 2 ( ) ( ) 1 ( ) 1 ( )
2 ( ) ( ) 1 ( ) 1
(
c t c
dt t t y
c dt t t y
dy y y
d
dy y dy
y dy
y dy
y
n
n n
n n
n n n
n n
n n
) , ( )
(
1 1 )
1 (
t y
c t y
b, Các phương trình cấp cao hạ thấp cấp được:
*) Phương trình không chứa hàm phải tìm và các đạo hàm đến cấp (k-1)
Dạng phương trình: F(x,y(k),y(k+1),… ,y(n)) = 0 ; (k ≤ n) ; (1.23)
Trang 23dz dx
dz dx
) 1 ( )
(
2 2 2 '
'
'
, , ,
] ) [(
'' ''
'' ''
n
n n
y y
y
dy
z d dy
dz z y
dy
z d z dy
dz z z
z z y
dy
dz z z dy dy
dz z d z y
dx
dy dy dy
dz z d dx
dy
dz z d dx
dy y
Thay vào phương trình đầu ta được phương trình vi phân cấp (n-1):
, , , , ( 1) 0 ;
) 1 (
dy
z d dy
dz z y
' )
, , ,
dy c
x c
Trang 24Trong đó: F(x,y,y’,…,y(n)) là hàm thuần nhất đối với các biến từ y, y’, … , y(n) tức
k
sao cho: F(x,ty,ty’,…,ty(n)) = tk F(x,y,y’,…,y(n)) ; t, (t N)
Cách giải:
Đặt y’= yz y’’ = (yz)’ = y’z + yz’ = yz2 + yz’ = y(z2 +z’)
y’’’ = (y(z2+z’))2 = y’(z2+z’) + y(2zz’+z’’)
= yz(z2+z’) + y(2zz’+z’’) = y[z3+z’’+3zz’]
dy c
c x y
dx
dy
c c x y
y c
c x
z
n n
n n
) , , , ( )
, , , (
) , , , ( ' ) , , , (
1 1
1 1
1 1
1 1
1 1
1 1
Trang 25CHƯƠNG 2 MỘT SỐ PHƯƠNG PHÁP GIẢI GẦN ĐÚNG PHƯƠNG TRÌNH VI PHÂN
§1 PHƯƠNG PHÁP EULER VÀ EULER CẢI TIẾN
1 Phương pháp Euler:
Từ điểm ban đầu M0(x0,y0) của đường cong tích phân, nhờ phương trình vi phân y’=f(x,y) ta có thể xác định gần đúng giá trị của y(x) ở các tiếp điểm theo : x0 < x1
< … < xn=x0 + , bằng phươbg pháp đơn giản sau:
Theo công thức Taylor, ta có:
y(xi+1) = y(xi) + (xi+1 – xi).y’(xi) +
! 2
Nếu ta chia đoạn [ x0 , x0+a ], thành n phần bằng nhau sao cho khoảng cách giữa chúng càng bé thì ta có thể bỏ qua số hạng cuối cùng trong khai triển (2.1) và khai triển (2.1) chỉ còn : y(xi+1) = y(xi) + (xi+1 – xi).y’(xi) ; (2.2)
Công thức (2.2) cho ta tính được các giá trị yi (i=1,…,n)
Ta đặt như sau: xi+1 – xi =h ; (i=1,…,n-1), do đó:
Trang 26y’= xy2 , với y(0)= 1, x [0;0,5], h= 0,1.
Để nâng cao độ chính xác của nghiệm gần đúng thông thường không trực tiếp dùngcông thức (2.3) mà dùng phương pháp Euler dưới dạng cải tiến
2 Phương pháp Euler cải tiến :
Nhược điểm của phương pháp Euler là ở chỗ trong ∆yi chỉ tính đến giá trị đạo hàm
ở điểm (xi,yi); ∆yi= hf(xi,yi) mà không chú ý đến sự thay đổi của đạo hàm (tức là của hàm f(x,y) trong [xi, xi+1])
Hình 1:
Trang 27Ở hình 1, ta thấy hai đường cong tích phân có giá trị khác nhau khá xa tại điểm xi+1
nhưng vì chúng có cùng giá trị yi, y’i nên bằng công thức Euler (2.3), ta thu được cùng một giá trị gần đúng yi+1
Từ nhận xét đó, ta thấy rằng trong khoảng nào mà hàm số f(x,y) thay đổi nhiều và không tuyến tính thì sai số mắc phải sẽ lớn Để tránh bớt nhược điểm đó, ta có thể rút ngắn bước (xi+1 – xi) ở phần nào f(x,y) thay đổi nhiều nhưng như thế phải tăng khối lượng tính toán, đồng thời sai số tích lũy sẽ lớn lên Phương pháp hình thang hay còn gọi là phương pháp Euler – Côsi giúp ta tránh bớt được những nhược điểmtrên
Trong công thức số gia giới nội Lagrăng :
yi+1= yi + hf(i,y ( i) ; xi ≤ i≤ xi+1 ; (2.4)
ta có thể thay : f(i,y ( i)
2
) , ( ) , (x i y i f x i1 y i1f
Trong các giá trị của ∆yi= h2[f(xi,yi) + f(xi+1,yi+1)] có tham giá trị chưa biết yi+1, ta
có thể thay giá trị đó bằng yi+1 nhận được từ công thức Euler (2.3) Vì vậy công
Trang 28, ( ) , ( [
*
1
* 1 1 1
i i i
i
i i i
i i
i
y x hf y y
y x f y x f y y
)]
, ( ) , ( [ 2
* )
0
(
1
* 1 )
(
1
i i i
i i
i i i
i i
m
i
y x hf y y
y
y x f y x f h y y
Quá trình lặp được dừng ở bước m nào đó mà các giá trị thu được ( m 1 )
Ví dụ5 : Tìm các nghiệm gần đúng của phương trình vi phân sau bằng phương
pháp Euler cải tiến: y’= 32x y2 ; y(0)= 1; x [0;0,5] ; chọn h= 0,1
§2 PHƯƠNG PHÁP RUNGE – KUTTA
Phương pháp này lần đầu tiên được Runge đề ra, sau đó được Kutta và Hâynơ
Trang 29Xét bài toán Côsi :
) (
; )
(
) ( );
, ( '
2 0 0
1
A y x
y
A y x f y
Xuất phát từ giá trị ban đầu y0 tìm giá trị gần đúng y1 tại điểm x0 + h= x1 theo công thức y1= y0 + ∆y0= y0 +h[r1f(ξ1,η1) + … + rmf(ξm,ηm)] ;(2.6), trong đó :
n
y + … , và biểu thức (2.6) trùng nhau tới một số số hạng càng nhiều càng tốt với hàm f và bước h tùy ý Điều
đó có nghĩa là phải chọn αf)= α.∆i, βij, ri sao cho hàm: m(h)= y0(x0 +h) – y0 - i
m i
i k r
1
; (2.9) thỏa mãn các biểu thức sau đây :
) ( ( 1 ) 1
l i
i k r
1 ) ( 0 ) ; l= 1,2,…,s ; (2.11)
Trang 30y0' f(x0 ,y0 ) f0
y f f
x f y
f f x
f y
i i
y h x
h f
y
h x h
i i
i i
i i
i i
i i
(
) , ( ) (
2 )
2 '
2 2 2
y y
x x
2
2
y
f y x
3 2 2
3 3
3
3 3
y
f y x
f y x
Trang 31Dm= m k k
m k
m
k
k m
y x f C
Ta có: y’= f ; y’’=Df ; y’’’= D(Df)= D2f + f y Df ; … ; (2.12)
Với giá trị m cố định ta được hệ phương trình để xác định các hằng số αf)= α.∆i, βij, ri .Xét một vài trường hợp thường dùng sau:
1 Trường hợp m=1:
Từ (2.9) suy ra : 1(h)= y(x0 + h) – y(x0) – r1k1 = y(x0+h) – y(x0) – r1.hf(x0,y0)
( 0 ) ( , ) ' ( 1 1)
0 0 0 1
' 0
∆y0= y(x0+h) – y(x0)= hf(x0,y0) ; (2.13)
Sai số mắc phải tính theo công thức (2.10) là:
R1(h)= ( ) 0 ( )
2
2 ''
2
h y
h
; (nếu y’’ giới nội)
Ta được công thức Euler quen thuộc và ước lượng sai số của nó
Trang 32' 1 1
' 0
'' 1 1
' 0
2
0 0
y x
r y
f f x
'' 1 1
'' 0
''
ra rằng: αf)= α.∆2, β21, r2, r1 phải thỏa mãn hệ phương trình:
2
1
21 2
2 2
2 1
2
1
1 0 0 0
0 2
Trang 331 0 0
2 0
k y h x hf k
2 3
) , ( 4 ) 3 ( 4
1
k y h x f y x f
h k k
Các công thức đó đều có chung một bậc sai số:
! 3 )
3 Trường hợp m= 3:
3(h) y(x0 h) y0 [r1k1(h) r2k2(h) r3k3(h)]
( 0 ) [ ( 0 ) ( 0 ) ' ( 0 )] ( 1 1 2 3)
3 3
' 2 2
' 1 1
' 0
2
1 ) (
2
32 3 31 3 21 2
3 3 2 2
; 6 1 ,
2 3 2 2 32 31 3
2 32 3 21 2