Danh mục

Chương 7: Giải phương trình vi phân

Số trang: 8      Loại file: doc      Dung lượng: 144.00 KB      Lượt xem: 5      Lượt tải: 0    
Xem trước 2 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Chương 7: Giải phương trình vi phân trình bày những nội dung về bài toán Cauchy, phương pháp Euler và Euler cải tiến, phương pháp Runge-Kutta. Hy vọng, đây là tài liệu tham khảo hữu ích dành cho các bạn.
Nội dung trích xuất từ tài liệu:
Chương 7: Giải phương trình vi phân CHƯƠ NG 7:GIẢIPHƯƠ NG TRÌNH VIPHÂN §1.BÀITOÁN CAUCHY Một ph ươ ng trình vi phân cấp 1 có thể viết d ưới dạng giải đượ c y =f(x,y) mà ta có thể tìm đượ c hàm y từ đạ o hàm của nó. Tồn tại vô sốnghiệ m thoả mãn ph ươ ng trình trên. Mỗinghi ệ m ph ụ thu ộc vào một hằ ng số tu ỳ ý.Khicho trướcgiá trị ban đầ u củaylày otạigiá trị đầ u xota nh ậ n đượcmột nghi ệ m riêng củaph ươ ng trình. Bàitoán Cauchy (hay bàitoán có điề u kiệ n đầ u) tóm lạinhư sau: cho xsao cho b x a,tìm y(x)tho ả mãn điề u kiệ n: y ( x ) f( x , y ) (1) y (a ) Ngườitachứng minh r ằng bàitoán này cómộtnghiệ m duy nh ấtn ếu fthoả mãn điề u kiệ nLipschitz: f(x , y 1 ) f(x , y 2 ) L y 1 y 2vớiLlàmộthằng sốd ươ ng. Ngườitacũng chứng minh r ằng n ếu f y (đạ ohàm củaftheo y)làliên tụcvàbị chặnthìfthoả mãn điề u kiệnLipschitz. Mộtcáchtổngquát hơn,ng ườitađị nh nghĩa hệ ph ươ ng trình bậc1: y 1 f1 ( x , y 1 , y 2 ,..., y n ) y2 f2 ( x , y 1 , y 2 ,..., y n ) y n fn ( x , y 1 , y 2 ,..., y n )Taph ảitìm nghi ệ m y 1,y 2,...,y n saocho: Y ( x) f( x , X) Y(a )với: y1 f1 y1 y2 f2 y2 Y .. F .. Y .. .. .. .. yn fn yn Nế u ph ươ ng trình vi phân cóbậccao hơn (n),nghi ệ m sẽ ph ụ thu ộc vào n hằng số tu ỳ ý.Để nhậ n đượ cmột nghiệ m riêng, ta phải cho n điề u kiện đầ u. Bàitoán sẽ cógiá trị đầ u nế u với giá trị x o đã cho ta cho y(x o ),y (xo ),y (xo),.... 168 Mộtph ươ ng trình viphân bậcn cóthể đư a về thành mộ t hệ phươ ng trình viphân cấp1.Vídụ nế u tacóph ươ ng trình viphân cấp2: y f( x , y , y ) y (a ) , y (a )Khiđặ tu=yvàv=y tanhậ n đượchệ phươ ng trình viphân cấp1: u v v g (x, u , v )vớiđiề u kiệ nđầ u:u(a)= vàv(a)= Các ph ươ ng pháp giải ph ươ ng trình vi phân đượ c trình bày trong chương này làcácph ươ ng pháp rờirạc:đoạ n [a,b]đượcchiathành nđoạ n nhỏ bằngnhau đượ cgọilàcácbướctíchphân h=(ba)/ n. §2.PHƯƠNG PHÁPEULERVÀEULERCẢITIẾN Giảsửtacóphươ ng trình viphân: y ( x ) f( x , y ) (1) y (a )và cần tìm nghi ệ m củanó. Tachia đoạ n [x o ,x]thành n ph ầ n bởicácđiể m chia: xo 1 f(c i , y ( c i )) f( x i , y i ) f( x i 1 , y i 1 ) 2Từđó tacócông th ứcEuler cảitiến: h yi 1 yi f( x i , y i ) f( x i 1 , y i 1 ) (3) 2Trong công thứcnày giátrị y i+1chưabiết.Dođó khiđã biếty itaph ảitìm y i+1bằng cách giảiph ươ ng trình đại số tuyế n tính (3).Tathườ ng giải(3)bằng cách lặp nh ư sau: tr ướchết chọn xấp xỉđầ u tiên củaphép lặp y (i 0 )1 chính làgiátrị y i+1tính đượctheo ph ươ ng pháp Euler sau đó dùng (3)để tính các y (i s )1 ,cụthể là: y (i 0 )1 y i hf ( x i , y i ) h y (i s )1 yi f ( x i , y i ) f ( x i 1 , y (i s 11) ) 2Quá trình tính kếtthúc khi y (i s ) đủ gầ n y (i s 1)Chươ ng trình giảiph ươ ng trình viphân theo ph ươ ng pháp Euler nh ư sau:Chươngtrình71/ / p p_Euler;#include #include #include floatf(floatx,floaty){ floata=x+y; return(a);}void main(){inti,n; floata,b,t,z,h,x0,y0,c1,c2; floatx[100],y[100]; clrscr(); printf(Cho canduoi a=); scanf(%f,&a); printf(Cho cantren b=); scanf(%f,&b); printf(Cho sobuoctinh n=); scanf(%d,&n); 170 printf(Cho sokien x0=); scanf(%f,&x0); printf(Cho sokien y0=); scanf(%f,&y0); printf(\n); printf(Bangketqua \ n); printf(\n); printf(Phuong phap Euler \n); h=(ba)/n; x[1]=x0; y[1]=y0; printf(xy); printf(\n); for(i=1;i 0.2 0.01 0.02 0.3 0.03 0.05 0.4 0.06 0.09 0.5 0.11 0.15 0.6 0.17 0.22 0.7 0.25 0.31 0.8 0.34 0.42 0.9 0.46 0.56 1.0 0.59 0.71 §3.PHƯƠNG PHÁPRUNGEKUTTA Xétbài toán Cauchy (1).Giả sử ta đã tìm đượcgiá trị gần đúng y icủa y(x i)vàmu ố n tính y i+1củay(x i+1).Trướchếttaviết ...

Tài liệu được xem nhiều: