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 nảy sinh từ các bài toán thực tiễn
Trang 3Em xin chân thành cảm ơn các thầy cô giáo trong tổ Giải tích đã tạo điều kiện giúp đỡ và đóng góp ý kiến cho em trong suốt thời gian học tập và nghiên cứu
tại trường Đặc biệt, em bày tỏ lòng biết ơn sâu sắc đến thầy Khuất Văn Ninh -
người đã trực tiếp hướng dẫn, giúp đỡ tận tình để em có thể hoàn thành khóa luận này
Hà Nội, tháng 5 năm 2014
Sinh viên thực hiện
Bùi Huyền Trang
Trang 4LỜI CAM ĐOAN
Khóa luận này được hoàn hành dưới sự hướng dẫn tận tình của PGS.TS Khuất Văn Ninh cùng với sự cố gắng của bản thân Trong quá trình 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, các nhà nghiên cứu với sự trân trọng và biết ơn
Em xin cam đoan những kết quả trong khóa luận này là kết quả nghiên cứu của bản thân, không trùng với khóa luận của tác giả nào
Hà Nội, tháng 5 năm 2014
Sinh viên thực hiện
Bùi Huyền Trang
Trang 5MỤC LỤC
Chương 1 CÁC KIẾN THỨC CHUẨN BỊ 4
1.1 Sai số 4
1.1.1 Số gần đúng, sai số tuyệt đối và sai số tương đối 4
1.1.2 Sai số tính toán 5
1.1.3 Bài toán ngược của sai số 7
1.2 Khái quát về phương trình vi phân 8
1.2.1 Định nghĩa 8
1.2.2 Bài toán Cauchy đối với phương trình vi phân thường cấp 1 8
1.2.3 Một số định lý 9
Chương 2 CÁC PHƯƠNG PHÁP GIẢI GẦN ĐÚNG PHƯƠNG TRÌNH VI PHÂN THƯỜNG 11
2.1 Một số phương pháp giải tích 11
2.1.1 Phương pháp chuỗi hàm 11
2.1.2 Phương pháp hệ số bất định 14
2.1.3 Phương pháp xấp xỉ liên tiếp 16
2.2 Một số phương pháp số 18
2.2.1 Các phương pháp Euler 19
2.2.2 Phương pháp Runge - Kutta 24
Chương 3 ỨNG DỤNG MAPLE TRONG TÍNH TOÁN 26
3.1 Giới thiệu về phần mềm Maple 26
3.2 Một số ứng dụng của Maple trong việc giải phương trình vi phân 27
KẾT LUẬN 42
TÀI LIỆU THAM KHẢO 43
Trang 6LỜI NÓI ĐẦU
Toán học là môn học khoa học gắn liền với thực tiễn Sự phát triển của Toán học được đánh dấu bởi những ứng dụng của nó vào việc giải quyết các bài toán thực tiễn Trong lĩnh vực Toán ứng dụng thường gặp rất nhiều bài toán liên quan đến phương trình vi phân thường Vì vậy việc nghiên cứu phương trình vi phân thường đóng vai trò rất 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 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 vậy, một vấn đề đặt ra
là tìm cách để xác định nghiệm gần đúng của phương trình vi phân Xuất phát từ nhu cầu đó, 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
Dưới góc độ của một sinh viên sư phạm chuyên ngành Toán và trong phạm vi của một khóa luận tốt nghiệp em xin mạnh dạn trình bày hiểu biết của mình về vấn đề :
“Giải gần đúng một số lớp phương trình vi phân thường
và ứng dụng Maple trong tính toán”
Khóa luận gồm 3 chương:
Chương 1: Các kiến thức chuẩn bị
Chương 2: Các phương pháp giải gần đúng phương trình vi phân thường
Chương 3: Ứng dụng của Maple trong tính toán
Tuy đã có nhiều cố gắng, song do thời gian và năng lực còn hạn chế nên khóa luận của em chắc chắn còn nhiều thiếu sót, rất mong nhận được sự đóng góp ý kiến của quý thầy cô và các bạn để khóa luận được hoàn thiện hơn
Em xin chân thành cảm ơn!
Trang 7Chương 1 CÁC KIẾN THỨC CHUẨN BỊ 1.1 Sai số
1.1.1 Số gần đúng, sai số tuyệt đối và sai số tương đối
a, Khái niệm về số gần đúng Sai số tuyệt đối và sai số tương đối
Trong tính toán thông thường người ta không biết số đúng 0
a mà chỉ biết các số gần đúng của nó là a Sai số được gọi là gần đúng của a, độ lệch 0
h a a được gọi là sai số thực của a Vì không biết a0 nên không biết h Tuy nhiên, ta có thể xác định được một số dương a h sao cho
0
a a a a a Số a bé nhất mà ta có thể xác định được gọi là sai số tuyệt đối của a Tỷ số a
a
được gọi là sai số tương đối củaa,a có cùng
thứ nguyên với a, còn a là số không có thứ nguyên và được biểu diễn bằng
0 0
0 , 00,…
b, Sự thu gọn các số, sai số thu gọn
Giả sửađược biểu diễn dưới dạng số thập phân
Trang 8Ví dụ: Thu gọn đến hai chữ số sau dấu phẩy với các số sau:
57,96573, 57,97 45,75124, 45,75 302,36500, 302,36
1.1.2 Sai số tính toán
Giả sử cần tính giá trị của một hàm 0 0 0 0
1 2 ( , , n)
y f x x x trong đó chỉ biết các giá trị gần đúng x x1, , ,2 x n với các sai số tương ứng x i ( hay x i) (i 1,n) Sai số của giá trị y f x x 1, 2, ,x n được gọi là sai số tính toán Giả sử f là một hàm khả vi, liên tục theo các biến x i Khi đó:
i
n i i
Trang 9Công thức (3) đôi khi có thể viết y ln y (4)
Sai số tuyệt đối của một tổng bằng tổng các sai số tuyệt đối của các số hạng Nếu tổng đại số có giá trị nhỏ thì sai số tương đối y
0, 0
ax bx c b theo công thức
24 2
c x
Sai số tương đối của một tích bằng tổng các sai số tương đối của từng thành phần
c, Sai số của thương: 1
2
x y x
1 2
Trang 10 Nếu 1 (phép lũy thừa) thì yx , do đó độ chính xác giảm
Nếu 0 1 thì ta có phép khai căn, khi đó yx hay độ chính xác tăng
Nếu 1 ta có phép nghịch đảo, khi đó yx nghĩa là độ chính xác không đổi
1.1.3 Bài toán ngược của sai số
Giả sử cần tính y f x x 1, 2 , ,x nvới các sai số cần có là y
Hãy xác định sai số cần thiết phải đạt của các đối số x i
Nguyên lý ảnh hưởng đều: Giả sử ' ons 1,
Trang 11trong đó x t( ) là hàm một biến xác định trên 0,T
Được gọi là bài toán Cauchy đối với phương trình vi phân thường cấp 1 Lớp bài toán Cauchy có thể giải được bằng các phép cầu phương rất hẹp
do vậy thông thường để giải các bài toán (1-2) ta phải sử dụng các phương pháp giải gần đúng (tích phân gần đúng)
Trang 12Tuy nhiên, trước khi sử dụng các phương pháp tích phân gần đúng ta cần biết bài toán (1-2) có tồn tại nghiệm hay không và tính duy nhất của nghiệm Vì nếu thiếu điều kiện duy nhất thì ta không xác định được đâu là nghiệm cần tìm
Nếu f t x( , ) là hàm liên tục trên hình chữ nhật R (r 0 cố định) thì tồn tại
ít nhất một nghiệm x t( ) của phương trình (1) thỏa mãn điều kiện (2) tức là x t( )
là nghiệm của bài toán (1-2)
b, Định lý 2 ( định lý duy nhất nghiệm)
Xét bài toán (1-2)
Nếu f t x( , ) là hàm liên tục trên hình chữ nhật R (r 0cố định) và f t x( , )
thỏa mãn điều kiện Lipsit theo biến x trên hình chữ nhật R, tức là
, ,
f t x f t y N xy trong đó N là hằng số (gọi là hằng Lipsit) thì nghiệm của bài toán(1 2) xác định là duy nhất
Từ hai định lý trên ta có định lý sau:
c, Định lý 3 ( định lý tồn tại và duy nhất nghiệm)
Trang 14Chương 2 CÁC PHƯƠNG PHÁP GIẢI GẦN ĐÚNG
PHƯƠNG TRÌNH VI PHÂN THƯỜNG 2.1 Một số phương pháp giải tích
Là phương pháp tìm nghiệm dưới dạng biểu thức, tức là ta đi xây dựng dãy hàm y x n( ) ,x a b sao cho y n( )x *
Trang 16Cho nên chuỗi số
x x
2! 6 180 140
Trang 172.1.2 Phương pháp hệ số bất định
Phương pháp hệ số bất định áp dụng để giải phương trình tuyến tính với hàm số biến thiên Cụ thể như sau:
a,Nội dung phương pháp
Xét bài toán Cauchy đối với phương trình tuyến tính cấp 2
y x a x
trong đó a n cần phải xác định
Lấy đạo hàm y y', '' theo (9) ta có
Trang 18Ta có a0, a1 được xác định từ điều kiện y(0) y0 ; y'(0) y0
Thay a0, a1 vào (10) thì ta được a2
Thay a0, a1, a2 vào phương trình tiếp theo của (10) thì ta được a3 Làm tương tự như vậy ta được a4,
+) Về nguyên tắc ta xác định được tất cả các a n, nhưng trong thực tiễn ta chỉ lấy một tổng riêng của chuỗi (9) Khi đó ta xác định được nghiệm xấp xỉ của phương trình vi phân
Nhận xét: Có thể chứng minh được rằng nếu chuỗi lũy thừa trong (8) có bán
kính hội tụ bằng R thì chuỗi lũy thừa trong công thức (9) cũng có bán kính hội
tụ bằng R Và công thức (9) sau khi xác định a n thì nó là nghiệm của bài toán
Trang 194 64
2.1.3 Phương pháp xấp xỉ liên tiếp
a, Nội dung phương pháp
Xét bài toán Cauchy (1-2)
0 0
0 0
' ( , )
( , ) , ( , )( )
thì y*( )x là nghiệm của bài toán (1)
Trong lí thuyết phương trình vi phân thường đã chứng minh rằng: nếu hàm f x y( , ) thỏa mãn điều kiện Lipsit theo biến y
( , ) ( , ) , ons
Trang 20( 1)!
n n
(15)( 1)!
n n
N x x n
Do đó
1 0
( 1)!
n n
n
x x MN
Trang 212 2 2 2 2 2
2 2
2
2( ) sin 1 cos 1 ;
Trang 22a, Phương pháp Euler
Nội dung phương pháp
Trang 23y đã biết từ điều kiện (2)
Phương pháp tìm nghiệm dưới dạng bảng số theo công thức (18) được gọi là phương pháp Euler
(*) Ý nghĩa hình học
Kí hiệu M i ( , )x y i i trong đó y i
được xác định theo công thức (18)
- Nối các điểm M0 với M1, M1với M2, , Mn1với M n
thì ta được đường gấp khúc, kí hiệu G M M0, 1, ,M n
- Đường gấp khúc G được gọi là đường gấp khúc Euler
Giả sử V là nghiệm của bài toán (1-2) và có đồ thị là đường cong ( )C thì dáng điệu của đường gấp khúc Ggần đúng với dáng điệu của đường cong ( )C
Khi h càng nhỏ thì đường gấp khúc Euler càng gần với đồ thị của nghiệm
Ví dụ
Giải phương trình sau bằng phương pháp Euler
2 2
Trang 24i x i y i f x y i, i y
012345
1, 0 1,1
1, 2 1,3
1, 4 1,5
2,0 1,7
1, 4836 1,31396 1,19001 1,08522
3 2,16401 1,64242
1, 29354 1,04786 0,86789
1,6 1,7 1,8 1,9 2,0
0,99843 0,92525 0,86262 0,80836 0,76084
0,73183 0,62628 0,54264
b, Phương pháp Euler cải tiến thứ 1
Nội dung phương pháp
Trang 25Chia đoạn x0 ,x0 thành n phần bằng nhau, h , h 0
0, 02
0, 061575 0,104642 0,149111 0,194884
c, Phương pháp Euler cải tiến thứ 2
Nội dung phương pháp
Trang 260, 2
0, 04
0, 082350 0,126153 0,171309
Trang 272.2.2.Phương pháp Runge - Kutta
a, Nội dung phương pháp
i i
K h
2
2
x h x h x
0 3
22
i
i
i
y K y K y
K K K K
(0) 1 (0) 2 (0) 3 (0) 4
22
K K K K
0
y
Trang 28b, Ví dụ
Giải bài toán sau bằng phương pháp Runge – Kutta
2 cos
10,999950,9988660,995457
0,10,0952430,0953570,091405
0,10,1904870,1907140,091405
0,995450,990570,9902890,982313
0,0914060,0880840,0880570,085301
0,0914060,1761680,1761150,085301
0,085300,083080,083050,08131
0,085300,166160166140,08131
0,013514
0,083146
3 0,3 0,266745
Trang 29Chương 3 ỨNG DỤNG MAPLE TRONG TÍNH TOÁN
3.1 Giới thiệu về phần mềm Maple
Bài toán (1-2) ta hoàn toàn có thể giải một cách tổng quát bằng cách lập
trình tạo hàm trên Maple dựa vào thuật toán có sẵn đã nêu Nhưng vì thời gian
hạn chế nên tôi chỉ viết chương trình giải cho một số ví dụ, để thấy rằng phần mềm tính toán là công cụ khá dễ dàng và hiệu quả trong việc tham gia giải quyết các bài toán biên có độ tính toán phức tạp
Tuy nhiên thế mạnh của phần mềm tính toán là nhanh chóng và hiệu quả Việc giải bài toán trên bằng tay đã là quá phức tạp, nếu viết chương trình như
trên thì việc tính toán trở nên đơn giản song lại mất thời gian Maple cho phép sử
dụng những gói công cụ chuyên dụng có sẵn để giải phương trình vi phân một cách nhanh chóng và hiệu quả, tuỳ từng dạng phương trình mà nó cho phép biểu diễn nghiệm ở dạng biểu thức, chuỗi đa thức xấp xỉ hay bảng số
Muốn giải phương trình vi phân, trước hết ta cần nạp gói công cụ chuyên dụng cho lĩnh vực này bằng câu lệnh:
[>with(DEtools):
Lệnh giải phương trình vi phân có cú pháp tổng quát là:
[>dsolve(odesys, vars, keyword);
Trong đó:
+ odesys:Tập hợp phương trình vi phân với điều kiện ban đầu, điều kiện
biên…
+ vars: Biến phụ thuộc cần tìm ở nghiệm của phương trình vi phân
+keyword: Cho phép ta xác định phương pháp giải cùng dạng biểu diễn nghiệm Cách biểu diễn nghiệm mặc định là “chính xác” Nếu chọn cách biểu diễn nghiệm như vậy ta sẽ không phải cho giá trị ở phần keyword.
Trang 30- Với keyword: được cho dưới dạng type = series thì máy sẽ cho ta nghiệm
dưới dạng chuỗi
- Với keyword: được cho dưới dạng type = numeric thì máy sẽ vận dụng
các phương pháp số cho ta nghiệm dưới dạng một hàm tượng trưng mà ta có thể
đánh giá được giá trị số của nó tại điểm bất kì nào
- Với keyword: được cho dưới dạng type = basic thì máy sẽ cho ta tập hàm cơ sở mà tập nghiệm được căng trên đó (như một bao tuyến tính)
3.2 Một số ứng dụng của Maple trong việc giải phương trình vi phân
Sử dụng Maple chúng ta có thể tìm được nhiều nghiệm của nhiều phương
trình vi phân thường, phương trình vi phân với điều kiện ban đầu
Tính toán trên Maple:
Bài toán 1: Giải xấp xỉ bài toán sau :
Sau khi cho thực hiện trên màn hình sẽ hiện công thức mô tả điều kiện đầu
Bước 3: Giải phương trình vi phân bằng lệch dsolve :
[>dsolve({y(0)=1,x*diff(y(x),x,x)+diff(y(x),x)+x*y)x)=0},y(x),series);
Trang 31Kết luận: Kết quả tính toán trên Maple hoàn toàn trùng khớp với kết quả bài
toán đã sử dụng phương pháp hệ số bất định ở trên Như vậy, ta thấy được rằng: việc giải phương trình vi phân sẽ được đơn giản hơn khi ta sử dụng Maple vào tính toán
Bài toán 2: Sử dụng phương pháp Euler, phương pháp Euler cải tiến và phương pháp Runge-Kutta với độ dài bước h 0,1 và h 0, 05 để tìm nghiệm xấp xỉ của phương trình sau:
y x y y trên đoạn x 0;1
Giải
1 Tính toán trên Maple , sử dụng phương pháp Euler
Trong Maple, để tìm các giá trị y i theo công thức lặp ta có thể sử dụng
mặc định (option) remember (nhớ) Mặc định này của Maple cho phép nhớ các
giá trị cũ để tính yn, mà không cần tính lại giá trị y n1.
Trước tiên ta khởi động chương trình Maple nhờ lệnh restart:
Trang 32Khai báo công thức tính x n x0 nh:
[>x:=n->n*h;
:
x n nh
Khai báo thủ tục tính giá trịy n theo công thức Euler cải tiến:
[>y:=proc(n) option remember;
Để so sánh các kết quả này với nghiệm chính xác, ta dùng lệnh dsolve ( giải
phương trình vi phân) để tìm nghiệm chính xác như sau:
Vào gói công cụ Detools (công cụ phương trình vi phân):
[> with(DEtools):
Tìm nghiệm đúng của phương trình vi phân nhờ lệnh dsolve và kí hiệu nghiệm là Sol:
[> Sol:=dsolve({diff(Y(X),X)=X^2+(Y(X)^2,Y(0)=0},Y(X));
Trang 33Ta thấy rằng, phương trình vi phân y' x2 y2 hoàn toàn không dễ giải:
nghiệm của nó được biểu diễn thông qua hàm đặc biệt Bessel Chú ý rằng trong lệnh tìm nghiệm chính xác, ta đã dùng những chữ cái in hoa để tránh sự trùng lặp với nghiệm xấp xỉ
Ấn định công thức nghiệm:
[> assign(Sol);
Dùng lệnh array (lập mảng) để tạo mảng nhằm so sánh giá trị gần đúng (tính
theo công thức Euler) và giá trị đúng của nghiệm (tính theo công thức nghiệm):
Trang 34[>x:=n->n*h;
:
x n nh
Khai báo thủ tục tính giá trị y n
theo công thức Euler cải tiến:
[>y:=proc(n) option remember;
Trang 35Vào gói công cụ phương trình vi phân DEtools:
Trang 36[> x:=n->n*h;
:
x n nh
Khai báo thủ tục tính giá trị y n theo công thức Euler cải tiến:
[> y:=proc(n) option remember;
Trang 38Kết luận: Ta thấy phương pháp Euler cải tiến với số bước lặp nhiều hơn ( 20
bước, h0,05) cho kết quả chính xác hơn so với phương pháp Euler cải tiến với số bước là 10 bước (h0,1 )
3 Tính toán trên Maple, sử dụng phương pháp Runge - Kutta cấp bốn
Trang 390.10.1
Trang 41Euler và phương pháp Euler cải tiến Với số bước ít (n=10, h=0.1) ta đã thu được kết quả không chính xác bằng phương pháp Euler cải tiến với số bước gấp đôi (n=20, h=0.05)