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 (KL06328)

46 437 0
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 (KL06328)

Đ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

Khóa luận tốt nghiệp TRƢỜNG ĐẠI HỌC SƢ PHẠM HÀ NỘI KHOA TOÁN =======***======= BÙI HUYỀN TRANG 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 TỐT NGHIỆP ĐẠI HỌC Chuyên ngành: Giải tích HÀ NỘI - 2014 SVTH: Bùi Huyền Trang Khóa luận tốt nghiệp TRƢỜNG ĐẠI HỌC SƢ PHẠM HÀ NỘI KHOA TOÁN =======***======= BÙI HUYỀN TRANG 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 TỐT NGHIỆP ĐẠI HỌC Chuyên ngành: Giải tích Ngƣời hƣớng dẫn khoa học: PGS.TS KHUẤT VĂN NINH HÀ NỘI - 2014 LỜI CẢM ƠN SVTH: Bùi Huyền Trang Khóa luận tốt nghiệp Em xin chân thành cảm ơn thầy cô giáo tổ Giải tích tạo điều kiện giúp đỡ đóng góp ý kiến cho em suốt thời gian học tập nghiên cứu 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 hoàn thành khóa luận Hà Nội, tháng năm 2014 Sinh viên thực Bùi Huyền Trang SVTH: Bùi Huyền Trang Khóa luận tốt nghiệp LỜI CAM ĐOAN Khóa luận hoàn hành hướng dẫn tận tình PGS.TS Khuất Văn Ninh với cố gắng thân Trong trình nghiên cứu em kế thừa thành nghiên cứu nhà khoa học, nhà nghiên cứu với trân trọng biết ơn Em xin cam đoan kết khóa luận kết nghiên cứu thân, không trùng với khóa luận tác giả Hà Nội, tháng năm 2014 Sinh viên thực Bùi Huyền Trang SVTH: Bùi Huyền Trang Khóa luận tốt nghiệp MỤC LỤC Chƣơng 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 sai số tương đối 1.1.2 Sai số tính toán 1.1.3 Bài toán ngược sai số 1.2 Khái quát phương trình vi phân 1.2.1 Định nghĩa 1.2.2 Bài toán Cauchy phương trình vi phân thường cấp 1.2.3 Một số định lý Chƣơng 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 ỨNG DỤNG MAPLE TRONG TÍNH TOÁN 26 3.1 Giới thiệu phần mềm Maple 26 3.2 Một số ứng dụng Maple 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 SVTH: Bùi Huyền Trang Khóa luận tốt nghiệp LỜI NÓI ĐẦU Toán học môn học khoa học gắn liền với thực tiễn Sự phát triển Toán học đánh dấu ứng dụng vào việc giải toán thực tiễn Trong lĩnh vực Toán ứng dụng thường gặp nhiều toán liên quan đến phương trình vi phân thường Vì việc nghiên cứu phương trình vi phân thường đóng vai trò quan trọng lí thuyết Toán học Chúng ta biết có số phương trình vi phân thường tìm nghiệm xác, phần lớn phương trình vi phân nảy sinh từ toán thực tiễn không tìm nghiệm xác Do vậy, vấn đề đặt tìm cách để xác định nghiệm gần phương trình vi phân Xuất phát từ nhu cầu đó, nhà Toán học tìm nhiều phương pháp để giải gần phương trình vi phân thường Dưới góc độ sinh viên sư phạm chuyên ngành Toán phạm vi khóa luận tốt nghiệp em xin mạnh dạn trình bày hiểu biết vấn đề : “Giải gần số lớp phƣơng trình vi phân thƣờng ứng dụng Maple tính toán” Khóa luận gồm 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 phương trình vi phân thường Chương 3: Ứng dụng Maple tính toán Tuy có nhiều cố gắng, song thời gian lực hạn chế nên khóa luận em chắn nhiều thiếu sót, mong nhận đóng góp ý kiến quý thầy cô bạn để khóa luận hoàn thiện Em xin chân thành cảm ơn! SVTH: Bùi Huyền Trang Khóa luận tốt nghiệp Chƣơng 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 sai số tương đối a, Khái niệm số gần Sai số tuyệt đối sai số tương đối Trong tính toán thông thường người ta số a mà biết số gần a Sai số gọi gần a , độ lệch h  a0  a gọi sai số thực a Vì a nên h Tuy nhiên, ta xác định số dương a  h cho a  a  a0  a  a Số a bé mà ta xác định gọi sai số tuyệt đối a Tỷ số   a gọi sai số tương đối a , a có a thứ nguyên với a ,  a số thứ nguyên biểu diễn 0 , 00 ,… b, Sự thu gọn số, sai số thu gọn Giả sử a biểu diễn dạng số thập phân a    p10 p   p 110 p 1    p q 10 p q  i  i  p, p 1, , p  q  số nguyên dương từ đến Chẳng hạn a  123, 45  1.102  2.101  3.10  4.10 1  5.10 2 p  2, q  4, 2  1, 1  2, 0  3, 1  4, 2  Thu gọn a vứt bỏ số hạng bên phải biểu diễn a để số gần a gọn đảm bảo độ xác cần thiết Quy ước chữ số bỏ tính từ bên trái qua có giá trị 5 gọn ta tăng thêm vào chữ số cuối giữ lại đơn vị, giữ nguyên 5 thu Trường hợp chữ số bỏ chữ số toàn chữ số chữ số cuối giữ lại để nguyên có số chẵn tăng thêm đơn vị số lẻ (tính toán với số chẵn thuận lợi hơn) SVTH: Bùi Huyền Trang Khóa luận tốt nghiệp Ví dụ: Thu gọn đến hai chữ số sau dấu phẩy với số sau: a  57,96573, a  45,75124, a  302,36500, a  432,22500, a  57,97 a  45,75 a  302,36 a  432,23 c, Cách viết số gần Thường viết số gần kèm theo sai số (tuyệt đối hay tương đối)  0,05   ; b  0,0085  0,03 ; c  146  0   0,02   Chẳng hạn: a  13,52  Trong bảng số thường giữ lại chữ số tức số mà chữ số cuối giữ lại có bậc tương ứng sai số tuyệt đối theo quy tắc làm tròn số ( không đưa định nghĩa xác chữ số chắc) 1.1.2 Sai số tính toán Giả sử cần tính giá trị hàm y  f ( x10 , x20 , xn0 ) biết giá trị gần x1 , x2 , , xn với sai số tương ứng xi ( hay  xi ) ( i  1, n ) Sai số giá trị y  f  x1 , x2 , , xn  gọi sai số tính toán Giả sử f hàm khả vi, liên tục theo biến xi Khi đó: y  y0  f  x1, x2 , , xn   f ( x10 , x20 , , xn0 ) Như ta viết: y y   f  x , x , , x   x  x    f  x , x , , x  x n n ' i 1 i n i i i 1 ' 1 n i  y (1) Ta có công thức: n y   f i '  x1, x2 , , xn  xi (2) n y n fi '  x1 , x2 , , xn   y  xi   ln f  x1 , x2 , , xn  xi y i 1 f  x1 , x2 , , xn  i 1 xi (3) i 1 SVTH: Bùi Huyền Trang Khóa luận tốt nghiệp Công thức (3) viết  y   ln y (4) a, Sai số cuả tổng y  x1  x2   xn , y 'x  i ( i  1, n ) n Theo công thức (2) ta có : y   xi i 1 Sai số tuyệt đối tổng tổng sai số tuyệt đối số hạng Nếu tổng đại số có giá trị nhỏ sai số tương đối   y trở nên lớn ( y y bé) nên kết hẳn tính xác Vì trình tính toán công thức đưa đến việc tính cách hiệu số hai số gần Chẳng hạn tính nghiệm phương trình bậc hai ax2  bx  c  0, b  theo công thức b  b2  4ac x mà 4ac nhỏ so với b2 ta thay biểu thức tương 2a đương x  2c b  b2  4ac b, Sai số tích y  x1 x2 xn ln y  ln x1  ln x2   ln xn n n i 1 i 1 Theo công thức (4) ta có  y   ln y    ln xi    xi Sai số tương đối tích tổng sai số tương đối thành phần c, Sai số thương: y  x1 x2 x  y'x  , y'x   12 x2 x2 SVTH: Bùi Huyền Trang Khóa luận tốt nghiệp Từ y  x2 x1  x1x2 , x22  y   x1   x2 d, Sai số phép lũy thừa, khai căn, nghịch đảo Cho y  x ,  y   Nếu d ln y ; x    x dx   (phép lũy thừa)  y   x , độ xác giảm  Nếu    ta có phép khai căn,  y   x hay độ xác tăng  Nếu   1 ta có phép nghịch đảo,  y   x nghĩa độ xác không đổi 1.1.3 Bài toán ngược sai số Giả sử cần tính y  f  x1, x2 , , xn  với sai số cần có y   Hãy xác định sai số cần thiết phải đạt đối số xi   Nguyên lý ảnh hưởng đều: Giả sử f x' xi  const i  1, n Khi i n y   f x'i xi  n.const  i 1 y y   f x'i xi  xi   n n f x'i n f x'i Ví dụ: Một hình trụ có bán kính đáy r  2m , chiều cao h  3m Hãy xác định r h cho thể tích V tính xác đến 0.1m3 Giải Ta có V   r 2h; V  0,1 m3 ;   3,14; h  m; r  m; n  V 0,1  2 rh  37,7  r   0,001; r 3.37,7 V 0,01  r h  12     0,003;  3.12 SVTH: Bùi Huyền Trang Khóa luận tốt nghiệp Khai báo công thức tính xn  x0  nh : [>x:=n->n*h; x : n  nh Khai báo thủ tục tính giá trị yn theo công thức Euler cải tiến: [>y:=proc(n) option remember; [>y(n-1)+h/2*(f(x(n-1),y(n-1))+f(x(n),y(n-1)+h*f(x(n-1) ,y(n-1)))); [> end; y : proc(n) option remember , h y (n  1)  ( f ( x(n  1), y (n  1))  f ( x(n), y (n  1)  hf ( x( n  1), y( n  1)))) end proc Khai báo giá trị ban đầu: [> y(0):=0; y(0)  Lập dãy giá trị y từ tới 10: [> seq(y(i),i=0 10); 0,0., 001, 0050001, 01400260010, 03002220738, 05511234067, 09141607768, 141257676, 2072469738, 2925421046 Để so sánh kết với nghiệm xác, ta dùng lệnh dsolve ( giải phương trình vi phân) để tìm nghiệm xác 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 phương trình vi phân nhờ lệnh dsolve kí hiệu nghiệm Sol: [> Sol:=dsolve({diff(Y(X),X)=X^2+(Y(X)^2,Y(0)=0},Y(X)); 29 SVTH: Bùi Huyền Trang Khóa luận tốt nghiệp  3   3  , X   BesselY  , X        1  1   BesselJ  , X   BesselY  , X  4  4   Sol : Y (X)   X   BesselJ  Ta thấy rằng, phương trình vi phân y '  x2  y hoàn toàn không dễ giải: nghiệm biểu diễn thông qua hàm đặc biệt Bessel Chú ý lệnh tìm nghiệm xác, ta dùng chữ in hoa để tránh 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 (tính theo công thức Euler) giá trị nghiệm (tính theo công thức nghiệm): [>array([seq([n,y(n),evalf(subs(X=n/10,Y(X)))],n=0 10]); 0  1 2  3  4  5  6 7  8  9  10 0 .001 0050001 01400260010 03002220738 05511234067 09141607768 1412517676 2072469738 2925421046   0003333349060  002666869814   009003473190   02135938017   04179114620   07244786118  1156598536   1740802646   2509066824   3502318440  Trong mảng này, cột thứ số bước lặp, số cột thứ hai tương ứng giá trị nghiệm xấp xỉ, số cột thứ ba giá trị nghiệm theo công 30 SVTH: Bùi Huyền Trang Khóa luận tốt nghiệp thức Ta thấy kết tính toán theo công thức Euler có sai số lớn so với nghiệm xác Tính toán Maple , sử dụng phƣơng pháp Euler cải tiến (h=0,1) Khởi động chương trình: [> restart; Khai báo vế phải phương trình (hàm f ): [> f:=(x,y)->x^2+y^2; f : ( x, y)  x  y Khai báo bước nội suy h  0.1 [>h:=0.1; h : Khai báo công thức tính xn  x0  nh : [>x:=n->n*h; x : n  nh Khai báo thủ tục tính giá trị yn theo công thức Euler cải tiến: [>y:=proc(n) option remember; [>y(n-1)+h/2*(f(x(n-1),y(n-1))+f(x(n),y(n-1)+h*f(x(n-1) ,y(n-1)))); [> end; y : proc(n) option remember , h y (n  1)  ( f ( x(n  1), y (n  1))  f ( x(n), y (n  1)  hf ( x( n  1), y( n  1)))) end proc Khai báo giá trị ban đầu: [> y(0):=0; 31 SVTH: Bùi Huyền Trang Khóa luận tốt nghiệp y(0)  Lập dãy giá trị y từ tới 10: [> seq(y(i),i=0 10); 0,.0005000000000.003000125004.009503025759.02202467594.04262140863 07344210065.1168165840.1753963673.2523742134.3518301325 Vào gói công cụ phương trình vi phân DEtools: [> with(DEtools): Tìm nghiệm phương trình vi phân nhờ lệnh dsolve: [> Sol:=dsolve({diff(Y(X),X)=X^2+(Y(X)^2,Y(0)=0},Y(X));  3   3  , X   BesselY  , X        1  1   BesselJ  , X   BesselY  , X  4  4   Sol : Y (X)   X   BesselJ  Ấn định công thức nghiệm: [> assign(Sol); Lập mảng để so sánh giá trị gần (tính theo công thức Euler) giá trị phương trình (tính theo công thức nghiệm): [>array([seq([n,y(n),evalf(subs(X=n/10,Y(X)))],n=0 10]); 32 SVTH: Bùi Huyền Trang Khóa luận tốt nghiệp 0  1 000050000000  003000125004  3 009503025759   02202467594  5 04262140863  6 07344210065 7 1168165840  8 1753963673  9 2523742134  10 3518301325   0003333349060 002666869814   009003473190   02135938017   04179114620   07244786118  1156598536   1740802646   2509066824   3502318440  Ta tính xấp xỉ nghiệm nhờ phương pháp Euler cải tiến Maple h=0,05 sau: Khởi động chương trình: [> restart; Khai báo vế phải phương trình (hàm f ): [> f:=(x,y)->x^2+y^2; f : ( x, y)  x  y Khai báo bước nội suy h  0.05: [> h:=0.05; h : 05 Khai báo công thức tính xn  x0  nh : [> x:=n->n*h; x : n  nh Khai báo thủ tục tính giá trị yn theo công thức Euler cải tiến: [> y:=proc(n) option remember; 33 SVTH: Bùi Huyền Trang Khóa luận tốt nghiệp [> y(n-1)+h/2*(f(x(n-1),y(n-1))+ f(x(n),y(n-1)+h*f(x(n-1),y(n-1)))); [> end; y : proc(n) option remember , h y (n  1)  ( f ( x(n  1), y (n  1))  f ( x(n), y (n  1)  hf ( x( n  1), y( n  1)))) end proc Khai báo giá trị ban đầu: [>y(0):=0 y(0) : Lập dãy giá trị y từ tới 20: [>seq(y(i),i=0 20);     Vào gói công cụ Phương trình vi phân DEtools: [> with(DEtools): Tìm nghiệm phương trình vi phân nhờ lệnh dsolve: [> Sol:=dsolve({diff(Y(X),X)=X^2+(Y(X))^2,Y(0)=0},Y(X));   3   3  X   BesselJ  , X   BesselY  , X       Sol : Y (X)    1  1   BesselJ  , X   BesselY  , X  4  4  Ấn định công thức nghiệm: [> assign(Sol); Lập mảng để so sánh giá trị gần (tính theo công thức Euler) giá trị phương trình (tính theo công thức nghiệm): [>array([seq([n,y(n),evalf(subs(X=n/10,Y(X)))],n=0 20]); 34 SVTH: Bùi Huyền Trang Khóa luận tốt nghiệp 0  1 00006250000000   0003750009768  3 001187523634  002750192592  5 005313445880  6 009128432478  7 01444766188  8 02152597185  9 03062188483  10 04199943062  11 05593052466 12 07269800874  13 0925994876  14 1159521276  15 1430986522  16 1744148130  17 2103187590  18 2512828469  19 2978486637  20 3506463408    00004166662214   0003333349060   001125027190  002666869814   005209302335   009003473190    01430188852  02135938017   03043446027   04179114620   05570133762   07244786118   09232831036   1156598536   1427852338  1740802646   2099632190   2509066824   2974526313   3502318440  Kết luận: Ta thấy phương pháp Euler cải tiến với số bước lặp nhiều ( 20 bước, h  0,05 ) cho kết xác so với phương pháp Euler cải tiến với số bước 10 bước ( h  0,1 ) Tính toán Maple, sử dụng phƣơng pháp Runge - Kutta cấp bốn 35 SVTH: Bùi Huyền Trang Khóa luận tốt nghiệp (h=0,1) Ta có f ( x, y)  x2  y , x(0)  0, y(0)  ta được: k1  f ( xn , yn )  xn2  yn2 k 0.1k1 h 0.1 , yn  h )  ( xn  )  ( yn  ) 2 2 k 0.1k2 h 0.1 k3  f ( xn  , yn  h )  ( xn  )  ( yn  ) 2 2 k4  f ( xn 1 , yn  hk3 )  xn 12  ( yn  0.1k3 ) k2  f ( xn  h Và yn1  yn  [k1  2k2  2k3  k4 ]  yn  0.1 [k1  2k2  2k3  k4 ] Khởi động chương trình: [> restart; Định nghĩa yrk ( tính y theo Runge - Kutta): yrk := yrk Khai báo vế phải phương trình (hàm f ): [> f:=(x,y)->x^2+y^2; f : ( x, y)  x  y Khai báo bước nội suy h=0.1: [> h:=0.1; h : Khai báo công thức tính xn  x0  nh : [> x:=n->n*h; x : n  nh Khai báo thủ tục tính giá trị theo công thức Runge- Kutta cấp bốn: [> yrk:=proc(n); [>local k1,k2,k3,k4; [> option remember; 36 SVTH: Bùi Huyền Trang Khóa luận tốt nghiệp [> k1:=f(x(n-1),yrk(n-1)); [> k2:=f(x(n-1)+h/2,yrk(n-1)+h*k1/2); [> k3:=f(x(n-1)+h/2,yrk(n-1)+h*k2/2); [> k4:=f(x(n),yrk(n-1)+h*k3); [> yrk(n-1)+h/6*(k1+2*k2+2*k3+k4); [> end; yrk := proc (n) local k1, k2, k3, k4; option remember; k1: f ( x(n  1), y rk (n  1)); k : f ( x(n  1)  1/  h, y rk (n 1)  1/  h  k1); k 3: f ( x(n  1)  1/  h, y rk (n  1)  1/  h  k 2); k : f ( x(n), y rk (n  1)  h  k 3); y rk (n  1)  1/  h(k1   k   k  k 4) end proc Khai báo giá trị ban đầu: [> y(0):=0; y(0) : Lập dãy giá trị y từ tới 10: [> seq(yrk(i),i=0 10); 0, 0003333348958.002666875369.009003498131.02135944733.04179128848 07244812485.1156603048.1740810040.2509078684.3502337417 Vào gói công cụ Phương trình vi phân DEtools: [> with(DEtools): Tìm nghiệm phương trình vi phân nhờ lệnh dsolve: [>Sol:=dsolve({diff(Y(X),X)=X^2+(Y(X))^2,Y(0)=0},Y(X)); 37 SVTH: Bùi Huyền Trang Khóa luận tốt nghiệp   3  , X   BesselY  , X        1  1   BesselJ  , X   BesselY  , X  4  4   Sol : Y (X)    3 X   BesselJ  Ấn định công thức nghiệm: [> assign(Sol); Lập mảng để so sánh giá trị gần (tính theo công thức Runge - Kutta) giá trị phương trình (tính theo công thức nghiệm): [>array([seq([n,yrk(n),evalf(subs(X=n/10,Y(X)))],n=0 10)]); 0 0    1 0003333348958 0003333349060     002666875369 002666869814  3 009003498131 009003473190     02135944733 02135938017    5 04179128848 04179114620     07244812485 07244786118    1156598536  1156603048  8 1740810040  1740802646   9 2509078684  2509066824   10 3502337417 3502318440  So sánh kết phương pháp Runge - Kutta cấp bảng với kết thực theo phương pháp Euler phương pháp Euler cải tiến, ta thấy phương pháp cho kết xác điểm so với phương pháp Euler phương pháp Euler cải tiến Với số bước (n=10, h=0.1) ta thu kết không xác phương pháp Euler cải tiến với số bước gấp đôi (n=20, h=0.05) 38 SVTH: Bùi Huyền Trang Khóa luận tốt nghiệp Ta tính theo phương pháp Runge – Kutta với số bước n=20 (h= 0,05) sau: Khởi động chương trình: [> restart; Định nghĩa yrk (tính y theo Runge - Kutta): yrk := yrk Khai báo vế phải phương trình (hàm f ): [> f:=(x,y)->x^2+y^2; f : ( x, y)  x  y Khai báo bước nội suy h=0.1: [> h:=0.05; h : 05 Khai báo công thức tính xn  x0  nh : [> x:=n->n*h; x : n  nh Khai báo thủ tục tính giá trị theo công thức Runge - Kutta cấp bốn: [> yrk:=proc(n); [>local k1,k2,k3,k4; [> option remember; [> k1:=f(x(n-1),yrk(n-1)); [> k2:=f(x(n-1)+h/2,yrk(n-1)+h*k1/2); [> k3:=f(x(n-1)+h/2,yrk(n-1)+h*k2/2); [> k4:=f(x(n),yrk(n-1)+h*k3); [> yrk(n-1)+h/6*(k1+2*k2+2*k3+k4); [> end; yrk := proc (n) 39 SVTH: Bùi Huyền Trang Khóa luận tốt nghiệp local k1, k2, k3, k4; option remember, k1: f ( x(n  1), y rk (n  1)); k : f ( x(n  1)  1/  h, y rk (n 1)  1/  h  k1); k 3: f ( x(n  1)  1/  h, y rk (n  1)  1/  h  k 2); k : f ( x(n), y rk (n  1)  h  k 3); y rk (n  1)  1/  h(k1   k   k  k 4) end proc Khai báo giá trị ban đầu: [> y(0):=0; y(0) : Lập dãy giá trị y từ tới 20: [> seq(yrk(i),i=0 20); 0, 00004166667887,.0003333349637,.001125027316,.002666870382,.005209303462 009003475092,.01430189176,.02135938501,.03043446755,.04179115619, 05570135121,.07244787939,.09232833422,.1156598841,.1427852732, 1740803146,.2099632826,.2509067623,.2974527325,.3502319724 Vào gói công cụ Phương trình vi phânDEtools: [> with(DEtools): Tìm nghiệm phương trình vi phân nhờ lệnh dsolve: [>Sol:=dsolve({diff(Y(X),X)=X^2+(Y(X))^2,Y(0)=0},Y(X));   3  , X   BesselY  , X        1  1   BesselJ  , X   BesselY  , X  4  4   Sol : Y (X)    3 X   BesselJ  Ấn định công thức nghiệm: [> assign(Sol); 40 SVTH: Bùi Huyền Trang Khóa luận tốt nghiệp Lập mảng để so sánh giá trị gần (tính theo công thức Runge - Kutta) giá trị phương trình (tính theo công thức nghiệm): [>array([seq([n,yrk(n),evalf(subs(X=n/20,Y(X)))],n=0 20)]); 0 0    1 00004166667887 00004166662214     0003333349637 0003333349060  3 001125027316 001125027190     002666870382 002666869814    5 005209303462 005209302335    009003473190  6 009003475092   01430188852  7 01430189176 8 02135938501 02135938017   9 03043446755 03043446027    10 04179115619 04179114620    05570133762  11 05570135121   07244786118  12 07244787939 13 09232833422 09232831036   14 1156598841  1156598536   15 1427852732  1427852338   1740802646 16 1740803146    2099632190 17 2099632826    2509066824 18 2509067623  19 2974527325  2974526313    20 3502319724  3502318440 Kết luận: Các kết phương pháp Runge – Kutta cấp tốt nhiều so với kết thực theo phương pháp Euler phương pháp Euler cải tiến với số bước (n=20, h=0,05) tốt phương pháp Runge – Kutta với số bước (n=10, h=0,1) 41 SVTH: Bùi Huyền Trang Khóa luận tốt nghiệp KẾT LUẬN Đề tài nêu hệ thống phương pháp giải gần phương trình vi phân thường (phát biểu dạng toán Cauchy) Nội dung chủ yếu đề cập đến phương pháp giải tích phương pháp số Trong đó, phương pháp giải tích giúp ta tìm nghiệm gần dạng giải tích (các tích phân gần đúng), phương pháp số cho ta xác định giá trị gần nghiệm toán, sau ta phải áp dụng công thức nội suy để tìm lại nghiệm toán Trong phần cuối, đề tài đưa ứng dụng Tin học việc xác định giá trị gần nghiệm sử dụng phần mềm Maple vào việc giải gần phương trình vi phân Việc sử dụng Maple cho ta kết toán cách nhanh xác Do giới hạn đề tài nên không đề cập đến tất phương pháp, mà đề tài nêu số phương pháp thường dùng, có ứng dụng thực tế đơn giản Tuy có nhiều cố gắng trong trình nghiên cứu, song chắn đề tài không tránh khỏi thiếu sót, kính mong quý thầy cô bạn sinh viên tham gia đóng góp ý kiến để đề tài em hoàn thiện Em xin chân thành cảm ơn! Sinh viên Bùi Huyền Trang 42 SVTH: Bùi Huyền Trang Khóa luận tốt nghiệp TÀI LIỆU THAM KHẢO [1] Phạm Kỳ Anh (1996), Giải tích số, Nxb ĐHQGHN, Hà Nội [2] Nguyễn Minh Chương, Nguyễn Văn Khải, Khuất Văn Ninh, Nguyễn Văn Tuấn, Nguyễn Tường (2001),Giải tích số, NXB Giáo Dục [3] Phạm Huy Điển (2002), Tính toán, lập trình giảng dạy toán học Maple, Nxb Khoa học Kỹ thuật Hà Nội [4] Ia.D.Madevo (1979), Các phương pháp giải xấp xỉ phương trình vi phân thường, Nxb Maarif.Bacu [5] Nguyễn Thế Hoàn, Phạm Phu (2009), Cơ sở phương trình vi phân lí thuyết ổn định, NXB Giáo dục [6] Nguyễn Thế Hoàn, Trần Văn Nhung, (1979), Bài tập phương trình vi phân, NXB Đại học THCN [7] Một số tài liệu có liên quan 43 SVTH: Bùi Huyền Trang [...]... h 3.12,6 1.2 Khái quát về phƣơng trình vi phân 1.2.1 Định nghĩa Phương trình vi phân là phương trình chứa một hàm cần tìm và các đạo hàm của nó  Nếu hàm cần tìm chỉ phụ thuộc vào một biến độc lập ta có phương trình vi phân thường  Nếu hàm cần tìm phụ thuộc vào hai hay nhiều biến độc lập ta có phương trình đạo hàm riêng  Phương trình vi phân thường cấp 1 là phương trình biểu diễn dưới dạng dx  f... 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. .. 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. .. 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 2  y 2 ; y(0)  0 trên đoạn x  0;1 Giải 1 Tính toán trên Maple , sử dụng phƣơng... này trong các phương pháp giải tích ta chỉ cần nghiên cứu các phương trình vi phân thường cấp 1 với bài toán Cauchy 1.2.2 Bài toán Cauchy đối với phương trình vi phân thường cấp 1 * Xét bài toán (1-2)  dx  f t, x    dt  x(0)  x 0  (1)  t , x    0,T    x0  r; x0  r  (2) trong đó 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. .. 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... 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) 8 SVTH: Bùi Huyền Trang Khóa luận tốt nghiệp Tuy 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... 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... bài toán có dạng y ( x)  1  x2 x4 7 x6 x8     2! 6 180 140 13 SVTH: Bùi Huyền Trang Khóa luận tốt nghiệp 2.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 ''  p( x) y '  q( x) y  r ( x) y(0)  y0 ; y '(0)  y0 (6) (7) Giải. .. 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); 27 SVTH: Bùi Huyền Trang Khóa luận tốt nghiệp 1 1 y( x)  1  x2  x4  O( x6 ) 4 64 (Sau khi cho thực hiện lệnh trên màn hình sẽ hiện công thức nghiệm của phương trình vi phân cần giải) Kế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 ... Một số ứng dụng Maple vi c giải phƣơng trình vi phân Sử dụng Maple tìm nhiều nghiệm 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 Maple: Bài toán 1: Giải. ..  Được gọi toán Cauchy phương trình vi phân thường cấp Lớp toán Cauchy giải phép cầu phương hẹp thông thường để giải toán (1-2) ta phải sử dụng phương pháp giải gần (tích phân gần đúng) SVTH:... vi phân thƣờng ứng dụng Maple tính toán Khóa luận gồm 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 phương trình vi phân thường Chương 3: Ứng dụng Maple tính toán

Ngày đăng: 17/12/2015, 06:04

Từ khóa liên quan

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

Tài liệu liên quan