Phương pháp tính giải phương trình vi phân

51 3 0
Phương pháp tính giải phương trình vi phân

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

-1- KHĨA LUẬN TỐT NGHIỆP SVTH: NGUYỄN ĐÌNH HUY -2- MỤC LỤC Mục lục Lời cảm ơn Mở đầu Chương Kiến thức chuẩn bị 1.1 Phát biểu toán Cauchy 1.1.1 Mở đầu 1.1.2 Bài tốn Cauchy phương trình vi phân cấp 1.2 Định lý tồn nghiệm 1.2.1 Phương pháp xấp xỉ Picard 1.2.2 Sự tồn nghiệm Chương Các phương pháp giải gần nghiệm phương trình vi phân thường 10 2.1 Phương pháp chuỗi Taylor 10 2.1.1 Mô tả phương pháp 10 2.1.2 Thí dụ 11 2.2 Phương pháp xấp xỉ liên tiếp Picard 12 2.2.1 Mô tả phương pháp 12 2.2.2 Thí dụ 12 2.3 Phương pháp Euler 13 2.3.1 Mở đầu 13 2.3.2 Xây dựng cơng thức tính 13 2.3.3 Sự hội tụ sai số 14 2.4 Phương pháp hình thang 16 2.5 Phương pháp Runge-Kutta 18 2.6 Phương pháp Heun 23 2.6.1 Quy tắc hình thang 23 2.6.2 Phương pháp Heun 24 2.7 Phương pháp dự báo – hiệu chỉnh 25 2.7.1 Mở đầu 25 2.7.2 Phương pháp Adams – Bashforth – Moulton 26 2.7.3 Dự báo – hiệu chỉnh theo Milne – Simpson 26 Chương Phương trình vi phân phần mềm MATLAB 28 3.1 Giới thiệu sơ lược MATLAB 28 KHÓA LUẬN TỐT NGHIỆP SVTH: NGUYỄN ĐÌNH HUY -3- 3.2 Giải phương trình vi phân MATLAB 29 3.3 Giải gần phương trình vi phân MATLAB 30 3.3.1 Phương pháp chuỗi Taylor 30 3.3.2 Phương pháp xấp xỉ liên tiếp Picard 32 3.3.2.1 Thuật toán 32 3.3.2.2 Viết chương trình MATLAB 32 3.3.2.3 Nhận xét 33 3.3.3 Phương pháp Euler 33 3.3.3.1 Thuật toán 33 3.3.3.2 Viết chương trình MATLAB 33 3.3.3.3 Nhận xét 36 3.3.4 Phương pháp Runge-Kutta 36 3.3.4.1 Thuật toán 36 3.3.4.2 Viết chương trình MATLAB 37 3.3.4.3 Nhận xét 39 3.3.5 Phương pháp Heun 39 3.3.5.1 Thuật toán 39 3.3.5.2 Viết chương trình MATLAB 39 3.3.5.3 Nhận xét 42 3.3.6 Phương pháp Adams – Bashforth – Moulton 42 3.3.6.1 Thuật toán 42 3.3.6.2 Viết chương trình MATLAB 42 3.3.6.3 Nhận xét 45 3.3.7 Dự báo – hiệu chỉnh theo Milne – Simpson 45 3.3.7.1 Thuật toán 45 3.3.7.2 Viết chương trình MATLAB 46 3.3.7.3 Nhận xét 48 Kết luận 49 Tài liệu tham khảo 50 KHÓA LUẬN TỐT NGHIỆP SVTH: NGUYỄN ĐÌNH HUY -4- LỜI CẢM ƠN Sau thời gian học tập nghiên cứu hướng dẫn bảo tận tình thầy giáo ThS Trần Nhân Tâm Quyền, đến khóa luận tốt nghiệp em hoàn thành Em xin bày tỏ biết ơn chân thành đến Ban Giám Hiệu trường Đại Học Sư Phạm - Đại Học Đà Nẵng, Ban chủ nhiệm khoa Toán, tạo hội cho em làm khóa luận tốt nghiệp Em xin gửi lời cảm ơn sâu sắc đến tất thầy cô giáo nhà trường Đặc biệt thầy giáo khoa Tốn tận tình dạy, truyền đạt cho em kiến thức bổ ích quí báu suốt bốn năm học vừa qua Xin cảm ơn giúp đỡ, chia tất bạn lớp thời gian bốn năm học trường để hồn thành khóa luận Cuối em xin chân thành cảm ơn thầy ThS Trần Nhân Tâm Quyền - người trực tiếp hướng dẫn em, quan tâm, động viên dẫn tận tình để em hồn thành khóa luận Tuy có nhiều cố gắng song khóa luận khơng tránh khỏi thiếu sót nội dung lẫn hình thức trình bày, em mong nhận đóng góp q thầy bạn đọc Em xin chân thành cảm ơn ! Đà Nẵng, tháng 05 năm 2012 Sinh viên thực Nguyễn Đình Huy KHĨA LUẬN TỐT NGHIỆP SVTH: NGUYỄN ĐÌNH HUY -5- MỞ ĐẦU Các toán thực tế (trong thiên văn, đo đạc ruộng đất,…) dẫn đến việc cần phải giải phương trình vi phân Tuy nhiên, phương trình thường phức tạp, nói chung khó giải (đưa phương trình bản) biến đổi đại số Hơn nữa, cơng thức nghiệm phương trình vi phân thường phức tạp, cồng kềnh, nên cho dù có cơng thức nghiệm, việc khảo sát tính chất nghiệm thơng qua cơng thức gặp phải nhiều khó khăn Vì vậy, từ thời Archimedes, phương pháp giải gần xây dựng Nhiều phương pháp (phương pháp Euler phương pháp Runge-Kutta giải phương trình vi phân) trở thành kinh điển sử dụng rộng rãi thực tế Cùng với phát triển công cụ tin học, phương pháp giải gần lại có ý nghĩa thực tế lớn Để giải phương trình vi phân tay giấy, có phải hàng ngày với sai sót dễ xảy ra, với việc dùng phần mềm hỗ trợ giải tốn máy tính ta cần vài phút Tuy nhiên, việc thực tính tốn tốn học phần mềm tính tốn máy tính cách dễ dàng địi hỏi người sử dụng có hiểu biết sâu sắc lý thuyết toán học Mặt khác, nhiều vấn đề lý thuyết độ xác, độ phức tạp tính tốn,… soi sáng thực hành tính tốn cụ thể Vì vậy, việc sử dụng thành thạo phần mềm tính tốn máy tính cần thiết cho đối tượng học sinh, sinh viên,…Phần mềm tính tốn hỗ trợ đắc lực cho việc tiếp thu kiến thức lý thuyết, giảng dạy lý thuyết gắn liền với thực hành tính tốn, giúp học sinh, sinh viên khơng tiếp thu tốt kiến thức khoa học, mà tiếp cận tốt với phương pháp phần mềm tính tốn đại Nói chung, trường đại học nay, việc gắn giảng dạy lý thuyết với tính tốn thực hành cịn chưa đẩy mạnh Điều hồn tồn khơng phải thiếu cơng cụ tính tốn (phần mềm tính tốn tốn học), mà có lẽ việc phổ biến cách sử dụng phần mềm tính tốn cịn quan tâm Với mục đích minh họa khả sử dụng phần mềm tính tốn tốn học dạy học mơn Giải tích số, tác giả chọn đề tài luận văn “Phương pháp tính giải phương trình vi phân” Trong khóa luận tốt nghiệp tác giả trình bày lý thuyết số phương pháp giải phương trình vi phân Từ đó, dựa vào phần lý thuyết tác giả dùng phần mềm MATLAB để giải toán Khóa luận gồm ba chương: Chương 1: Trình bày sơ lược toán Cauchy, tồn nghiệm tốn Cauchy Chương 2: Trình bày phần lý thuyết phương pháp giải gần phương trình vi phân thường KHĨA LUẬN TỐT NGHIỆP SVTH: NGUYỄN ĐÌNH HUY -6- Chương 3: Giới thiệu phần mềm hỗ trợ dùng để giải phương trình vi phân thường vẽ đồ thị hàm số so sánh kết thực nghiệm với kết xác - phần mềm Matlab Có thể coi chương trình viết phần mềm MATLAB luận văn chương trình mẫu để giải tốn Cauchy với phương pháp khác Vì vậy, cần giải tốn Cauchy ta cần nhập toán điều kiện cần giải Điều tác giả thực nhiều tốn cụ thể CHƯƠNG KHĨA LUẬN TỐT NGHIỆP SVTH: NGUYỄN ĐÌNH HUY -7- KIẾN THỨC CHUẨN BỊ Trong chương tơi trình bày phát biểu tốn Cauchy cho phương trình vi phân thường Định lí tồn nghiệm nói đến nhằm thuận tiện cho việc trình bày mục sau 1.1 Phát biểu toán Cauchy 1.1.1 Mở đầu Bài toán Cauchy toán phương trình vi phân thường, với điều kiện bổ sung cho khơng q điểm 1.1.2 Bài tốn Cauchy phương trình vi phân cấp Cho khoảng  x0 , X  Tìm hàm số y  y( x) xác định  x0 , X  thỏa mãn y  f ( x, y) , x0  x  X , (1.1) y(x0 )  y0 (1.2) Trong f ( x, y) hàm số biết hai đối số x , y , y0 số thực cho trước Điều kiện (1.2) gọi điều kiện Cauchy hay điều kiện trị ban đầu Thí dụ: Bài tốn y  y  2x , y y (0)  1.2 Định lí tồn nghiệm 1.2.1 Phương pháp xấp xỉ Picard Ta xét toán Cauchy phương trình cấp dạng giải đạo hàm: y  f ( x, y) , y( x0 )  y0 f xác định liên tục miền mở D  Giả sử y ( x) nghiệm tốn Cauchy (1.1) (1.2), tích phân hai vế phương trình (1.1) (1.2) ta phương trình tích phân y ( x) x y( x)  y0   f (t, y(t ))dt (1.3) x0 Rõ ràng nghiệm (1.1) (1.2) nghiệm (1.3) ngược lại, nghiệm (1.3) khả vi liên tục khoảng I thỏa phương trình (1.1) (1.2) Phép lặp Picard – Lindelof Về mặt tốn tử, nghiệm phương trình tích phân (1.3) lời giải tốn điểm bất động ánh xạ co không gian metric đầy đủ (ở ta xét KHÓA LUẬN TỐT NGHIỆP SVTH: NGUYỄN ĐÌNH HUY -8- khơng gian hàm khả vi liên tục đoạn I đó) mà lời giải cho phương pháp xấp xỉ liên tiếp Picard – Lindelof sau Xét hàm xác định cách đệ qui y0 (x)  y0 , x yk 1 ( x)  y0   f (t, yk (t ))dt , với k  (1.4) x0 Bổ đề 1.1 Giả sử f liên tục hình chữ nhật D = {(x, y)  / |x – x0|  a, |y – y0|  b} Đặt M : max f ( x, y) h : min(a, ( x, y )D b ) Khi với x  I :  x0  h, x0  h , ta M có: yk ( x)  y0  b , với k Nói cách khác, phép lặp (1.4) hàm yk khơng khỏi phần hình chữ nhật D , ứng với x  I Chứng minh: Ta có, với x0  h  x  x0  h : yk  y0  x x x0  f (t, yk 1(t))dt  x f (t, yk 1(t )) dt  M x  x0  Mh  b 1.2.2 Sự tồn nghiệm Trong phần phát biểu chứng minh định lí lý thuyết phương trình vi phân, khẳng định tồn nghiệm toán Cauchy Định nghĩa 1.2 Cho hàm f ( x, y) xác định miền D  Ta nói f thỏa điều kiện Lipschitz theo biến y D tồn số dương L (gọi số Lipschitz) cho: f ( x, y1)  f ( x, y2 )  L y1  y2 , với ( x, y1) , (x, y2 )  D Nhận xét: Điều kiện Lipschitz yếu so với điều kiện giới nội đạo hàm riêng f f f D Thật vậy, giả sử liên tục  L Khi đó, áp dụng định lí Lagrange y y y cho hàm f ( x, y) theo biến y ta f ( x, y1)  f ( x, y2 )  ( y1  y2 ) f  x, y   ( y2  y1)  y  Từ suy điều kiện Lipschitz Định lí 1.2 (Định lí tồn nghiệm) Giả sử hàm số f ( x, y) (1.1) liên tục thỏa mãn điều kiện Lipschitz theo biến y hình chữ nhật D = {(x, y)  KHÓA LUẬN TỐT NGHIỆP / |x – x0|  a, |y – y0|  b} SVTH: NGUYỄN ĐÌNH HUY -9- Khi nghiệm tốn Cauchy (1.1) (1.2) tồn đoạn b I :  x0  h, x0  h , với h : min(a, ) M : max f ( x, y) ( x, y )D M Chứng minh: Chứng minh chia làm hai bước: Sự tồn tại: Ta chứng minh phép lặp Picard hội tụ I đến nghiệm toán Cauchy Trước tiên ta chứng minh quy nạp k 1 x  x0 , với x  I yk 1 ( x)  yk ( x)  M L (k 1)! k Với k  , bất đẳng thức x  f (t, y0 (t))dt  M x  x0 , bất đẳng thức x0 Giả sử ta có điều với k 1 , với x0  x  x0  h ta có: yk 1 ( x)  yk ( x)  x   f (t, yk (t))  f (t, yk 1(t)) dt x0 x x x0 x0   f (t, yk (t ))  f (t, yk 1(t )) dt  L  yk (t )  yk 1(t ) dt x  L  yk (t )  yk 1 (t ) dt x0  ML k x  x0 k 1 x  x0 x  x0 dt  MLk , k! (k  1)! k (với x0  h  x  x0 ta đánh giá tương tự) Xét dãy hàm  yk ( x) I ta có: yk  p (x)  yk (x)  yk  p (x)  yk  p1(x)  yk  p1(x)  yk  p2 (x)   yk 1(x)  yk (x)     k 1   L x  x k p L x  x M 0       L  (k  P)! (k 1)!     M L ( Lh) j  j! j k 1 ( Lh) j Chuỗi số  j 0 hội tụ, nên phần dư (xuất biểu thức cuối j!  cùng) làm cho bé tùy ý k đủ lớn Theo tiêu chuẩn Cauchy, dãy  yk ( x) hội tụ I đến hàm y ( x) Để chứng minh y ( x) nghiệm ta cần qua giới hạn đẳng thức KHĨA LUẬN TỐT NGHIỆP SVTH: NGUYỄN ĐÌNH HUY -10x yk 1 ( x)  y0   f (t, yk (t ))dt x0 Vì dãy hàm  yk ( x) hội tụ đều, f liên tục hình chữ nhật D nên dãy hàm  f (t, yk (t)) hội tụ I đến hàm f (t , y(t )) Do chuyển giới hạn qua dấu tích phân để đẳng thức (1.3) Vậy y ( x) nghiệm tốn Cauchy (1.1) (1.2) Tính Giả sử tốn Cauchy (1.1) (1.2) cịn có nghiệm z ( x) , ta có x y( x)  z( x)    f (t, y(t ))  f (t, z(t ))  dt x0 Suy y( x)  z( x)  x   f (t, y(t))  f (t, z(t)) dt  2M x  x0 x0 Từ x  x0 y( x)  z( x)    f (t, y(t ))  f (t, z(t )) dt  L  y(t )  z(t ) dt  2ML x0 x0 x x Lặp lại trình trên, ta dễ dàng chứng minh với số tự nhiên k : k 1 x  x0 , với x  I y( x)  z( x)  2ML (k 1)! k Cho k   ta có y( x)  z( x)  I Như vậy, cách địa phương, nghiệm y ( x) CHƯƠNG KHÓA LUẬN TỐT NGHIỆP SVTH: NGUYỄN ĐÌNH HUY -37- đồ thị (Hình 1.10) Hình 1.10 Bảng giá trị x y với h=0.06 y với h=0.03 y thực tế 1.0000 1.0000 1.0000 0.06 0.9400 0.9418 0.9435 0.12 0.8872 0.8906 0.8938 0.18 0.8411 0.8459 0.8505 3.3.3.3 Nhận xét Phương pháp Euler đơn giản, có sai số cao nên sử dụng Nó có độ xác nghiệm khơng cao (có độ xác cấp một) Nó đạt độ xác tương đối vài đoạn nhỏ toán Ở ví dụ thấy đạt độ xác tương đối đoạn [0;0.25] [2.25;3] Ngoài ra, bảng giá trị cho ta thấy h giảm độ xác tăng, bước lặp nhỏ sai số tăng chậm xa dần điểm đầu 3.3.4 Phương pháp Runge – Kutta 3.3.4.1 Thuật toán Theo Runge – Kutta giá trị gần yi1 xác định nhờ công thức: h yi1  yi  (k1  2k2  2k3  k4 ) , đó: k1  f ( xi , yi ) , h h k2  f ( xi  , yi  k1) , 2 h h k3  f ( xi  , yi  k2 ) , 2 k4  f ( xi  h, yi  h.k3 ) KHĨA LUẬN TỐT NGHIỆP SVTH: NGUYỄN ĐÌNH HUY -38- 3.3.4.2 Viết chương trình MATLAB Ta xây dựng hàm Rungekutta() để thực công thức Runge – Kutta bậc 4: function [x,y]=rungekutta(f,a,b,y0,n) if nargin

Ngày đăng: 08/05/2021, 21:02

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan