Sử dụng cặp phương pháp nystrom và adams moulton trong dự báo và hiệu chỉnh nghiệm số của bài toán cauchy

92 588 1
Sử dụng cặp phương pháp nystrom và adams  moulton trong dự báo và hiệu chỉnh nghiệm số của bài toán cauchy

Đ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

TRNG I HC S PHM NNG KHOA TON TRN TH THU TRANG S DNG CP PHNG PHP ă NYSTROM V ADAMS- MOULTON TRONG D BO V HIU CHNH NGHIM S CA BI TON CAUCHY Chuyờn ngnh: C Nhõn Toỏn KHểA LUN TT NGHIP Ngi hng dn Th.S NGUYN HONG THNH Nng, 5/2014 Mc lc Li núi u Cỏc kin thc c bn v phng phỏp s gii phng trỡnh vi phõn 1.1 1.2 1.3 Phng trỡnh vi phõn 1.1.1 1.1.2 Bi toỏn Cauchy S tn ti v nht nghim 7 Tip cn li gii s bi toỏn Cauchy i cng v phng phỏp s gii phng trỡnh vi phõn 1.3.1 1.3.2 Cp chớnh xỏc ca phng phỏp s Tớnh phự hp ca phng phỏp s 10 12 1.3.3 1.3.4 Tớnh zero- n nh ca phng phỏp s S hi t ca phng phỏp s 14 15 a thc ni suy Newton 1.4.1 Sai phõn 16 16 1.4.2 a thc ni suy Newton lựi vi cỏc mc cỏch u 17 1.5 1.6 Phng phỏp Runge-Kutta Phng trỡnh Riccati 19 21 1.7 Phng phỏp lp n 23 1.4 Phng phỏp Nystroăm v phng phỏp Adams - Moulton 24 2.1 Phng phỏp tuyn tớnh a bc 2.1.1 Cp chớnh xỏc 24 25 2.1.2 26 Tớnh phự hp 2.1.3 2.2 2.3 S hi t 28 Phng phỏp Nystroăm 2.2.1 Xõy dng cụng thc 29 29 2.2.2 2.2.3 Mt vi phng phỏp Nystroăm S hi t 32 34 2.2.4 Cp chớnh xỏc 36 Phng phỏp Adams- Moulton 2.3.1 Xõy dng cụng thc 38 38 2.3.2 2.3.3 Mt vi phng phỏp Adams- Moulton S hi t 41 45 2.3.4 Cp chớnh xỏc 47 D bỏo v hiu chnh vi cp phng phỏp Nystroăm v Adams- Moulton gii s phng trỡnh vi phõn 3.1 Kt hp phng phỏp Nystroăm bc vi phng phỏp 3.2 3.3 50 Adams - Moulton bc 3.1.1 Thut toỏn 50 50 3.1.2 p dng thut toỏn gii mt s vớ d Kt hp phng phỏp Nystroăm bc vi phng phỏp 52 Adams - Moulton bc 3.2.1 Thut toỏn 58 58 3.2.2 p dng thut toỏn gii mt s vớ d Kt hp phng phỏp Nystroăm bc vi phng phỏp 59 Adams - Moulton bc 66 3.3.1 3.3.2 66 68 Thut toỏn p dng thut toỏn gii mt s vớ d Chng trỡnh gii trờn Maple 79 Kt lun 90 Ti liu tham kho 91 Li núi u Phng trỡnh vi phõn l mụ hỡnh mụ t khỏ tt cỏc quy lut t nhiờn v k thut nghiờn cu phng trỡnh vi phõn, ngi ta thng tip cn theo hai hng ú l nghiờn cu nh tớnh v nh lng Khúa lun ny nghiờn cu nh lng phng trỡnh vi phõn bng phng phỏp s Gii tớch s l mt lnh vc ca toỏn hc chuyờn nghiờn cu cỏc phng phỏp gii cỏc bi toỏn (ch yu l gn ỳng) bng cỏch da trờn nhng s liu c th v cho kt qu cng di dng s Gii tớch s cú th gii gn ỳng cỏc bi toỏn m cỏc phng phỏp thụng dng khỏc khụng th gii c Mc dự ó cú lch s phỏt trin hng trm nm, cũn cú nhiu bi toỏn thuc lnh vc khoa hc k thut quy v vic tỡm nghim ca phng trỡnh vi phõn, gii s phng trỡnh vi phõn thng thu hỳt s quan tõm mnh m ca cỏc nh toỏn hc v cỏc nh nghiờn cu toỏn hc ng dng Trong lnh vc ny ó cú khỏ nhiu tờn tui mang du n nh Milne- Simpson, Euler, J.D Lambert, Nystroăm, Arieh Iserles, Buttcher, Trong gii s phng trỡnh vi phõn, ngi ta thng c gng tỡm nhng phng phỏp hu hiu bo m s hi t, tớnh n nh v tớnh chớnh xỏc cao ti ny nghiờn cu phng phỏp d bỏo- hiu chnh vi cp phng phỏp hin Nystroăm v phng phỏp n Adams- Moulton nhm tng chớnh xỏc ca nghim xp x ca bi toỏn Cauchy i vi phng trỡnh vi phõn Khúa lun bao gm chng v mt ph lc Chng Trỡnh by mt s khỏi nim c bn ca phng phỏp s gii phng trỡnh vi phõn v kin thc liờn quan Chng Tp trung trỡnh by cp phng phỏp tuyn tớnh a bc s dng lm cp phng phỏp d bỏo- hiu chnh l phng phỏp Nystroăm v phng phỏp Adams- Moulton Chng Trỡnh by thut toỏn s dng cp phng phỏp d bỏohiu chnh trờn gii s phng trỡnh vi phõn v vic lp trỡnh trờn Maple gii quyt mt s vớ d c th v minh bng hỡnh v Ph lc Trỡnh by mt s on code c lp trỡnh trờn Maple gii phng trỡnh vi phõn Em xin chõn thnh cm n Thy Nguyn Hong Thnh, ngi ó gii thiu ti, cung cp ti liu v tn tỡnh hng dn em sut quỏ trỡnh thc hin khúa lun Em cng xin chõn thnh cm n Thy Tụn Tht Tỳ, ó giỳp cỏch lp trỡnh v lm quen vi Maple ng dng gii s phng trỡnh vi phõn ng thi em xin gi li cm n ti ton th cỏc thy cụ giỏo khoa Toỏn, trng i Hc S Phm, i Hc Nng ó cho em nhng kin thc toỏn hc b ớch sut quỏ trỡnh hc ti trng Do thi gian thc hin khúa lun khụng nhiu, kin thc cũn hn ch nờn thc hin khúa lun khụng trỏnh nhng sai sút Em rt mong nhn c s gúp ý v nhng ý kin phn bin ca quý thy cụ v cỏc bn Xin chõn thnh cm n! Nng, ngy 20 thỏng 05 nm 2014 Sinh viờn Trn Th Thu Trang Chng Cỏc kin thc c bn v phng phỏp s gii phng trỡnh vi phõn 1.1 Phng trỡnh vi phõn nh ngha 1.1 Phng trỡnh vi phõn l mt phng trỡnh ú n l mt hm s v phng trỡnh vi phõn luụn cha thc s o hm (hoc o hm cp cao) ca n hm Mt phng trỡnh vi phõn bc n thng cú dng tng quỏt F (x, y, y , , y (n) ) = (1.1) Hay y (n) = f (x, y, y , , y (n1) ) Cp ca mt phng trỡnh vi phõn l cp cao nht ca o hm thc s cú mt phng trỡnh ú nh ngha 1.2 Hm y = (x) c gi l nghim ca phng trỡnh vi phõn (1.1) nu nh phng trỡnh (1.1) thay y = (x), y = (x), , y (n) = (n) (x) ta nhn c F (x, (x), (x), , (n) (x)) = 1.1.1 Bi toỏn Cauchy Bi toỏn tỡm giỏ tr ban u hay cũn gi bi toỏn Cauchy l bi toỏn tỡm nghim y(x) = (y1 (x), y2 (x), , yn (x)) tha iu kin y = f (x, y) y(a) = (1.2) ú f : [a, b]ìRn Rn , y : [a, b] Rn , = (y1 (a), y2 (a), , yn (a)) 1.1.2 S tn ti v nht nghim nh ngha 1.3 (Xem [7]) Cho f : [a, b] ì Rn Rn l ỏnh x liờn tc trờn D = [a, b] ì Rn v tha iu kin Lipschitz theo bin y, ngha l tn ti L (L gi l hng s Lipschitz) cho f (x, y) f (x, y1 ) L y y1 (x, y), (x, y1 ) D nh lý 1.1 (Xem [7]) (nh lý tn ti v nht nghim) Gi s hm s f(x,y) bi toỏn Cauchy liờn tc v tha iu kin Lipschitz theo bin y trờn hỡnh ch nht D= (x, y) R2 |x x0 | a; |y y0 | b Khi ú nghim ca bi toỏn Cauchy (1.2) l tn ti v nht on b v M := max |f (x, y)| I := [x0 h; x0 + h] vi h := a, (x,y)D M 1.2 Tip cn li gii s bi toỏn Cauchy Xột bi toỏn (1.2) tha cỏc gi thit ca nh lý tn ti v nht nghim.Chia [a, b] thnh N phn bng bi cỏc im chia a = x0 , x1 , x2 , ã ã ã , xN = b Gi s y(x) l nghim ca bi toỏn (1.2) Khi ú nghim s ca (1.2) l {y1 , y2 , ã ã ã , yN } ú yn l xp x ca y(xn ) ti xn ( yn y (xn )) Phng phỏp s gii bi toỏn (1.2) l mt h sai phõn ca k + giỏ tr xp x {yn+1i }ki=1 ca {y(xn+1i )}ki=1 t ú ta cú th tớnh tun t cỏc giỏ tr xp x y1 , y2 , , yN nu bit k giỏ tr ban u Tham s ba h= c gi l bc nhy N Vớ d 1.1 H sai phõn yn+1 = yn + h f (xn+1 , yn+1 ) + f (xn , yn ) l phng phỏp s gii bi toỏn (1.2) Vớ d 1.2 H sai phõn yn+1 = yn1 + 2hf (xn , yn ) l phng phỏp s gii bi toỏn (1.2) y = f (x, y) = y Vớ d 1.3 Cho vi x [0, 1], h = 0, y(0) = y n+1 = yn + hf (xn , yn ) Gii s bng phng phỏp Euler hin y(x ) = y Ta cú y0 = y(0) = y1 = y0 + 0, 1(y0 ) = 1, 1(y0 ) = 1, y2 y3 y4 y5 = y1 + 0, 1(y1 ) = 1, 1(y1 ) = 1, 21 = y2 + 0, 1(y2 ) = 1, 1(y2 ) = 1, 331 = y3 + 0, 1(y3 ) = 1, 1(y3 ) = 1, 4641 = y4 + 0, 1(y4 ) = 1, 1(y4 ) = 1, 61051 Gii s bng phng phỏp Euler n yn+1 = yn + hf (xn+1 , yn+1 ) Ta cú y0 = y1 = y0 + 0, 1(y1 ) = + 0, 1(y1 ) y1 = 1, 11111 y2 = y1 + 0, 1(y2 ) = 1, 11111 + 0, 1(y2 ) y2 = 1, 234561 y3 = y2 + 0, 1(y3 ) = 1, 234561 + 0, 1(y3 ) y3 = 1, 3717171 y4 = y3 + 0, 1(y4 ) = 1, 3717171 + 0, 1(y4 ) y4 = 1, 52408881 y5 = y4 + 0, 1(y5 ) = 1, 52408881 + 0, 1(y5 )2 y5 = 1, 693347691 1.3 i cng v phng phỏp s gii phng trỡnh vi phõn nh ngha 1.4 (Xem [7]) Phng phỏp s tng quỏt thng cú dng k yn+1 = i yn+1i + hf (yn+1 ,yn , , yn+1k , xn+1k , h) (1.3) i=1 ú k gi l s bc ca phng phỏp (1.3), h gi l bc nhy ca phng phỏp (1.3) Nu f khụng ph thuc vo yn+1 thỡ ta gi phng phỏp s (1.3) l phng phỏp hin Nu f ph thuc vo yn+1 thỡ ta gi phng phỏp s (1.3) l phng phỏp n Nu k = thỡ phng phỏp c gi l phng phỏp s mt bc Nu k > thỡ phng phỏp c gi l phng phỏp s a bc hay phng phỏp s k -bc Vớ d 1.4 Phng phỏp s yn+1 = yn + hf (xn , yn ) l phng phỏp hin bc (Cũn gi l phng phỏp Euler hin) Vớ d 1.5 Phng phỏp s yn+1 = yn + hf (xn+1 , yn+1 ) l phng phỏp n bc (Cũn gi l phng phỏp Euler n) Vớ d 1.6 Phng phỏp s yn+1 = yn1 + 2hf (xn , yn ) l phng phỏp hin bc (Cũn gi l phng phỏp trung im) Vớ d 1.7 Phng phỏp s yn+1 = yn1 + h [f (xn+1 , yn+1 ) + 4f (xn , yn ) + f (xn1 , yn1 )] l phng phỏp n bc (Cũn gi l phng phỏp Milne- Simpson) 1.3.1 Cp chớnh xỏc ca phng phỏp s nh ngha 1.5 (Xem [7]) Phng phỏp s (1.3) c gi l phng phỏp s cú cp chớnh xỏc p nu k y(xn+1 ) i y(xn+1i ) hf y(xn+1 ), y(xn ), , y(xn+1k ), xn+1k , h i=1 = 0(hp+1 ) ú 0(hp+1 ) l vụ cựng cựng cp vi hp+1 h tin n Vớ d 1.8 Phng phỏp Euler hin yn+1 = yn + hf (xn , yn ) Gi thit yn+1 = y(xn+1 ), yn = y(xn ) Khai trin Taylor i vi y(x) ti x = xn ta cú y(xn+1 ) = y(xn + h) = y(xn ) + hy (xn ) + 0(h2 ) 10 Hỡnh 3.13: th biu din Hỡnh 3.14: th biu din nghim hiu chnh nghim chớnh xỏc 78 Chng trỡnh gii trờn Maple S dng cp phng phỏp Nystroăm v Adams- Moulton gii s phng trỡnh vi phõn Code: Kt hp phng phỏp Nystroăm bc v Adams- Moulton bc õy l code ca vớ d 3.1 > restart; with(Maplets[Elements]): > GD:=Maplet([ ["Nhap ham f(x,y)= ",TextField[f]("x^2+ y^2")], [ "Nhap a= ", TextField[a]("0"), " b= ", TextField[b]("1")], [ "Nhap n= ", TextField[n]("1000"), " y0= ", TextField[y0]("0")], [Button("Thoat", Shutdown([f,a,b,n,y0]))] ]): gtn:=Maplets[Display](GD); > ham:=parse(gtn[1]); n:=parse(gtn[4]); a:=parse(gtn[2]); b:=parse(gtn[3]); y0:=parse(gtn[5]); h:=evalf((b-a)/n); f:=unapply(ham,x,y): epsilon:=10^(-20): nmax:=100: > for i from to n 79 x[i]:=a+i*h: end do: > x[1]:=evalf(x[0]+h,20): x[2]:=evalf(x[1]+h,20): x[3]:=evalf(x[2]+h,20): x[4]:=evalf(x[3]+h,20): Y[0]:=evalf(y0,20): yd[0]:=evalf(Y[0],20): yh[0]:=evalf(Y[0],20): Y01:=evalf(yh[0],15); Y02:=evalf(yh[0]+(1/2)*h*f(x[0],Y01),15); Y03:=evalf(yh[0]+h*((1/2)*f(x[0],Y01) -(3/2)*f(x[0]+(1/2)*h,Y02)),15); Y04:=evalf(yh[0]+h*((4/3)*f(x[0]+(1/2)*h,Y02) -(1/3)*f(x[0]-h,Y03)),15); Y[1]:=evalf(yh[0]+h*((1/6)*f(x[0],Y01)+ (2/3)*f(x[0]+(1/2)*h,Y02)+(1/6)*f(x[0]+h,Y04)),15); yd[1]:=evalf(Y[1],15); yh[1]:=evalf(Y[1],15); > yd[2]:=evalf(yh[0]+2*h*f(x[1],yh[1]),15); H[2][0]:=yd[2]: H[2][1]:=evalf(yh[1]+ h*((5/12)*f(x[2],H[2][0])+(8/12)*f(x[1], yh[1])-(1/12)*f(x[0],yh[0])),15); i:=1: while abs(H[2][i]-H[2][i-1])>epsilon i:=i+1; H[2][i]:=evalf(yd[1]+h*((5/12)*f(x[2],H[2][i-1])+(8/12)*f(x[1], yh[1])-(1/12)*f(x[0],yh[0])),15); if i>nmax then break; end if; end do; yh[2]:=H[2][i]; >for i from to n yd[i]:=evalf(yh[i-2]+2*h*f(x[i-1],yh[i-1]),15); H[i][0]:=yd[i]; 80 H[i][1]:=evalf(yh[i-1]+h*((5/12)*f(x[i],H[i][0])+(8/12)* f(x[i-1],yh[i-1])-(1/12)*f(x[i-2],yh[i-2])),20): j:=1: while abs(H[i][j]-H[i][j-1])>epsilon j:=j+1; H[i][j]:=evalf(yh[i-1]+h*((5/12)*f(x[i],H[i][j-1])+(8/12)* f(x[i-1],yh[i-1])-(1/12)*f(x[i-2],yh[i-2])),20): if j>nmax then break; end if; end do: yh[i]:=H[i][j]; end do: > y:=y: rs:={dsolve({diff(y(t),t)=f(t,y(t)),y(0)=y0},y(t))}: if rs={} then print(Khụng tỡm c nghim chớnh xỏc Maple s cho nghim s bng phng phỏp Runge-Kutta bc 4-5 lm c s so sỏnh.); tmp:=dsolve({diff(y(t),t)=f(t,y(t)),y(0)=y0}, y(t),type=numeric,output=listprocedure,range=a b): ngh:=evalf(subs(tmp,y(t)),20): else ngh:=unapply(rhs(rs[1]),t): print(Nghim chớnh xỏc gii bng Maple); print(y(x)=ngh(x)); end if; >printf("%12s %16s %22s %16s %20s %20s\n","Gia tri x", "y du bao","y hieu chinh","y Maple","yM-yd","yM-yh"); for i from to 10 printf("%10.3f %20.15f %20.15f %20.15f %20.15f %20.15f\n" ,x[i*n/10],yd[i*n/10],yh[i*n/10],evalf(ngh(x[i*n/10]),15), evalf(abs(ngh(x[i*n/10])-yd[i*n/10]),15), 81 evalf(abs(ngh(x[i*n/10])-yh[i*n/10]),15)); end do; > p1:=plot(ngh(t),t=a b,color=red,legend="Nghim chớnh xỏc"): p2:=plot([seq([x[i],yh[i]],i=0 n)],color=blue, legend="Nghim hiu chnh"): plots[display](p2,p1); > p1:=plot(ngh(t),t=a b,color=red,legend="Nghim Maple"): plots[display](p1); > p2:=plot([seq([x[i],yh[i]],i=0 n)],color=blue, legend="Nghim hiu chnh"): plots[display](p2); > p1:=plot([seq([x[i],yd[i]],i=0 n)],color=blue, legend="Nghim d bỏo"): p2:=plot([seq([x[i],yh[i]],i=0 n)],color=red, legend="Nghim hiu chnh"): plots[display](p1,p2); i vi cỏc vớ d khỏc ta cng code nh trờn, nhng thay th hm f (x, y) bng hm vớ d ú v chn giỏ tr y0 , giỏ tr n phự hp Code: Kt hp phng phỏp Nystroăm bc v Adams- Moulton bc õy l code ca vớ d 3.3 > restart; with(Maplets[Elements]): Digits:=20: > GD:=Maplet([ ["Nhap ham f(x,y)= ",TextField[f]("x*exp(y)- y*cos(x)")], [ "Nhap a= ", TextField[a]("0"), " b= ", TextField[b]("0.1")], [ "Nhap n= ", TextField[n]("1000"), " y0= ", TextField[y0]("0")], [Button("Thoat", Shutdown([f,a,b,n,y0]))] 82 ]): > gtn:=Maplets[Display](GD); ham:=parse(gtn[1]); n:=parse(gtn[4]); a:=parse(gtn[2]); b:=parse(gtn[3]); y0:=parse(gtn[5]); h:=evalf((b-a)/n): f:=unapply(ham,x,y): epsilon:=10^(-20): nmax:=100: > for i from to n x[i]:=a+i*h: end do: > yh[0]:=evalf(y0,20): yd[0]:=evalf(y0,20): for z from to Y[z-1][1]:=evalf(yh[z-1],15): Y[z-1][2]:=evalf(yh[z-1]+(1/2)*h*f(x[z-1],Y[z-1][1]),15): Y[z-1][3]:=evalf(yh[z-1]+h*((1/2)*f(x[z-1],Y[z-1][1]) -(3/2)*f(x[z-1]+(1/2)*h,Y[z-1][2])),15): Y[z-1][4]:=evalf(yh[z-1]+h*((4/3)*f(x[z-1]+(1/2)*h,Y[z-1][2]) -(1/3)*f(x[z-1]-h,Y[z-1][3])),15): yd[z]:=evalf(yh[z-1]+h*((1/6)*f(x[z-1],Y[z-1][1])+ (2/3)*f(x[z-1]+(1/2)*h,Y[z-1][2]) +(1/6)*f(x[z-1]+h,Y[z-1][4])),15): yh[z]:=yd[z]: end do; > yd[3]:=evalf(yh[1]+(h/3)*(7*f(x[2],yh[2]) -2*f(x[1],yh[1])+f(x[0],yh[0])),15); H[3][0]:=yd[3]: H[3][1]:=evalf(yh[2]+ h*((5/12)*f(x[3],H[3][0])+(8/12)*f(x[2], yh[2])-(1/12)*f(x[1],yh[1])),10); 83 i:=1: while abs(H[3][i]-H[3][i-1])>epsilon i:=i+1; H[3][i]:=evalf(yd[2]+h*((5/12)*f(x[3],H[3][i-1])+(8/12)*f(x[2], yh[2])-(1/12)*f(x[1],yh[1])),10); if i>nmax then break; end if; end do; yh[3]:=H[3][i]; > for i from to n yd[i]:=evalf(yh[i-2]+(h/3)*(7*f(x[i-1],yh[i-1]) -2*f(x[i-2],yh[i-2])+f(x[i-3],yh[i-3])),15); H[i][0]:=yd[i]; H[i][1]:=evalf(yh[i-1]+h*((5/12)*f(x[i],H[i][0])+(8/12)* f(x[i-1],yh[i-1])-(1/12)*f(x[i-2],yh[i-2])),20): j:=1: while abs(H[i][j]-H[i][j-1])>epsilon j:=j+1; H[i][j]:=evalf(yh[i-1]+h*((5/12)*f(x[i],H[i][j-1])+(8/12)* f(x[i-1],yh[i-1])-(1/12)*f(x[i-2],yh[i-2])),20): if j>nmax then break; end if; end do: yh[i]:=H[i][j]; end do: > y:=y: rs:={dsolve({diff(y(t),t)=f(t,y(t)),y(0)=y0},y(t))}: if rs={} then print(Khụng tỡm c nghim chớnh xỏc Maple s cho nghim s bng phng phỏp Runge-Kutta bc 4-5 lm c s so sỏnh.); tmp:=dsolve({diff(y(t),t)=f(t,y(t)),y(0)=y0},y(t),type=numeric, output=listprocedure,range=a b): ngh:=evalf(subs(tmp,y(t)),20): 84 else ngh:=unapply(rhs(rs[1]),t): print(Nghim chớnh xỏc gii bng Maple); print(y(x)=ngh(x)); end if: printf("%12s %16s %22s %16s %20s %20s\n","Gia tri x","y du bao", "y hieu chinh","y Maple","yM-yd","yM-yh"); > for i from to 10 printf("%10.3f %20.15f %20.15f %20.15f %20.15f %20.15f\n" ,x[i*n/10],yd[i*n/10],yh[i*n/10],evalf(ngh(x[i*n/10])), evalf(abs(ngh(x[i*n/10])-yd[i*n/10]),15), evalf(abs(ngh(x[i*n/10])-yh[i*n/10]),15)); end do; > p1:=plot(ngh(t),t=a b,color=red,legend="Nghim chớnh xỏc"): p2:=plot([seq([x[i],yh[i]],i=0 n)],color=blue, legend="Nghim hiu chnh"): plots[display](p2,p1); > p1:=plot(ngh(t),t=a b,color=red,legend="Nghim Maple"): plots[display](p1); > p2:=plot([seq([x[i],yh[i]],i=0 n)],color=blue, legend="Nghim hiu chnh"): plots[display](p2); >p1:=plot([seq([x[i],yd[i]],i=0 n)],color=blue, legend="Nghim d bỏo"): p2:=plot([seq([x[i],yh[i]],i=0 n)],color=red, legend="Nghim hiu chnh"): plots[display](p1,p2); i vi cỏc vớ d khỏc ta cng code nh trờn, nhng thay th hm f (x, y) bng hm vớ d ú v chn giỏ tr y0 , giỏ tr n phự hp Code: Kt hp phng phỏp Nystroăm bc v Adams- Moulton bc õy l code ca vớ d 3.5 85 > restart; with(Maplets[Elements]): Digits:=20: > GD:=Maplet([ ["Nhap ham f(x,y)= ",TextField[f]("x^3*exp(x^2)+ 2*x*y")], [ "Nhap a= ", TextField[a]("0"), " b= ", TextField[b]("1")], [ "Nhap n= ", TextField[n]("1000"), " y0= ", TextField[y0]("0")], [Button("Thoat", Shutdown([f,a,b,n,y0]))] ]): > gtn:=Maplets[Display](GD); ham:=parse(gtn[1]); n:=parse(gtn[4]); a:=parse(gtn[2]); b:=parse(gtn[3]); y0:=parse(gtn[5]); h:=evalf((b-a)/n): f:=unapply(ham,x,y): epsilon:=10^(-20): nmax:=100: > for i from to n x[i]:=a+i*h: end do: > yh[0]:=evalf(y0,20): yd[0]:=evalf(y0,20): for z from to Y[z-1][1]:=evalf(yh[z-1],15): Y[z-1][2]:=evalf(yh[z-1]+(1/2)*h*f(x[z-1],Y[z-1][1]),15): Y[z-1][3]:=evalf(yh[z-1]+h*((1/2)*f(x[z-1],Y[z-1][1]) -(3/2)*f(x[z-1]+(1/2)*h,Y[z-1][2])),15): Y[z-1][4]:=evalf(yh[z-1]+h*((4/3)*f(x[z-1]+(1/2)*h,Y[z-1][2]) -(1/3)*f(x[z-1]-h,Y[z-1][3])),15): 86 yd[z]:=evalf(yh[z-1]+h*((1/6)*f(x[z-1],Y[z-1][1])+ (2/3)*f(x[z-1]+(1/2)*h,Y[z-1][2]) +(1/6)*f(x[z-1]+h,Y[z-1][4])),15): yh[z]:=yd[z]: end do; > yd[3]:=evalf(yh[1]+(h/3)*(7*f(x[2],yh[2]) -2*f(x[1],yh[1])+f(x[0],yh[0])),15); H[3][0]:=yd[3]: H[3][1]:=evalf(yh[2]+ h*((9/24)*f(x[3],H[3][0])+(19/24)*f(x[2], yh[2])-(5/24)*f(x[1],yh[1])+(1/24)*f(x[0],yh[0])),15); i:=1: while abs(H[3][i]-H[3][i-1])>epsilon i:=i+1; H[3][i]:=evalf(yd[2]+h*((9/24)*f(x[3],H[3][i-1])+(19/24)*f(x[2], yh[2])-(5/24)*f(x[1],yh[1])+(1/24)*f(x[0],yh[0])),15); if i>nmax then break; end if; end do; yh[3]:=H[3][i]; > for i from to n yd[i]:=evalf(yh[i-2]+(h/3)*(7*f(x[i-1],yh[i-1]) -2*f(x[i-2],yh[i-2])+f(x[i-3],yh[i-3])),15); H[i][0]:=yd[i]; H[i][1]:=evalf(yh[i-1]+h*((9/24)*f(x[i],H[i][0])+(19/24)* f(x[i-1],yh[i-1])-(5/24)*f(x[i-2],yh[i-2]) +(1/24)*f(x[i-3],yh[i-3])),15): j:=1: while abs(H[i][j]-H[i][j-1])>epsilon j:=j+1; H[i][j]:=evalf(yh[i-1]+h*((9/24)*f(x[i],H[i][j-1])+(19/24)* f(x[i-1],yh[i-1])-(5/24)*f(x[i-2],yh[i-2]) +(1/24)*f(x[i-3],yh[i-3])),15): 87 if j>nmax then break; end if; end do: yh[i]:=H[i][j]; end do: > y:=y: rs:={dsolve({diff(y(t),t)=f(t,y(t)),y(0)=y0},y(t))}: if rs={} then print(Khụng tỡm c nghim chớnh xỏc Maple s cho nghim s bng phng phỏp Runge-Kutta bc 4-5 lm c s so sỏnh.); tmp:=dsolve({diff(y(t),t)=f(t,y(t)),y(0)=y0},y(t),type=numeric, output=listprocedure,range=a b): ngh:=evalf(subs(tmp,y(t)),20): else ngh:=unapply(rhs(rs[1]),t): print(Nghim chớnh xỏc gii bng Maple); print(y(x)=ngh(x)); end if: printf("%12s %16s %22s %16s %20s %20s\n","Gia tri x", "y du bao", "y hieu chinh","y Maple","yM-yd","yM-yh"); > for i from to 10 printf("%10.3f %20.15f %20.15f %20.15f %20.15f %20.15f\n" ,x[i*n/10],yd[i*n/10],yh[i*n/10],evalf(ngh(x[i*n/10]),15), evalf(abs(ngh(x[i*n/10])-yd[i*n/10]),15), evalf(abs(ngh(x[i*n/10])-yh[i*n/10]),15)); end do; > p1:=plot(ngh(t),t=a b,color=red,legend="Nghim chớnh xỏc"): p2:=plot([seq([x[i],yh[i]],i=0 n)],color=blue, legend="Nghim hiu chnh"): plots[display](p2,p1); > p1:=plot(ngh(t),t=a b,color=red,legend="Nghim Maple"): plots[display](p1); 88 > p2:=plot([seq([x[i],yh[i]],i=0 n)],color=blue, legend="Nghim hiu chnh"): plots[display](p2); >p1:=plot([seq([x[i],yd[i]],i=0 n)],color=blue, legend="Nghim d bỏo"): p2:=plot([seq([x[i],yh[i]],i=0 n)],color=red, legend="Nghim hiu chnh"): plots[display](p1,p2); i vi cỏc vớ d khỏc ta cng code nh trờn, nhng thay th hm f (x, y) bng hm vớ d ú v chn giỏ tr y0 , giỏ tr n phự hp 89 Kt lun Trong khúa lun ny em ó h thng li mt s khỏi nim c bn phng phỏp s gii phng trỡnh vi phõn Khúa lun s dng mt cp phng phỏp Nystroăm v Adams- Moulton lm cp phng phỏp d bỏo v hiu chnh gii s phng trỡnh vi phõn, a nghim gn ỳng cú sai s khỏ nh so vi nghim chớnh xỏc Lp trỡnh trờn Maple, minh bng th mt cỏch trc quan v sinh ng chng hai em ó trỡnh by rừ cỏch thnh lp cỏc phng phỏp s Nystroăm v Adams- Moulton, nờu mt vi phng phỏp Nystrom v Adams- Moulton gii phng trỡnh vi phõn Tuy nhiờn, chng em mi ch s dng kt hp cp phng phỏp Nystroăm bc v AdamsMoulton bc, Nystroăm bc v Adams- Moulton 2, Nystroăm bc v Adams- Moulton bc gii s phng trỡnh vi phõn Phng phỏp Nystroăm kt hp vi phng phỏp Adams- Moulton l mt cp d bỏo- hiu chnh khỏ tt 90 Ti liu tham kho [1] Arieh Iserles, A first course in the numerical analysis of differential equation (Second Edition), Cambridge University Press, New York, 2009 [2] Butcher J.C (John Charles), Numerical methods for ordinary differential (Second edition), John Wiley & Sons 2008 [3] B V Ramana, Higher engineering mathematics, The McGraw-Hill Companies, 2006 [4] Dahlquits, Convergence and stability in the numerical integration of ordinary differential equation,Math Scand 4, 1956, pp 33 - 53 [5] Henrici , Discrete variable methods in ordinary differential equation, Wiley, New York, 1962 [6] Isaascon and H.B Keller, Analysis of Numerical Methods, Wiley, New York, 1966 [7] J.D Lambert, Numerical Methods for ordinary differential systems, John Wiley and Sons Ltd, Reprinted May 1993 [8] Hong Trng Thỏi, Trn Th Ngc Dip, Lờ Quang Phan, Nguyn Vn Tun, S dng phn mm toỏn hc, Nh xut bn i hc s phm H Ni, 2007 [9] Lờ Trng Vinh, Gii tớch s, NXB Khoa Hc K Thut H Ni, 2000 91 [10] Nguyn Hu in, Hng dn v s dng Maple V, NXB Thng Kờ, 1999 [11] Nguyn Hu in, Nguyn Minh Tun, Latex tra cu v son tho, NXB.HQG.HN, 2001 [12] Nguyn Th Hon, C s phng trỡnh vi phõn v lý thuyt n nh, NXB Giỏo Dc, 2000 [13] Phm K Anh, Gii tớch s, Nh xut bn i hc quc gia H Ni, 2000 [14] Trnh c Ti, Bi ging phng trỡnh vi phõn (lu hnh ni b), H Lt, 2008 92 [...]... = α và nếu {yn } được định nghĩa bởi (*) thì yn → α khi n → ∞ − 23 − Chương 2 Phương pháp Nystr¨ om và phương pháp Adams - Moulton 2.1 Phương pháp tuyến tính đa bước Định nghĩa 2.1 Một phương pháp số được gọi là phương pháp tuyến tính k bước nếu phương pháp số đó được cho bởi công thức sau k yn+1 = k αi yn+1−i + h i=1 βi f (xn+1−i , yn+1−i ) (2.1) i=0 Nếu β0 = 0 thì phương pháp (2.1) được gọi là phương. .. định của phương pháp số Định nghĩa 1.8 (Xem [7]) Đa thức đặc trưng thứ nhất của phương pháp số (1.3) gọi là thỏa mãn điều kiện nghiệm nếu mọi nghiệm của nó đều có modul nhỏ hơn hoặc bằng 1 và các nghiệm có modul bằng 1 phải là nghiệm đơn Ví dụ 1.15 4 1 1 a Đa thức đăc trưng thứ nhất ρ(t) = t2 − t + = (t − )(t − 1) có 3 3 3 1 nghiệm t = và t = 1 có modul nhỏ hơn hoặc bằng 1 và nghiệm t = 1 3 là nghiệm. .. hợp c Phương pháp Euler cải tiến là phù hợp Định nghĩa 1.7 Đa thức đặc trưng thứ nhất của phương pháp số (1.3) là đa thức có dạng k k αi tk−i ρ(t) = t − i=1 Ví dụ 1.12 − 12 − a Đa thức đặc trưng thứ nhất của phương pháp Euler là ρ(t) = t − 1 b Đa thức đặc trưng của phương pháp số h yn+1 = yn−1 + [f (xn+1 , yn+1 ) + 4f (xn , yn ) + f (xn−1 , yn−1 )] 3 là ρ(t) = t2 − 1 Định lý 1.2 Phương pháp số (1.3)... và có tính zero- ổn định (Xem ví dụ 1.15b) b Phương pháp số yn+1 = yn−1 + h f (xn+1 , yn+1 ) + 4f (xn , yn ) + f (xn−1 , yn−1 ) 3 là hội tụ Thật vậy phương pháp số trên phù hợp (Xem ví dụ 2.3b) và có tính zero- ổn định vì đa thức đặc trưng thứ nhất ρ(t) = t2 − 1 = (t − 1)(t + 1) có 2 nghiệm đơn t = 1, t = −1 thỏa mãn điều kiện nghiệm 2.2 2.2.1 Phương pháp Nystr¨ om Xây dựng công thức Xét bài toán Cauchy. .. Vậy phương pháp số yn+1 = yn−1 + h f (xn+1 , yn+1 ) + 4f (xn , yn ) + f (xn−1 , yn−1 ) 3 phù hợp 2.1.3 Sự hội tụ Định nghĩa 2.3 (Xem [7]) Phương pháp số (2.1) có tính zero- ổn định khi và chỉ khi đa thức đặc trưng thứ nhất thỏa mãn điều kiện nghiệm − 28 − Định nghĩa 2.4 (Xem [7]) Phương pháp số (2.1) hội tụ khi và chỉ khi nó vừa có tính phù hợp vừa có tính zero- ổn định Ví dụ 2.4 a Phương pháp số BDF... thỏa mãn điều kiện nghiệm nên phương pháp Euler có tính zero- ổn định b Phương pháp số BDF 1 2 4 yn+1 = yn − yn−1 + hf (xn+1 , yn+1 ) 3 3 3 4 1 có đa thức đặt trưng thứ nhất ρ(t) = t2 − t + (Ví dụ 1.15 a) thỏa 3 3 mãn điều kiện nghiệm nên 4 1 7 yn+1 = yn − yn−1 + hf (xn+1 , yn+1 ) 3 3 11 có tính zero- ổn định 1.3.4 Sự hội tụ của phương pháp số Định nghĩa 1.10 (Xem [7]) Phương pháp số (1.3) gọi là hội... n=0,N Định lý 1.3 (Xem [7]) Phương pháp số (1.3) hội tụ khi và chỉ khi nó phù hợp và zero - ổn định − 15 − Ví dụ 1.17 a Các phương pháp Euler vừa có tính zero- ổn định (Xem ví dụ 1.16 a) vừa có tính phù hợp (Xem ví dụ 1.11) nên nó hội tụ b Kiểm tra sự hội tụ của phương pháp số yn+1 = 9 1 6 9 yn + yn−1 − yn−2 + h [f (xn+1 , yn+1 ) + 3f (xn , yn )] 17 17 17 17 Phương pháp số trên có tính phù hợp (Xem... 2 đây là phương trình Bernoulli Ví dụ 1.21 Giải phương trình y + 2y (y − x) = 1 Đây là phương trình Riccati Dễ thấy y = x là một nghiệm của phương trình đã cho Đặt y = x + z ta sẽ đưa phương trình đã cho về dạng z + 2z (z + x) = 0 đây là phương trình Bernoulli với α = 2 Đặt u = z −1 ta được u − 2xu = 2 nghiệm tổng quát của phương trình này là u = ex 2 2 2e−x dx + C Vậy nghiệm tổng quát của phương trình... trong đó 0(h3 ) là vô cùng bé cùng cấp với h3 khi h → 0 Vậy phương pháp Euler cải tiến có cấp chính xác p = 2 − 11 − 1.3.2 Tính phù hợp của phương pháp số Đặt R(xn+1 ) = y(xn+1 ) k − αj y(xn+1−k ) + hφf (y(xn+1 ), , y(xn+1−k ), xn+1−k , h) j=1 với R(xn+1 ) là sai số chặt cụt địa phương Định nghĩa 1.6 (Xem [7]) Phương pháp số (1.3) gọi là phù hợp nếu R(xn+1 ) = 0 h→0 h lim Hệ quả 1.1 (Xem [7]) Nếu phương. .. phương pháp số (1.3) có cấp chính xác p ≥ 1 thì phù hợp Chứng minh Giả sử phương pháp (1.3) có cấp chính xác p ⇒ R(xn+1 ) = 0(hp+1 ) p+1 R(xn+1 ) 0(hp+1 ) ) p 0(h ⇒ lim = lim = lim h p+1 = 0 h→0 h→0 h→0 h h h Ví dụ 1.11 Áp dụng hệ quả 1.1 các phương pháp số ở ví dụ 1.8, ví dụ 1.9, ví dụ 1.10 đều có cấp chính xác lớn hơn hoặc bằng 1 nên phù hợp, tức là: a Phương pháp Euler hiển là phù hợp b Phương pháp ... cặp phương pháp tuyến tính đa bước sử dụng làm cặp phương pháp dự báo- hiệu chỉnh phương pháp Nystro¨m phương pháp Adams- Moulton • Chương Trình bày thuật toán sử dụng cặp phương pháp dự báohiệu... ẩn Nếu k = phương pháp gọi phương pháp số bước Nếu k > phương pháp gọi phương pháp số đa bước hay phương pháp số k -bước Ví dụ 1.4 Phương pháp số yn+1 = yn + hf (xn , yn ) phương pháp hiển bước... xác phương pháp Adams - Moulton bước p = − 49 − Chương Dự báo hiệu chỉnh với cặp phương pháp Nystr¨ om AdamsMoulton giải số phương trình vi phân om bước với Kết hợp phương pháp Nystr¨ 3.1 phương

Ngày đăng: 28/03/2016, 11:17

Từ khóa liên quan

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

Tài liệu liên quan