Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 24 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
24
Dung lượng
0,98 MB
Nội dung
ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC BÁCH KHOA NĂM HỌC 2021 - 2022 -* - BÀI TẬP LỚN Môn: Phương pháp tính Đề: Project GVHD: Đậu Thế Phiệt Nhóm: 03 -HK 211 Họ tên MSSV Nhiệm vụ Lê Xuân Thiên 2014566 Problem Võ Hữu Thịnh 2014610 Problem Nguyễn Thanh Ngân 1813206 Problem Hồ Minh Hoàng 1913420 Problem 2 Problem 1) I Cơ sở lý thuyết Phương pháp chia đôi – Phương pháp sử dụng với mục đích tìm nghiệm gần phương trình f(x)= với f(x) hàm liên tục miền xác định – Phương pháp áp dụng với nghiệm đơn nghĩa khoảng [a;b] có nghiệm ta ln ln có f(a)*f(b) < Giả sử (a, b) khoảng cách ly nghiệm phương trình f(x) Nội dung phương pháp chia đơi sau: Giả sử phương trình f(x) có nghiệm xác x khoảng cách ly nghiệm [a, b] f (a)*f (b) < Đặt a0 = a, b0= b Ta có: c= a+ b Nếu f (a)*f (c) < đặt b=c tiếp tục chia đơi ngược lại – Công thức đánh giá sai số: Sai số tương đối : ∆x = n b−a 2n+1 Sai số tổng quát : f (x¿ ) m | | |x ¿ −´x|= Với x ¿ nghiệm gần , m giá trị nhỏ f ' (x ) [a,b] Nhận xét: Ưu điểm : đơn giản dễ lập trình Nhược điểm : tốc độ hội tụ chậm độ xác khơng cao Bài tốn Cauchy Bài tốn Cauchy hay cịn gọi toán điều kiện ban đầu: { y , ( t )=f ( t , y ( t ) ) với t ≥ t y ( t )= y Với y= y (t) hàm khả vi cần tìm, khả vi với t ≥ t , y giá trị ban đầu cho trước hàm thời điểm t=t f (t , y ) hàm hai biến liên tục với đạo hàm riêng Đối với tốn Cauchy ta tìm nghiệm số phương trình đơn giản, cịn trường hợp f (x, y) có dạng nói chung khơng có phương pháp giải Ngồi ra, trường hợp tìm nghiệm tốn Cauchy q phức tạp người ta dùng Vì vậy, việc tìm phương pháp giải gần tốn Cauchy có vai trị quan trọng thực tế a) Phương pháp Euler’s – Giả sử tốn Cauchy có nghiệm gần [a;b] ta chia đoạn [a;b] thành n đoạn nhỏ nhau: b−a n – Khi t 0=a , t k =t +kh , với k=0,1,2,3 , ,n ,t n=b – Giả sử y (t) nghiệm tốn có đạo hàm liên tục đoạn [a;b] ta ln có đoạn [t k ; t k +1 ¿ ∈ [ a ; b ] với k=0,1,2,…,n-1 : h= ( t k +1−t k )2 y ( t k+1 )= y ( t k ) + y ( t k ) ( t k+1−t k ) + y (ε k ) , ,, Với ε k ∈ ( t k; t k+1 ) – h=( t k+1−t k ) nên ta có : , ,, y ( t k+1 )= y ( t k ) + y ( t k )∗h+ y (ε k ) h2 – Bằng cách bỏ phần dư ta được: y ( t k+1 ) ≈ y ( t k ) +h∗f (t k ; y k ) Và cơng thức Euler’s b) Cơng thức Rungge-Kutta’s – Cơng thức Runge-Kutta có độ xác cao cơng thức Euler, dùng khai triển Taylor nghiệm y =y(x) toán (1) với nhiều số hạng Sử dụng trình xây dựng công thức Taylor bâc cao hơn, ta xây dựng Phương pháp Runge - Kutta với bậc cao, phổ biến bậc { K 1=hf (t k ; y k ) K h K 2=hf (t k + ; y k + ) 2 K2 h K 3=hf (t k + ; y k + ) 2 K 4=hf (t k + h ; y k + K 3) y k +1= y ( t k + h )= y k + ( K +2 K 2+ K + K 4) II Bài tập vận dụng A bungee jumper jumps from a mountain with the downward vertical velocity v described by the mathematical model: Cd dv =g− v dt m (see the picture ) where m is the mass of jumper and cd is called drag coefficient a) Suppose that the jumper is initial at rest, find analytically the expression of v b) Let g = 9.8(m/s2), m = 68.1(kg), cd = 0.25(kg/m) and the jumper is initial at rest, establish the table to compute the velocity of the jumper for the first 10 seconds with step size h = 1(s) by using modified Euler’s and Runge-Kutta’s method Compare the results to the exact values found in a) c) Using the result of a) and the bisection method, the secant method to determine the drag coefficient for a jumper with the weight of 95(kg) and the velocity v = 46(m/s) after 10 seconds of fall until the relative error is less than 5%(Guess the isolated interval containing root) Bài giải thường: a) C dv dv dt =g− d v ⇒ = dt m mg−C d ¿ v m ⇒ ⇒ C dv dt dv = ⇒ = d dt mg m mg m C d∗( −v ) −v Cd Cd ∗ln mg Cd đặt √ √ √ √ mg +v Cd √ √ mg +v Cd | | | | mg −v Cd = Cd t ⇒ ln m mg −v Cd √ =2∗ C d∗g ∗t m m∗g =u Cd u+ v ⇒ =e u−v √ m∗g ∗t Cd m∗g ∗t Cd ) −1 =u∗tanh C ∗g∗t u∗( e √ ⇒ v= ( ) m √ √ (e ) +1 d m g ∗t Cd ⇒ v= √ m∗g ∗tanh Cd b) (√ C d∗g ∗t m ) Cd dv =g− v dt m g = 9.8(m/s2), m = 68.1(kg), cd = 0.25(kg/m) Thay vào biểu thức ta được: dv 0.25 =9.8− ∗v dt 68.1 Phương pháp Euler’s: Ta gắn biến: v 0=B=0 ; h=F=1; M =t =M ; A=v Nhập vào máy tính ( A=F∗ 9.8− 0.25 ∗B : X =X +h : B= A : M =M +1 68.1 ) Nhập giá trị sau ta kết qua 10(s) sau: A=v(m/s) M=t(s) 9.8 19.2474 27.6874 34.6732 40.0597 43.9685 46.6715 48.4750 49.6486 10 50.3994 Phương pháp Runge-Kutta’s: Ta gắn biến: v 0=Y =0; h=F=1 ; M =t 0=M ; A=v Nhập vào máy tính: ( A=F∗ 9.8− 0.25 ∗Y : 68.1 ) B=F∗ 9.8− 0.25 A ∗ Y+ 68.1 C=F∗ 9.8− 0.25 B ∗ Y+ 68.1 ( ) ): 0.25 C ∗ Y+ 68.1 2 D=F∗ 9.8− ( ( ( ( ( ) ): ) ): E=Y + ∗( A +2 B+ 2C + D ) : X =X + F : Y =E : M =M + F Nhập giá trị sau ta kết qua 10(s) sau: M=t(s) Y=v(m/s) 9.8 19.2474 27.6874 34.6732 40.0600 10 43.9685 46.6715 48.4750 49.6486 50.3995 c) v= √ m∗g ∗tanh Cd f ( c) = √ (√ m∗g ∗tanh Cd C d∗g ∗t m (√ ) C d∗g ∗t −46 m ) Thay số vào ta được: f ( c) = √ 95∗9.8 ∗tanh Cd (√ Cd∗9.8 ∗10 −46 m ) Để xác định khoảng cách li nghiệm ta dùng geogbre để phác họa đồ thị phương trình: Phương trình 1: f ( x )= √ 46 95∗9.8 x Phương trình 2: g ( x )=tanh (√ C d∗9.8 ∗t m ) Nghiệm phương trình ban đầu giao phương trình này: Ta thấy phương trình có nghiệm khoảng [0.4 ; 0.5] nên khoảng cách li nghiệm khoảng Sai số tương đối : ∆ x =0.05 Số lần lặp : n+1= √ 0.5−0.4 = √ số lần lặp số nguyên nên n=1 0.05 n an bn xn f (x n) 0.4 0.5 0.45 −¿ 0.4 0.45 0.4125 −¿ Bài giải MATLAB: Câu b: Code MATLAB phương pháp Euler’s: Giải thích code: Dịng – dịng : nhập giá trị - t0 : thời điểm ban đầu - v0 : vận tốc thời điểm ban đầu 10 - tc : thời điểm cuối - g : gia tốc - cd : hệ số lực cản - m : khối lượng người - n : số lần dùng cơng thức Euler’s Dịng 11 – dịng : 14 cơng thức Euler’s Dịng 15 : in kết Dòng 16 : kết thúc Kết chạy thử nghiệm : 11 Code MATLAB phương pháp Runge-Kutta’s: 12 Giải thích code: Dịng – dịng : nhập giá trị - t0 : thời điểm ban đầu - v0 : vận tốc thời điểm ban đầu - tc : thời điểm cuối - g : gia tốc - cd : hệ số lực cản - m : khối lượng người - n : số lần dùng cơng thức Euler’s Dịng 11 – dịng : 19 cơng thức Euler’s Dịng 20 : in kết Dịng 21 : kết thúc 13 Kết chạy thử nghiệm : Nhận xét : Phương pháp Rugge-Kutta’s cho kết qua xác phương pháp Euler’s phương pháp Euler’s tính tốn khơng q cầu kì tốn thời gian Câu c: Code MATLAB phương pháp chia đơi: 14 Giải thích code: Dịng – dịng : nhập giá trị - t : thời điểm - v : vận tốc thời điểm t - m : khối lượng người - a b : khoảng cách li nghiệm Dòng – dòng 21 : cơng thức chia đơi - dịng 13- dịng 16 : fc dấu fa gán a=c , fa=fc tính x - dịng 17- dịng 21 : fc khơng dấu fa gán b=c ,fb=fc tính x 15 Dịng 22 : in kết Dòng 23 : kết thúc Kết chạy thử nghiệm : Problem 2) I Cơ sở lý thuyết: Phương pháp bình phương nhỏ - Phương pháp bình phương nhỏ dùng để lập công thức thực nghiệm hay xác định hàm xấp xỉ f(x) từ bảng thực nghiệm thu qua kết thực nghiệm từ thực tế - Bài toán đưa dạng cực tiểu hàm g=∑ ( f ( x i ) − y i ) Ta xét số dạng hàm xấp xỉ biết sau đây: Y = a + bx Y = a + bx +cx2 Y = acosx + bsinx Với a, b, c tham số thực 16 Hàm số y = a + bx: Tìm a, b để hàm g(a, b) đạt cực tiểu với g ( a , b )=∑ ( a+bx i− y i) Điểm dừng g ' a=2 ∑ ( a+b x i− yi ) =0 g ' b=2 ∑ x i ( a+b x i− y i )=0 { Hay ( n+1 ) a+b ∑ x i=∑ y i a ∑ x i+ b ∑ x2i =∑ x i y i { Hàm số y =a + bx + cx2: Tìm a, b, c để hàm S(a, b, c) = ∑ (a+ b x i +c xi2− y i)2 đạt cực tiểu Điểm dừng { S ' a=2 ∑ ( a+ b xi + c x 2i − y i ) =0 S 'b =2 ∑ x i ( a+ b xi + c x 2i − y i ) =0 S ' c =2 ∑ x 2i ( a+ b x i +c x 2i − y i )=0 Hay ( n+ ) a+ b ∑ x i+ c ∑ x 2i =∑ y i a ∑ x i +b ∑ x 2i + c ∑ x 3i =∑ x i y i a ∑ x 2i + b ∑ x3i + c ∑ x 4i =∑ xi2 y i { Hàm số y = acosx +bsinx: Tìm a, b để hàm S(a, b) = ∑ (a cos x i +b sin x i− y i )2 đạt cực tiểu Điểm dừng S ' a=2 ∑ cos x i ( a cos x i +b sin x i− y i )=0 S ' b=2 ∑ sin x i ( a cos x i+ b sin xi − y i )=0 { Hay a ∑ cos x i+ b ∑ sin xi cos x i=∑ yi cos x i a ∑ sin x i cos xi +b ∑ sin x i=∑ yi sin x i { Problem 3) 17 I Cơ sở lý thuyết Xét toán Cauchy cho hệ phương trình vi phân cấp một, để đơn giản cho cách trình bày, ta xét hệ gồm hai phương trình vi phân cấp một: { x 't =f ( t , x ( t ) , y ( t ) ) y 't= y ( t , x ( t ) , y (t ) ) x ( t ) =α , y ( t ) =β t € [t0, t0 + H] H , n điểm chia tk = t0 + kh, k=0,1,2,…n Giá trị gần hàm x(t) điểm tk xk ≈ x(tk), giá trị gần hàm y(t) đểm tk yk ≈ y(tk) Từ ta có cơng thức Euler sau: Chia đoạn [t0, t0 + H] thành n đoạn nhỏ có độ dài h = II Bài tập vận dụng Bài toán 3) Trong sinh học, mơ hình thú săn mồi-con mồi sử dụng để quan sát tương tác gữa lồi Một mơ hình đề xuất Lotka-Volterra: Trong x , ylần lượt số lượng mồi thú săn mồi, a tốc độ phát triển mồi, c tỉ lệ chết thú săn mồi, b d tỉ lệ đặc trưng cho tác động thú 18 săn mồi chết mồi phát triển thú săn mồi t thời gian tính tháng a) Cho số liệu sau: a=1,2 ; b=0,6 ; c=0,8 ; d=0,3 với điều kiện ban đầu x=2 y=1 Tìm số lượng mồi thú săn mồi sau 10 tháng phương pháp Euler cải tiến với độ dài bước h=0,625 b) Với liệu tìm được, xây dựng đường cong khối( cubic spline) cho x y Vẽ đồ thị x ( t ) y ( t ) hình Bài giải: a) Với a=1,2 ; b=0,6 ; c=0,8 ; d=0,3 ta có hệ phương trình: ⅆx =1.2 x−0.6 xy=f ( x , y ) ⅆt ⅆy =−0.8 y +0.3 xy=g( x , y) ⅆt với x(0)=2; y(0)=1 t Ta có: h = 0.625 t = 10 (tháng) => k = = 16 h Dựa vào cơng thức Euler cải tiến hệ phương trình vi phân: K x=h(1.2 x −0.6 x y )=0.625 ×(1.2× 2−0.6 × 2× 1) ¿ 0.75 K y =h(−0.8 y + 0.3 x y 0)=0.625×(−0.8× 1+0.3 ×2 ×1) ¿−0.125 K x=h ¿ 19 K y =h ¿ ¿ 0.014 1 x 1=x 0+ ( K x + K x )=2+ ( 0.75+1.16)=2.96 2 1 y 1= y + ( K y + K y )=1+ (−0.125+0.014)=0.944 2 Lặp lại bước tương tự t =10 (16 lần lặp), ta bảng kết sau: k 10 11 12 13 14 15 16 h 0.625 tk 0.625 1.25 1.875 2.5 3.125 3.75 4.375 5.0 5.625 6.25 6.875 7.5 8.125 8.75 9.375 10.0 xk 2.955 4.317 5.637 5.200 2.686 1.428 1.023 0.993 1.195 1.647 2.440 3.685 5.269 6.072 3.893 1.897 Vậy sau 10 tháng: - Số lượng mồi x(t10) ≈ x(10) = 1.897 - Số lượng động vật ăn thịt y(t10) ≈ x(10) = 3.683 b) Đường cong khối (Cubic spline) cho x(t) y(t) 20 yk 0.944 1.106 1.698 3.065 3.986 3.250 2.427 1.768 1.310 1.026 0.895 0.939 1.290 2.325 4.019 3.683 Chú thích: - X đồ thị đường cong x(t) - Y đồ thị đường cong y(t) 21 KẾT QUẢ THU ĐƯỢC: Câu 3a Biểu đồ thu câu 3b 22 23 Tài liệu tham khảo: Applied Numerical Methods with MATLAB for Engineers and Scientists by Steven C Chapra Dr Giáo Trình Phương Pháp Tính ( ĐẠ I HỌ C QUỐ C GIA TP HỒ CHÍ MINH TRƯỜ NG ĐẠ I HỌ C BÁCH KHOA THÀNH PHỐ HỒ CHÍ MINH ) 24 ... 11 12 13 14 15 16 h 0.625 tk 0.625 1.25 1.875 2.5 3. 125 3. 75 4 .37 5 5.0 5.625 6.25 6.875 7.5 8.125 8.75 9 .37 5 10.0 xk 2.955 4 .31 7 5. 637 5.200 2.686 1.428 1.0 23 0.9 93 1.195 1.647 2.440 3. 685 5.269... 1.698 3. 065 3. 986 3. 250 2.427 1.768 1 .31 0 1.026 0.895 0. 939 1.290 2 .32 5 4.019 3. 6 83 Chú thích: - X đồ thị đường cong x(t) - Y đồ thị đường cong y(t) 21 KẾT QUẢ THU ĐƯỢC: Câu 3a Biểu đồ thu câu 3b... giá trị sau ta kết qua 10(s) sau: A=v(m/s) M=t(s) 9.8 19.2474 27.6874 34 .6 732 40.0597 43. 9685 46.6715 48.4750 49.6486 10 50 .39 94 Phương pháp Runge-Kutta’s: Ta gắn biến: v 0=Y =0; h=F=1 ; M =t 0=M