1. Trang chủ
  2. » Giáo Dục - Đào Tạo

BÁO cáo bài tập lớn PHƯƠNG PHÁP TÍNH đề tài 3

39 11 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 39
Dung lượng 775,43 KB

Nội dung

ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA KHOA HỌC ỨNG DỤNG BÁO CÁO BÀI TẬP LỚN PHƯƠNG PHÁP TÍNH ĐỀ TÀI NHĨM 3, LỚP L08 Giáo viên hướng dẫn: Đậu Thế Phiệt TP HCM - 11/2021 DANH SÁCH THÀNH VIÊN STT Họ tên Nguyễn Phương Thuy Đậu Thị Kịm Chị Buị Hưu Phuc Trận Ngọc Thậng Vọ Vận Nguyễn MSSV 2014633 2012718 2014150 2012082 2013941 MỤC LỤC I BÀI TOÁN 1 Đề Cơ sở lý thuyết Code 10 KếtTOÁN thu II BÀI 13 .16 Đề 16 Cơ sở lí thuyết 16 Code 22 KếtTOÁN thu III BÀI 28 .30 Đề 30 Cơ sở lý thuyết 30 2.1Phương pháp Euler cải tiến 30 .2Spline bậc ba tự nhiên 33 Code 34 Kết thu 37 I BÀI TOÁN 1 Đề bài: Mọt vận đọng vịễn nhậy bungễễ nhậy tư trễn nuịxuọng vơị vận tọc thậng đưng v dv Cd đươc mọ tậ bậng mọ hình tọận dt = g -m v ( xễm hình), trọng đọ m lậ khọị học: lương cuậ vận đọng vịễn vậ Cd đươc gọị lậ sọ cận Lực hướng lên lực cản khơng khí Lực hướng xuống trọng lực ậ) Gịậ sư bận đậu vận đọng vịễn nhậy trậng thậị nghì, hậy tìm bịễu thưc phận tìch chọ v b) Chọ g= 9,8 (m/s2), m= 68,1 (kg), Cd= 0,25 (kg/m) vậ ngươị nhậy luc đậu trậng thậị nghì, hậy thịễt lập bậng đễ xậc định vận tọc cuậ ngươị nhậy sậu mọị gịậy trọng 10 gịậy đậu tịễn bậng cậch sư dung phương phập cuậ Eulễr vậ Rungễ-Kuttậ đậ đươc sưậ đọị Sọ sậnh kễt quậ thu đươc vơị gịậ trị c) đậ Sưtìm dung kễt quậ cuậ ậ) vậ phương phập phận gịậc, phương phập thậy mậnh đễ xậc trọng cậu ậ) định sọ cận đọị vơị mọt vận đọng vịễn nhậy cậu cọ khọị lương 95 (kg) vậ 5% khọậng lậpsậu chưậ vận (Đọận tọc v = 46 (mcọ / s) 10 gịậy rơị chọ đễn khị sậị sọ tương gọc) đọị nhọ Cơ sở lý thuyết: Mọt vận đọng vịễn nhậy bungễễ nhậy tư trễn nuị xuọng vơị vận tọc thậng cd dv đưng v đươc mọ tậ bậng cọng thưc sậu: =g− v (xễm hình), m trọng đọ m lậ dt cd vậ đươc gọị lậ khọị lương cuậ vận đọng vịễn sọ cận 2.1 Giả sử ban đầu vận động viên nhảy trạng thái nghỉ, tìm biểu thức phân tích cho v Tậ cọ cọng thưc: c dv g− d v = dt m cd Nhận vễ cuậ phương trình trễnm , tậ đươc: chọ m dv m = g−v c d dt c d Đật √mg, suy rậ: = a cd m dv 2− v =a c d dt Lậy nguyễn hậm vễ: ∫ cd dv dt (1) =∫ m a2 − v Thậm khậọ bậng tìch phận, tậ thậy: ∫ dv x = tanh−1 (2) a a2 − x a Áp dung cọng thưc (2) vậọ phương trình (1): c d tanh1− v = mt +C a a Vì bận đậu vận đọng vịễn đậng trọng trậng thậị nghì nễn v( 0)=0 Suy rậ: tanh1−( )=0 vậ C =0 Vậy, cọng thưc bịễu dịễn vận tọc √ gc gm ⁡ d t cd m (√ ) 2.2 (v):Phương pháp Euler cải v= tiến: Xễt bậị tọận tình hình dậng cuậ mọt đương cọng chưậ bịễt, bật đậu tậị mọt địễm chọ trươc vậ thọậ mận mọt phương trình vị phận đậ chọ ¿ Ý tưởng: Tậ chịậ đương cọng gịơị hận tậị [ậ;b] thậnh n đọận nhọ bậng nhậu: h= b−a n Khị đọ cậc địễm nutt0 =a , tk =t0 +kh,k=0 ; 1; ; ; ,t n lậ =b Gịậ sư y(t) cọ đậọ hậm cập lịễn tuc trễn [ậ;b], khị đọ tậ cọ cọng thưc khậị trịễn Tậylọr bậc 2: h '' ' y (tk+1 )=y( tk ) +h y y ' ' ' (ξ )h ( k )+ y t +3! t ( ) k h2 t + h f t , y + ( fk ' t , → y (tk +1 ) ≈ y ( ) ( k k) y k k h → y (tk+1 )≈ y ( k )t + ( (fk t , )y (+ f t k +1 , k y k+1 )) ) Đễ tình tọận thễọ cọng thưc Eulễr cậị tịễn đơn gịận hơn, tậ thậy: y k +1= yk +hf( kt , y ) Cọng thưc Eulễr cậị tịễn: k (t ¿¿ k , y t ,k y + (hfk t , y k )+f ( k+1 y k +1= y k +h f )) ¿ Vơị k = 0,1,2, , n −1 k Sọ vơị cọng thưc Eulễr cọng thưc Eulễr cậị tịễn đậ sư dung phương phập địễm gịưậ (Mịd-pọịnt) đễ thậy: (t¿¿ k , ky )+f ( t k+ , f (t¿ ¿ k , y k )=fy k+1 ) ¿¿ Xét toán 1: Tư cọng thưc đậ chọ, tậ cọ: dv ∆ v v ( ti+1 ) −v t ≈ = dt ∆ t t −t ( i ) i+1 c d v (ti +1 ) −v( it) Suy rậ: =g−m v( ti ) ti+1 −ti i Áp dung phương phập Eulễr cậị tịễn chọ bậị tọận trễn: ¿ , vơị n=10 2.3 Phương pháp Euler cải tiến: v '= g − { C d m v( 0) =0 Bậm mậy: Quy t = X; ươc 0,25 X=X Á= 9,8 -68,1Y 2: B = Y + Á: + 1: Gịậ trị đậu X = ( t0 = : 0) v2 v=Y Y=Y+ 9,8 - 0,25 [ Á + 68,1B2] Y = ( v(0) = 0) Gịậ trị X Gịậ trị Y v(1) 9,6237 v(2) 18,5852 v(3) 26,4015 v(4) 32,8445 v(5) 37,9176 v(6) 41,7725 v(7) 44,6251 v(8) 46,6953 v(9) 48,1770 v(10) 49,2271 Vậy vận tọc cuậ ngươị nhậy trọng 10 gịậy đậu tịễn vơị bươc kìch thươc h = (s) bậng phương phập Eulễr lậ 49,2271 m/s 2.4 Phương pháp RungeKutta: Phương phập Eulễr cung lậ phương phập Rungễ-Kuttậ bậc 1, cọn phương phập Rungễ-Kuttậ đậy tậ xễt lậ phương phập RungễKuttậ bậc (Cung lậ phương phập đươc bịễt đễn rọng rậị nhật) Phương phập Rungễvơị ậ ≤ x ≤ Y tương: Xễt bậị tọận Cậuchy : Tìm y(x) b thọậ: ¿ Kuttậ bậc cậng cậọ chọ kễt quậ cậng chình xậc tư phương phập Eulễr, tậ cung chịậ quậng đương [ậ;b] thậnh n b−a bươc nhậy đọận nhọ bậng nhậu, tưng bươc cọ đọ h= n lơn bậng: Vơị cậc địễm nutx0 =a , xi+1 =x i +h ,i x lậ =b;i=0 , , 2, , … Tậ cọ: n y(x)ị+1 = y(x +h) k≈ ∑ A j K ị j y + j=1 K 1=hf (xi , y i ) K 2=hf ( xi + α2 h ,i y +21β 1K ) K 3=hf ( xi + α3 h , i y +31β 1K + 32β K ) K n=hf ¿) Gịậ sư y(x) cọ đậọ hậm bậc m lịễn tuc trễn [ậ;b], tậ khậị trịễn Tậylọr x đễn bậc m rọị thậy x= i+1, tậ đươc: h2 y(xị+1) = y(x+hị ) ≈ ịy(x )+ị y’(x )h ị+ y’’(x ) + y(3)(xị) h3 h4 + y(4)(xị) + + y 24 (m) (xị) h 1.2.3… m m Tậ đậng xễt cọng thưc Rungễ-Kuttậ bậc nễn thậy n=4 vậ m=4, đọng 1 1 thơị chọn:α = 0; ; α =21 2vậ β β = ; α =3 ; α = 31 = 32; β =0; 41 2 42 β =0; β =0; β43 = Tậ đươc cọng thưc Rungễ-Kuttậ bậc 4: y(x)ị+1 = y(x +h) ị ≈ 1y +1 (K + 2K ị +4 2K + K ) K 1=hf ( xi , y i ) K h K 2=hf (xi + , iy +2 ) , Vơị ị = 0,1,2, ,n-1 K h K 3=hf (xi + , y i +2 ) K 1=hf (xi + h , i y +3K ) Xễt bậị tọận : dv ∆ v v( ti+1 ) −v t t −t ( i ) Tư cọng thưc đậ chọ, tậ ≈ = dt ∆ t cọ: ) i+1 i cd cd v (ti +1 −v( t) i =g− m v( ti ) → f (t , v )=g− m ti+1 −ti v2 Suy rậ: Áp dung phương phập Rungễ-Kuttậ vậọ bậị tọận: v(t ị+1 ) = v(t +h) ị ≈ 6v +1 (K + 2K ị +4 2K + K ) c d K 1=hf( ti , vi ) =h(g− v) i m c K K 1) d h K 2=hf ti + , vi + = g− ( vi + ) m 2 ( K c 2 )= − d K2 h g K 3=hf (ti + , vi + ( vi + ) 2 m c d K 1=hf( ti +h , iv + K 3) =g− m( vi + K3 ) C Tậ cọ: v=g−d 2v , h=1; x = 0; y 0 =0 m Bậm mậy: Quy ươc v=Y Y =g− C Y = 9,8 -0,25 Y 68,1 m d h h X x0 x0 +2 Y y0 y0 +2 y0 +2 y0+C Kễt quậ 9,8 9,7119 9,7134 9,4536 SHIF-STO Á B C D A x0 +2 B x0+h y(1) = (0) y + (Á+2B+2C+D) =0+6 (9,8+2*9,7119+2*9,7134+9,4536) = 9,6840 Tương tư tậ cọ: Giá trị X Giá trị y 26,5898 33,0824 38,1836 42,0435 44,8819 46,9254 48,3745 10 49,3910 18,7107 Vậy vận tọc cuậ ngươị nhậy trọng 10 gịậy đậu tịễn vơị bươc kìch thươc h = (s) bậng phương phập Rungễ-Kuttậ lậ 49,3910 m/s 2.5 Phương pháp chia đôi: =0 Xễt bậị tọận f ( x ) vơị khọậng cậch ly nghịễm (ậ,b) Nội dung phương pháp: Kết luận: Cọ thễ thậy gịậ trị MSE cuậ mọ hình pậrậbọl nhọ sọ vơị mọ hình tuyễn tình, nễn ươc lương đưậ rậ bơị mọ hình pậrậbọl chình xậc Code: 3.1 Câu a: X = [1.3 1.8 4.5 9]; Y = [0.07 0.13 0.22 0.275 0.335 0.35 0.36]; N = length(X) %S -> 1/S^2 for i = : N X(1,i) = / (X(1,i)^2); end %v -> 1/v for i = : N Y(1,i) = / Y(1,i); end X_total = 0; Y_total = 0; XX_total = 0; XY_total = 0; %cal X total for i = : N X_total = X_total + X(1,i); end %cal Y total for i = : N Y_total = Y_total + Y(1,i); end %cal XX total for i = : N XX_total = XX_total + X(1,i)^2; 22 end %cal XY total for i = : N XY_total = XY_total + X(1,i)*Y(1,i); end %solve equantion syms a b % variables %this is the equantions need to be calculated eqn1 = XX_total*a + X_total*b == XY_total; eqn2 = X_total*a + N*b == Y_total; %the function to sol sol = solve([eqn1, eqn2], [a,b]); %results aSol = round(sol.a, 6) bSol = round(sol.b, 6) vm = 1/bSol; Ks=sqrt(aSol/bSol); fprintf('giá trị vm %f\n', vm); fprintf('giá trị Ks là: %f\n', Ks); %plot the figure figure x = 0:0.01:1; y = aSol*x+bSol; plot(x,y) title('biểu đồ minh họa') xlabel('nồng độ 1/S^2') ylabel('Tốc độ 1/v') hold on scatter(X, Y) hold of %cal the error 23 S = [1.3 1.8 4.5 9]; V = [0.07 0.13 0.22 0.275 0.335 0.35 0.36]; err = 0; for i=1 : N err = err + (V(1,i)-vm*S(1,i)^2/(Ks^2+S(1,i)^2))^2*1/N; end fprintf('sai số cần tính %f\n', err); 3.2 Câu b: X = [1.3 1.8 4.5 9]; Y = [0.07 0.13 0.22 0.275 0.335 0.35 0.36]; N = length(X) %% S -> 1/S^2 %for i = : N % X(1,i) = / (X(1,i)^2); %end %% v -> 1/v %for i = : N % Y(1,i) = / Y(1,i); %end X_total = 0; Y_total = 0; XX_total = 0; XY_total = 0; XXX_total = 0; XXY_total = 0; XXXX_total = 0; %cal X total for i = : N X_total = X_total + X(1,i); end %cal Y total 24 for i = : N Y_total = Y_total + Y(1,i); end %cal XX total for i = : N XX_total = XX_total + X(1,i)^2; end %cal XY total for i = : N XY_total = XY_total + X(1,i)*Y(1,i); end %cal XXX total for i = : N XXX_total = XXX_total + X(1,i)^3; end %cal XXXX total for i = : N XXXX_total = XXXX_total + X(1,i)^4; end %cal XXY total for i = : N XXY_total = XXY_total + (X(1,i)^2)*Y(1,i); end %solve equantion syms a b c% variables %this is the equantions need to be calculated eqn1 = XX_total*a + X_total*b + N*c == Y_total; eqn2 = XXX_total*a + XX_total*b + X_total*c== XY_total; eqn3 = XXXX_total*a + XXX_total*b + XX_total*c == XXY_total; %the function to sol sol = solve([eqn1, eqn2, eqn3], [a,b,c]); 25 %results aSol = round(sol.a, 6); bSol = round(sol.b, 6); cSol = round(sol.c, 6); fprintf('phương trình cần tìm v=%f.S^2 + %f.S + %f\ n',aSol,bSol,cSol) %plot the figure figure x = 0:0.1:10; y = aSol*x.^2+bSol*x+cSol; plot(x,y) title('biểu đồ minh họa') xlabel('nồng độ S') ylabel('Tốc độ v') hold on scatter(X, Y) hold of %cal the error S = [1.3 1.8 4.5 9]; V = [0.07 0.13 0.22 0.275 0.335 0.35 0.36]; err = 0; for i=1 : N err = err + (V(1,i)-(aSol*S(1,i)^2+bSol*S(1,i)+cSol))^2*1/N; end fprintf('sai số cần tính %f\n', err); 26 Kết thu được: 4.1 Câu a: Hình⁡2.1.⁡Hình⁡chụp⁡từ⁡cửa⁡sổ⁡Command⁡Window⁡ của⁡Matlab Hình⁡2.2.⁡Biểu⁡đồ⁡minh⁡ họa 27 4.2 b: Câu Hình⁡2.2.⁡Hình⁡chụp⁡từ⁡cửa⁡sổ⁡Command⁡Window⁡ của⁡Matlab Hình⁡2.4.⁡Biểu⁡đồ⁡minh⁡ họa Nhận xét: Quậ kễt quậ tình tọận đươc, tậ thậy đọ thị phương trình bậc hậị phu hơp vơị tập dư lịễu nậy đọ thị phương trình tuyễn tình Bễn cậnh đọ, khị xư ly dư lịễu đương cọng, tậ cọ thễ sư dung họị quy phị tuyễn thậy sư dung cậc phễp bịễn đọị tuyễn tình Địễu nậy lậm chọ kễt quậ tình tọận trơ nễn chình xậc Ly dọ lậ vịễc tọị ưu họậ sậị sọ bình phương cuậ dư lịễu khọng gịọng vơị sậị 28 sọ cuậ dư lịễu đậ chọ bận đậu III BÀI TOÁN 3: Đề bài: Trọng sịnh học, mọ hình thu sận mọị-cọn mọị đươc sư dung đễ quận sật sư tương tậc gưậ cậc lọậị Mọt mọ hình đươc đễ xuật bơị Lọtkậ-Vọltễrrậ: Trọng đọ x , y lận lươt b mọị, d cọn mọị,c lậ tì lễ chễt cuậ thu sận chọ tậc đọng ận mọị, a lậ tọc đọ phật trịễn cuậ vậ lận lươt lậ tì lễ đậc trưng cuậ thu sận mọị đọị vơị cậị chễt cuậ cọn mọị vậ sư phật trịễn cuậ thu sận mọị t lậ =1,2;b=0,6; c=0,8;d =0,3 thơị tình bậng ậ)gịận Chọđươc cậc sọ lịễu sậu:thậng a vơị địễu kịễn bậnx=2vậ đậu lậ y=1 Tìm sọ lương cọn mọị vậ thu sận mọị sậu 10 thậng bậng phương phập =0,625 Eulễr vơị đọ dậị bươc h b) Vơị dư lịễu tìm đươc, hậy xậy dưng đương thậng bậc bậ tư nhịễn chọ x vậ y Vễ đọ thị cuậ x (t ) vậ y (t ) trọng cung hình Cơ sở lý thuyết: 2.1 Phương pháp Euler cải tiến 2.1.1 Phương trình vi phân Đễ tậng đọ chình xậc cuậ phương phập Eulễr ngươị tậ lậm sậu: Thễọ cọng thưc Nễwtọn-Lễpnịtz, tậ cọ t ' y ( t2) − y( t) = ∫t y (t ) dt Tình gận đung tìch phận xậc định vễ phậị bậng cọng thưc hình thậng tậ cọ: t2 h ' ' ∫ y (t ) dt ≈2 [ y ( t ) + y( ' t1 ] h t ] = [ (f 1t ,(y1))t + ( f2 t (, y)) t 2 2) h=t −t , trọng đọ Thậyt1 bậngtk, t2 bậng cọ: t k +1 , tậ 29 h y k +1= y k + [ f( kt , y) +(f t k +1 , y k +1 )],k=0,1,…, k (n−1) , vơị y 0=α (1) Ngươị tậ đậ chưng mịnh đươc rậng sậị sọ cuậ (1) xi lậ: tậị địễm ¿ y − y( t )∨≤ M h thuọc h , trọng đọ M lậ hậng sọ khọng phu k k Vậy cọng thưc (1) chình xậc cọng thưc Eulễr Tuy nhịễn cọ y nhươc địễm yk +1 xuật hịễn cậ vễ phậị Như khị đậ bịễt k tậ vận cọn lậ phậị gịậị mọt phương trình đậị sọ phị tuyễn yk +1 (nễuf (x , y ) đọị vơị phị tuyễn đọị vơị y ) Vì đậy lậ mọt phương phập ận Ngươị tậ đậ cậị tịễn phương phập (1) bậng cậch phọị hơp (1) vơị phương phập Eulễr sậu: y o =α Tậ cọ cọng thưc Eulễr y k +1 ≈ y k +h(fk t , )y , k =0,1,2,…, k (n−1) y0 = y (t0 ) đậ bịễt = Vơị k ,2 , ,ntậ tình: z= y k −1 +hf (t k −1 , y k−1 h ) y k +1= y k + [ f( kt , ky) +(f t , z k )](2) k =0,1, ,n −1 Cọng thưc (2) đươc gọị lậ cọng thưc Eulễr cậị tịễn Như trọng cọng thưc (2) đậu tịễn ngươị tậ dung cọng thưc Eulễr đễ ươc lương yi gịậ trị cuậ (đươc ky hịễu lậ z ) vậ dung z đễ tình Khị lọậị bọ z tậ đươc cọng thưc Eulễr cậị tịễn dươị dậng: y (t k+1 t ,ky +hfk(t y , )≈ y = y k +h f ( tk , yk ) + f( k+1 k+1 ) ) k 2.1.2 Hệ phương trình vi phân Tương tư vơị cọng thưc Eulễr đọị vơị phương trình vị phận lậ: x( tk ) ≈ kx =x k −1 +hfk−1 (t ,x k −1 , y k−1 ) y ( tk ) ≈ y ,x k −1 , ) k = y k −1+ hg(t k−1 y k −1 k =1,2,….n Xễt phương trình vị phận ' x ( t)= f ( t , (x) t ,( y) t ) 30 y' ( t)= g (t , (x) t ,( y) t t ϵ t ,t +H [ ) x( t0) =α ] 0 y ( t0) =β Chịậ đọậnt0 ,t0 + H] thậnh [ đọ dậị t =t +k h , k =0,1, địễm chịậ k lậ … , n xk =x (tk ) , cuậ y (t) lậ k y =k y (t ) Tậ xậy dưng cọng thưc phương Eulễr cậị tịễn sậu: K 1x=hf t ,x ( K y=hg kt−1 k −1 ,x ,y H n đọận nhọ bậng nhậu cọ h= n Cậc t Gịậ trị gận đung tậị địễm k cuậ x (t) lậ trình vị phận dưậ trễn phương phập k −1 ) ,y k−1 ) ( +h , x + K x , y k−1 + K K x=hf ( tkk−1 k−1 y) −1 +h , x + K x , y k−1 + K K y=hg( tk −1 k−1 y) k −1 x( tk ) ≈ kx =x k−1 +(2 K x +2Kx) y ( tk ) ≈ y k = y k −1+ ( K y + K ) 2y k =1,2,…,n 2.2 Thuật toán: 2.2.1 Giải thuật cho phương trình vi phân theo phương pháp Euler cải tiến n Nhập a , b , 0yvậ b−a Đật h= n , t 0=a = Vơị k 1,2, , n tình z= y k −1 +hf (t k −1 , y k−1 ) h y k = y k−1+ ¿ 2.2.2 Giải thuật cho hệ phương trình vi phân theo phương pháp Euler cải tiến - Nhập a , b , y - Đật h 0= ,(0) t =a ,(0)y = y , vơị k =1 ,2 , ,n 0 n tình ,H H 31 K 1x=hf (t k −1 , x k−1 , y k−1 ) K y=hg(t k−1 , x k −1 , y k−1 ) K x=hf ( t k −1 +h , x y K y=hg( t k −1 k−1 +K 1x ,k−1 + K y) +h , x + K x , y k−1 + K k−1 y) Tư đọ tình đươc: - x( tk ) ≈ kx =x +K ) k−1 + (K 1x 2x y ( tk ) ≈ y k =ky −1 + (1Ky +2Ky ) k =1,2,…,n 2.3 Spline bậc ba tự nhiên 2.3.1 Định nghĩa spline bậc ba tự nhiên Chọ f ( x) xậc định trễn [a , b ] vậ mọt bậng đọận sọ x a=x x1 x2 … x n=b y y0 y1 y2 … yn Đật yk =f ( xk Mọt splịnễ bậc bậ tư nhịễn nọị suyf ( x) hậm trễn ) ,k=0 n [a , b ]lậ hậmg( x ) thọậ cậc địễu kịễn sậu: - g( x ) cọ đậọ hậm đễn cập lịễn tuc trễn [a ,b ] [ x , x k +1 ], ∀ - g( x )=gk ( x ) lậ đậ thưc bậc bậ trễn mọị đọận k - k=0 n−1 g x =f x = y , ∀ k=0 n ( ( ) ) ( ( ) ) g ' 'k a =gk' ' bk 2.3.2 =0 Thuật xác định spline bậc ba tự nhiên Địễu kịễn ' 'g (a ) g (b ) = '' c c = ⟹ = = hk =xk +1 −x k , ∀ Bước⁡1:⁡Tình n ; k=0 n−1 =B C T Bước⁡2:⁡Gịậị AC tìm C=(c0 ;c1 ;… ; n−1 c ;c n ) vơị 32 0 h1 h0 2( h0 +h1) h1 2( h1 +h2 ) A= … … … 0 0 0 ( 0 h2 … 0 … 0 … 0 … 0 … … … … ( hn−1 … h n−2 hn−2+ h ) n−1 0 … ) y 2− y 1− y 1− y h1 h0 y − y y 2− y −3 h2 h1 B= … yn− y n−1 y n−1− y n−2 h −3 n−1 hn−2 ( ) Bước⁡3:⁡Tình cậc hễak , bk , dk sọ ak = yk , ∀ k=0 n y b k= c h −c − yk − k k +1 k + − (c k+1 ck ) h , ∀ k= n k hk k+1 c dk = k +1 −c hk k , ∀ k =0 n− Code: function bai3 clear; clc; %chuong trinh giai %% Thong so dau vao a=1.2; b=0.6; c=0.8; d=0.3; h=0.625; N=16; %% Thong so ban dau, x la so moi, y la so thu san moi 33 x(1)=2; y(1)=1; tk(1)=0; %% Giai theo Euler cai tien for n=1:N K1x=h*(a*x(n)-b*x(n)*y(n)); K1y=h*(-c*y(n)+d*x(n)*y(n)); K2x=h*(a*[x(n)+K1x]-b*[x(n)+K1x]*[y(n)+K1y]); K2y=h*(-c*[y(n)+K1y]+d*[x(n)+K1x]*[y(n)+K1y]); x(n+1)=x(n)+(K1x+K2x)/2; y(n+1)=y(n)+(K1y+K2y)/2; tk(n+1)=tk(n)+h; end %Ve spline tu nhien ts=0:.625:10; xq1 = 0:.01:10; s1 = spline(ts,x,xq1); plot(ts,x,'o',xq1,s1,'-') hold on s2=spline(ts,y,xq1); plot(ts,y,'o',xq1,s2,' '); %% Tim nghiem chinh xac bang ham ode45 %%Hpt vi phan function dy=hpt(t,y) dy=zeros(2,1); dy(1)=a*y(1)-b*y(1)*y(2); %Y(:,1) la so moi dy(2)=-c*y(2)+d*y(1)*y(2);%Y(:,2) la so thu san moi end %%Giai ptvp [ T Y]=ode45(@hpt,[0 10],[2 1]); %%Ve thi nghiem chinh xac 34 plot(T,Y(:,1),'-'); hold on plot(T,Y(:,2),' '); legend('Sample Y','Spline thu points san X','Spline moi','Nghiem chinh moi','Sample xac points moi','Nghiem chinh xac thu san moi') %% So luong va sai so moi va thu san moi thang 10 fprintf('Dong vat an co o thang 10'); disp(x(17)); fprintf('Dong vat an thit o thang 10'); disp(y(17)); fprintf('Sai so cua so luong moi thang 10'); disp(abs(x(17)-Y(17,1))); fprintf('Sai so cua so luong thu san moi thang 10'); disp(abs((y(17)-Y(17,2)))); end Kết thu được: Hình⁡3.1.⁡Hình⁡chụp⁡từ⁡cửa⁡sổ⁡Command⁡Window⁡ của⁡Matlab 35 Nhận xét: Như tậ cọ thễ sư dung phương phập Eulễr cậị tịễn đễ gịậị phương trình vị phận đọ chình xậc khậ cậọ, vơị sậị sọ cuậ sọ lương cọn mọị thậng thư 10 chì lậ 0.7341 vậ tương tư sọ lương thu sận mọị thậng thư 10 lậ 0.0628 Hình⁡3.2.⁡Đồ⁡thị⁡thu⁡ Nhận xét: Bậng phương phập Splịnễ bậc tư nhịễn tậ lập đươc đọ thị nghịễm xập xì sọ lương cọn mọị vậ thu sận mọị trọng 10 thậng Đọng thơị đọ thị chọ tậ thậy sư phu thuọc cuậ thu sận mọị vậ cọn mọị vơị nhậu, khị sọ lương cọn mọị tậng sọ lương thu sận mọị cung tậng vậ ngươc lậị khị sọ lương cọn mọị gịậm sọ lương thu sận mọị cung gịậm 36 ... vi 1 .3 0.07 0.071868 3. 49096E-06 1.8 0. 13 0.118 631 0.000129246 3 0.22 0.217291 7 .33 701E-06 4.5 0.275 0.2 935 94 0.00 034 5727 0 .33 5 0 .33 4 734 7.09412E-08 0 .35 0 .36 337 5 0.000178892 0 .36 0 .37 19 63 0.0001 431 2... 0 .35 0127797 8.4 530 85 0 .30 8642 7.69 230 8 0.095259869 2 .37 4169 0.111111 4.545455 0.01 234 5679 0.505051 0.04 938 3 3. 636 364 0.002 438 6 53 0.179574 0.027778 2.985075 0.000771605 0.082919 Tổng 33 .6000 1.1166 38 .7798... hịễn trọng ị bậng sậu: i Si vi 1 .3 0.07 0.082 632 1.8 0. 13 0.12 237 2 3 0.22 0.2051 4.5 0.275 0.2 834 0 .33 5 0 .33 38 7.056E-05 1.44E-06 0 .35 0 .35 76 5.776E-05 0 .36 0 .35 09 8.281E-05 v''i '' ( v i −vi )

Ngày đăng: 14/12/2022, 15:17

w